KoogleApp/src/Koogle.Application/DTOs/AuthDto.cs

107 lines
2.8 KiB
C#

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