package models import ( "platform/web/core" ) // Resource 套餐表 type Resource struct { core.Model UserID int32 `json:"user_id" gorm:"column:user_id"` // 用户ID ResourceNo *string `json:"resource_no,omitempty" gorm:"column:resource_no"` // 套餐编号 Active bool `json:"active" gorm:"column:active"` // 套餐状态 Type ResourceType `json:"type" gorm:"column:type"` // 套餐类型:1-短效动态,2-长效动态 Code string `json:"code" gorm:"column:code"` // 产品编码 User *User `json:"user,omitempty" gorm:"foreignKey:UserID"` Short *ResourceShort `json:"short,omitempty" gorm:"foreignKey:ResourceID"` Long *ResourceLong `json:"long,omitempty" gorm:"foreignKey:ResourceID"` Product *Product `json:"product,omitempty" gorm:"foreignKey:Code;references:Code"` } // ResourceType 套餐类型枚举 type ResourceType int const ( ResourceTypeShort ResourceType = 1 // 短效动态 ResourceTypeLong ResourceType = 2 // 长效动态 ) func (t ResourceType) Code() string { switch t { case ResourceTypeShort: return "short" case ResourceTypeLong: return "long" default: return "unknown" } } // ResourceMode 套餐计费模式枚举 type ResourceMode int const ( ResourceModeTime ResourceMode = 1 // 包时 ResourceModeQuota ResourceMode = 2 // 包量 ) func (m ResourceMode) Code() string { switch m { case ResourceModeTime: return "time" case ResourceModeQuota: return "quota" default: return "unknown" } }