using System.ComponentModel.DataAnnotations; namespace MyNewProjectName.Infrastructure.Options; /// /// JWT authentication configuration options /// public class JwtOptions { public const string SectionName = "Jwt"; /// /// Secret key for signing JWT tokens /// [Required(ErrorMessage = "JWT SecretKey is required")] [MinLength(32, ErrorMessage = "JWT SecretKey must be at least 32 characters long")] public string SecretKey { get; set; } = string.Empty; /// /// Token issuer /// [Required(ErrorMessage = "JWT Issuer is required")] public string Issuer { get; set; } = string.Empty; /// /// Token audience /// [Required(ErrorMessage = "JWT Audience is required")] public string Audience { get; set; } = string.Empty; /// /// Token expiration time in minutes /// [Range(1, 1440, ErrorMessage = "ExpirationInMinutes must be between 1 and 1440 (24 hours)")] public int ExpirationInMinutes { get; set; } = 60; /// /// Refresh token expiration time in days /// [Range(1, 365, ErrorMessage = "RefreshTokenExpirationInDays must be between 1 and 365")] public int RefreshTokenExpirationInDays { get; set; } = 7; }