34 lines
1.6 KiB
Go
34 lines
1.6 KiB
Go
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"` // 详细信息
|
||
}
|