using System.Collections.Specialized; namespace SimpleOTP.DependencyInjection; /// /// Provides options for the One-Time Password service. /// public class OtpOptions { /// /// The name of the issuer. /// public required string Issuer { get; set; } /// /// The issuer domain. /// /// /// IMPORTANT: Using this property will imply adherence to the Apple specification. /// public string? IssuerDomain { get; set; } /// /// The algorithm to use. /// public OtpAlgorithm Algorithm { get; set; } = OtpAlgorithm.SHA1; /// /// The number of digits in the OTP code. /// public int Digits { get; set; } = 6; /// /// The number of seconds between each OTP code. /// public int Period { get; set; } = 30; /// /// The type of One-Time Password to generate. /// public OtpType Type { get; set; } = OtpType.Totp; /// /// The format of OTP URIs. /// public OtpUriFormat UriFormat { get; set; } = OtpUriFormat.Google | OtpUriFormat.Minimal; /// /// The tolerance span for the OTP codes validation. /// public ToleranceSpan ToleranceSpan { get; set; } = ToleranceSpan.Default; /// /// Custom properties to place in OTP URIs. /// public NameValueCollection CustomProperties { get; } = []; }