using System.ComponentModel.DataAnnotations; namespace FlatRender.IdentitySvc.Models.Requests; public record RegisterRequest( [Required] string TenantSlug, string? Email, string? PhoneNumber, [Required, MinLength(8)] string Password, string? FullName, string? AffiliateCode, bool AcceptTerms = true ); public record LoginRequest( [Required] string TenantSlug, string? Email, string? PhoneNumber, [Required] string Password, string? DeviceId, string? DeviceName ); public record OAuthLoginRequest( [Required] string TenantSlug, [Required] string Code, string? RedirectUri ); public record RefreshTokenRequest([Required] string RefreshToken); public record VerifyOtpRequest([Required] string Token, [Required] string Code); public record PasswordResetRequestDto([Required] string TenantSlug, string? Email, string? PhoneNumber); public record PasswordResetConfirmRequest([Required] string Token, [Required, MinLength(8)] string NewPassword); public record PasswordChangeRequest([Required] string CurrentPassword, [Required, MinLength(8)] string NewPassword); public record MfaSetupRequest([Required] string FactorType, string? Label); public record MfaVerifyRequest([Required] Guid FactorId, [Required] string Code); public record MfaChallengeRequest([Required] string MfaToken, [Required] string Code); public record PushSubscribeRequest( [Required] string Endpoint, [Required] PushKeys Keys, string? UserAgent ); public record PushKeys([Required] string P256dh, [Required] string Auth); public record PushUnsubscribeRequest(string? Endpoint);