uniugm/admin/apps/game/model/item_bag.go

57 lines
1.6 KiB
Go

package model
import (
"admin/internal/db"
"admin/internal/errcode"
"admin/internal/global"
"admin/internal/model/dto"
"time"
)
func init() {
db.RegisterTableModels(ItemBag{})
}
// 道具包,配置一系列道具,供邮件、礼包码填写使用
type ItemBag struct {
ID int `gorm:"primarykey" readonly:"true"`
ProjectId int `gorm:"uniqueIndex:idx_bag"`
Name string `gorm:"type:varchar(255);uniqueIndex:idx_bag" name:"礼包名称" desc:"请输入礼包名称,全项目唯一" required:"true" where:"eq"`
Attach []*MailAttachItem `gorm:"type:json;serializer:json" name:"邮件附件" type:"items" desc:"搜索道具并点击添加" required:"true"`
CreatedAt time.Time `readonly:"true" where:"range"`
UpdatedAt time.Time `readonly:"true"`
}
func (lm *ItemBag) TableName() string {
return "item_bag"
}
func (m *ItemBag) GetId() int {
return m.ID
}
func (m *ItemBag) GetShowKey() string {
return m.Name
}
func (m *ItemBag) GetChoiceServers(project *Project) []*dto.CommonDtoFieldChoice {
return getChoiceServers(project)
}
func (m *ItemBag) GetWhitelistTypeChoices(project *Project) []*dto.CommonDtoFieldChoice {
return []*dto.CommonDtoFieldChoice{
{Desc: "IP", Value: "ip"},
{Desc: "账号", Value: "account"},
}
}
func (m *ItemBag) List(projectId int) ([]*ItemBag, error) {
list := make([]*ItemBag, 0)
err := global.GLOB_DB.Where("project_id = ?", projectId).Order("created_at desc").Find(&list).Error
if err != nil {
return list, errcode.New(errcode.DBError, "list all item bag error:%v", err)
}
return list, nil
}