57 lines
1.6 KiB
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
|
|
}
|