using System.Text.Json.Serialization; namespace DysonNetwork.Common.Models.Auth; [JsonConverter(typeof(JsonStringEnumConverter))] public enum AuthChallengeType { // Authentication challenges Password = 0, EmailCode = 1, PhoneCode = 2, Totp = 3, WebAuthn = 4, RecoveryCode = 5, // Authorization challenges Consent = 10, TwoFactor = 11, // Account recovery challenges ResetPassword = 20, VerifyEmail = 21, VerifyPhone = 22, // Security challenges Reauthentication = 30, DeviceVerification = 31, // Custom challenges Custom = 100 } [JsonConverter(typeof(JsonStringEnumConverter))] public enum AuthChallengePlatform { Web = 0, Ios = 1, Android = 2, Desktop = 3, Api = 4, Cli = 5, Sdk = 6, // Special platforms System = 100, Unknown = 999 } [JsonConverter(typeof(JsonStringEnumConverter))] public enum AuthFactorType { Password = 0, EmailCode = 1, PhoneCode = 2, Totp = 3, WebAuthn = 4, RecoveryCode = 5, // Social and federation Google = 10, Apple = 11, Microsoft = 12, Facebook = 13, Twitter = 14, Github = 15, // Enterprise Saml = 50, Oidc = 51, Ldap = 52, // Custom factor types Custom = 100 }