namespace GB5Shared.DTO.DirectAction { /// Maps to TDIRECTACTIONTOKEN (one-time-use audit table). public class DirectActionTokenDTO { public string TokenHash { get; set; } = string.Empty; public int ContextId { get; set; } public string ActionCode { get; set; } = string.Empty; public int AssigneeUserId { get; set; } public int TenantId { get; set; } public DateTime ExpiresAt { get; set; } public DateTime? UsedAt { get; set; } /// 0=Unused, 1=Used, 2=Revoked public byte Status { get; set; } public string? Remarks { get; set; } public DateTime CreatedOn { get; set; } = DateTime.UtcNow; } }