107 lines
2.8 KiB
C#
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; } = "";
|
|
}
|
|
}
|