| | | 1 | | namespace Syki.Back.Domain.Identity; |
| | | 2 | | |
| | | 3 | | public class ResetPasswordToken |
| | | 4 | | { |
| | 108 | 5 | | public Guid Id { get; set; } |
| | 102 | 6 | | public int UserId { get; set; } |
| | 72 | 7 | | public int InstitutionId { get; set; } |
| | 102 | 8 | | public string Token { get; set; } |
| | 72 | 9 | | public DateTime CreatedAt { get; set; } |
| | 106 | 10 | | public DateTime ExpiresAt { get; set; } |
| | 44 | 11 | | public DateTime? UsedAt { get; set; } |
| | | 12 | | |
| | 72 | 13 | | public ResetPasswordToken(int userId, int institutionId, string token) |
| | | 14 | | { |
| | 72 | 15 | | Id = Guid.CreateVersion7(); |
| | 72 | 16 | | UserId = userId; |
| | 72 | 17 | | InstitutionId = institutionId; |
| | 72 | 18 | | Token = token; |
| | 72 | 19 | | CreatedAt = DateTime.UtcNow; |
| | 72 | 20 | | ExpiresAt = DateTime.UtcNow.Add(TimeSpan.FromMinutes(30)); |
| | 72 | 21 | | } |
| | | 22 | | |
| | 34 | 23 | | public bool IsUsed() => UsedAt != null; |
| | 32 | 24 | | public bool IsExpired() => DateTime.UtcNow > ExpiresAt; |
| | | 25 | | |
| | | 26 | | public void Use() |
| | | 27 | | { |
| | 10 | 28 | | UsedAt = DateTime.UtcNow; |
| | 10 | 29 | | } |
| | | 30 | | } |