using System.ComponentModel.DataAnnotations;
namespace SchotzIadKmTracker.Api.Models.Entities;
/// Jeton de réinitialisation de mot de passe à usage unique et à durée de vie limitée.
public class ResetPasswordToken
{
/// Identifiant technique du jeton.
public int Id { get; set; }
/// Hachage SHA-256 du jeton. Le jeton en clair n'est jamais persisté : seul celui transmis par email permet la réinitialisation.
[Required]
public string TokenHash { get; set; } = string.Empty;
/// Date d'expiration du jeton (UTC). Au-delà, le jeton est rejeté (Exigence 6.2, défaut création + 60 min).
public DateTime Expiration { get; set; }
/// Date d'utilisation du jeton (UTC). null tant que le jeton n'a pas servi ; renseignée à l'usage pour garantir l'usage unique (Exigence 7.2).
public DateTime? UsedAt { get; set; }
/// Date de création du jeton (UTC).
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
}