package model import ( "time" "gorm.io/gorm" ) type LicenseCode struct { gorm.Model Code string `gorm:"uniqueIndex" json:"code"` // 授权码 LicenseType string `gorm:"size:20" json:"license_type"` // 授权类型:time/count/permanent Duration int `json:"duration"` // 授权时长(分钟),仅当类型为time时有效 MaxUses int `json:"max_uses"` // 最大使用次数,仅当类型为count时有效 UsedCount int `gorm:"default:0" json:"used_count"` // 已使用次数 Status string `gorm:"size:20" json:"status"` // 状态:unused/used/expired/revoked UsedBy string `gorm:"index" json:"used_by"` // 使用此授权码的设备UID UsedAt time.Time `json:"used_at"` // 使用时间 CreatedBy uint `gorm:"index" json:"created_by"` // 创建者ID BatchNo string `gorm:"size:50;index" json:"batch_no"` // 批次号 Remark string `gorm:"size:500" json:"remark"` // 备注 BindCount int `gorm:"default:-1" json:"bind_count"` // 可绑定次数,-1表示无限制,0表示不能绑定 } type LicenseLog struct { gorm.Model LicenseID uint `gorm:"index" json:"license_id"` // 关联的授权码ID DeviceUID string `gorm:"index" json:"device_uid"` // 设备UID Action string `gorm:"size:20" json:"action"` // 操作类型:create/use/verify IP string `gorm:"size:50" json:"ip"` // 操作IP Status string `gorm:"size:20" json:"status"` // 状态:success/failed Message string `gorm:"size:500" json:"message"` // 详细信息 }