package model import ( pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" "github.com/nicksnyder/go-i18n/v2/i18n" ) type ConfigCowType struct { Id int64 `json:"id"` Kind pasturePb.CowType_Kind `json:"kind"` I18NFieldTag string `json:"I18NFieldTag"` Remarks string `json:"remarks"` IsShow pasturePb.IsShow_Kind `json:"isShow"` CreatedAt int64 `json:"createdAt"` UpdatedAt int64 `json:"updatedAt"` } func (c *ConfigCowType) TableName() string { return "config_cow_type" } type ConfigCowTypeSlice []*ConfigCowType func (c ConfigCowTypeSlice) ToPB(userModel *UserModel) []*pasturePb.SearchBaseConfigList { res := make([]*pasturePb.SearchBaseConfigList, len(c)) for i, d := range c { name, _ := userModel.LanguageContent.Localize(&i18n.LocalizeConfig{ MessageID: d.I18NFieldTag, }) res[i] = &pasturePb.SearchBaseConfigList{ Id: int32(d.Id), Name: name, Remarks: d.Remarks, IsShow: d.IsShow, CreatedAt: int32(d.CreatedAt), UpdatedAt: int32(d.UpdatedAt), } } return res } func (c ConfigCowTypeSlice) ToPB2(userModel *UserModel, optionName string) []*pasturePb.ConfigOptionsList { res := make([]*pasturePb.ConfigOptionsList, 0) for _, v := range c { label, _ := userModel.LanguageContent.Localize(&i18n.LocalizeConfig{ MessageID: v.I18NFieldTag, }) if optionName == "breed" { if v.Kind == pasturePb.CowType_Breeding_Calf || v.Kind == pasturePb.CowType_Reserve_Calf { continue } } res = append(res, &pasturePb.ConfigOptionsList{ Value: int32(v.Kind), Label: label, Disabled: true, }) } return res }