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; } = "";
}
}