using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; namespace Blahblah.FlowerStory.Server.Data.Model; /// /// 会话令牌对象 /// [Table("tokens")] public class TokenItem { /// /// token 唯一 id /// [Column("tid")] [Key] [Required] public required string Id { get; set; } /// /// 关联用户 uid /// [Column("uid")] [Required] public required int UserId { get; set; } /// /// 登录时间 /// [Column("logondate")] [Required] [JsonPropertyName("logonDate")] public required long LogonDateUnixTime { get; set; } /// /// 活动时间 /// [Column("activedate")] [Required] [JsonPropertyName("activeDate")] public required long ActiveDateUnixTime { get; set; } /// /// 过期时间 /// [Column("expiredate")] [Required] [JsonPropertyName("expireDate")] public required long ExpireDateUnixTime { get; set; } /// /// 过期秒数 /// [Column("expiresecs")] [Required] public required int ExpireSeconds { get; set; } /// /// 验证码 /// [Column("verifycode")] public string? VerifyCode { get; set; } /// /// 客户端类型 /// [Column("clientapp")] public string? ClientApp { get; set; } /// /// 客户端设备 id /// [Column("deviceid")] public string? DeviceId { get; set; } /// /// 客户端代理标识 /// [Column("clientagent")] public string? ClientAgent { get; set; } /// /// 登录时间 /// [NotMapped] [JsonIgnore] public DateTimeOffset LogonDate => DateTimeOffset.FromUnixTimeMilliseconds(LogonDateUnixTime); /// /// 活动时间 /// [NotMapped] [JsonIgnore] public DateTimeOffset ActiveDate => DateTimeOffset.FromUnixTimeMilliseconds(ActiveDateUnixTime); /// /// 过期时间 /// [NotMapped] [JsonIgnore] public DateTimeOffset ExpireDate => DateTimeOffset.FromUnixTimeMilliseconds(ExpireDateUnixTime); }