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