LicenseManger/internal/model/token.go

41 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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"
}