package model import ( "time" "gorm.io/gorm" ) type AccessToken struct { gorm.Model Token string `gorm:"uniqueIndex" json:"token"` // 访问令牌 DeviceUID string `gorm:"index" json:"device_uid"` // 关联的设备UID Type string `gorm:"size:20" json:"type"` // 令牌类型:api/device Status string `gorm:"size:20" json:"status"` // 状态:active/revoked ExpireTime time.Time `json:"expire_time"` // 过期时间 LastUsed time.Time `json:"last_used"` // 最后使用时间 UsageCount int `gorm:"default:0" json:"usage_count"` // 使用次数 IPList string `gorm:"type:text" json:"ip_list"` // 允许的IP列表,逗号分隔 CreatedBy uint `gorm:"index" json:"created_by"` // 创建者ID } // TableName 指定表名 func (AccessToken) TableName() string { return "access_tokens" } type TokenLog struct { gorm.Model TokenID uint `gorm:"index" json:"token_id"` // 关联的令牌ID Action string `gorm:"size:20" json:"action"` // 操作类型:create/use/revoke IP string `gorm:"size:50" json:"ip"` // 操作IP UserAgent string `gorm:"size:255" json:"user_agent"` // User-Agent Status string `gorm:"size:20" json:"status"` // 状态:success/failed Message string `gorm:"size:500" json:"message"` // 详细信息 } // TableName 指定表名 func (TokenLog) TableName() string { return "token_logs" }