package model import ( "time" ) type Usage struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement"` UserID int64 `gorm:"column:user_id;index:idx_user_id"` TokenID int64 `gorm:"column:token_id;index:idx_token_id"` Capability string `gorm:"column:capability;index:idx_usage_capability;comment:模型能力"` Date time.Time `gorm:"column:date;autoCreateTime;index:idx_date"` Model string `gorm:"column:model"` Stream bool `gorm:"column:stream"` PromptTokens int `gorm:"column:prompt_tokens"` CompletionTokens int `gorm:"column:completion_tokens"` TotalTokens int `gorm:"column:total_tokens"` Cost string `gorm:"column:cost"` } func (Usage) TableName() string { return "usages" } type DailyUsage struct { ID int64 `gorm:"column:id;primaryKey;autoIncrement"` UserID int64 `gorm:"column:user_id;uniqueIndex:idx_daily_unique,priority:1"` // uniqueIndex:idx_daily_unique,priority:1 TokenID int64 `gorm:"column:token_id;uniqueIndex:idx_daily_unique,priority:2"` Capability string `gorm:"column:capability;index:idx_daily_usage_capability;comment:模型能力"` Date time.Time `gorm:"column:date;autoCreateTime;uniqueIndex:idx_daily_unique,priority:3"` Model string `gorm:"column:model"` Stream bool `gorm:"column:stream"` PromptTokens int `gorm:"column:prompt_tokens"` CompletionTokens int `gorm:"column:completion_tokens"` TotalTokens int `gorm:"column:total_tokens"` Cost string `gorm:"column:cost"` } func (DailyUsage) TableName() string { return "daily_usages" }