59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
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"
|
||
}
|
||
}
|