2025-11-24 18:44:06 +08:00
|
|
|
|
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"` // 产品编码
|
2025-11-24 18:44:06 +08:00
|
|
|
|
|
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"`
|
2025-11-24 18:44:06 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 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 套餐计费模式枚举
|
2025-11-24 18:44:06 +08:00
|
|
|
|
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"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|