Files
platform/web/models/resource.go

59 lines
1.6 KiB
Go
Raw Normal View History

package models
import (
"platform/web/core"
)
// Resource 套餐表
type Resource struct {
core.Model
2025-12-15 14:48:30 +08:00
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-长效动态
2026-03-24 16:25:21 +08:00
Code string `json:"code" gorm:"column:code"` // 产品编码
2026-03-24 16:25:21 +08:00
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 // 长效动态
)
2026-03-24 16:25:21 +08:00
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 // 包量
)
2026-03-18 13:07:06 +08:00
func (m ResourceMode) Code() string {
switch m {
case ResourceModeTime:
return "time"
case ResourceModeQuota:
return "quota"
default:
return "unknown"
}
}