using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Koogle.Application.DTOs { /// /// Form DTO for user login. /// public record LoginDto { /// /// Email of the user requesting login. /// [Required] [EmailAddress] public string Email { get; set; } = string.Empty; public string Password { get; set; } = string.Empty; public string ClubName { get; set; } = string.Empty; public bool RememberMe { get; set; } public string? ReturnUrl { get; set; } } /// /// Form DTO for password reset with confirmation field. /// public class ResetPasswordFormDto { /// /// Email of the user requesting password reset. /// [Required] [EmailAddress] public string Email { get; set; } = ""; public string Token { get; set; } = ""; public string NewPassword { get; set; } = ""; public string ConfirmPassword { get; set; } = ""; } /// /// DTO for user registration. /// public class RegisterUserDto { /// /// Email address (also used as username). /// [Required] [EmailAddress] public string Email { get; set; } = ""; /// /// Password for the new account. /// [Required] [MinLength(6)] public string Password { get; set; } = ""; /// /// Display name for the user profile. /// [Required] public string DisplayName { get; set; } = ""; /// /// Optional club name to assign user to during registration. /// public string? ClubName { get; set; } /// /// Optional invitation token for club membership during registration. /// public string? InviteToken { get; set; } } /// /// DTO for password reset request. /// public class ResetPasswordDto { /// /// Email of the user requesting password reset. /// [Required] [EmailAddress] public string Email { get; set; } = ""; /// /// Password reset token received via email. /// [Required] public string Token { get; set; } = ""; /// /// New password. /// [Required] [MinLength(6)] public string NewPassword { get; set; } = ""; } }