LicenseManger/internal/model/token.go

41 lines
1.5 KiB
Go
Raw Normal View History

2024-11-14 14:55:43 +00:00
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"
}