package model import pasturePb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/cow" type Drugs struct { Id int64 `json:"id"` Name string `json:"name"` CategoryId pasturePb.DrugCategory_Kind `json:"categoryId"` CategoryName string `json:"categoryName"` Producer string `json:"producer"` BatchNumber string `json:"batchNumber"` ProductionAt int64 `json:"productionAt"` ExpirationAt int64 `json:"expirationAt"` Unit pasturePb.Unit_Kind `json:"unit"` UnitName string `json:"unitName"` Specs string `json:"specs"` Inventory int32 `json:"inventory"` UsageMethod pasturePb.DrugUsage_Kind `json:"usage_method"` UsageMethodName string `json:"usageMethodName"` Price int32 `json:"price"` MilkExpiredDays int32 `json:"milk_expired_days"` MeatExpiredDays int32 `json:"meat_expired_days"` Remarks string `json:"remarks"` OperationId int32 `json:"operation_id"` OperationName string `json:"operation_name"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } func (d *Drugs) TableName() string { return "drugs" } func NewDrugs(req *pasturePb.SearchDrugsList, currentUser *SystemUser) *Drugs { return &Drugs{ Name: req.Name, CategoryId: req.CategoryId, CategoryName: req.CategoryName, Producer: req.Producer, BatchNumber: req.BatchNumber, ProductionAt: int64(req.ProductionAt), ExpirationAt: int64(req.ExpirationAt), Unit: req.Unit, UnitName: req.UnitName, Specs: req.Specs, Inventory: req.Inventory, UsageMethod: req.Usage, UsageMethodName: req.UsageName, Price: int32(req.Price * 100), Remarks: req.Remarks, OperationId: int32(currentUser.Id), OperationName: currentUser.Name, } } type DrugsSlice []*Drugs func (d DrugsSlice) ToPB() []*pasturePb.SearchDrugsList { res := make([]*pasturePb.SearchDrugsList, len(d)) for i, v := range d { res[i] = &pasturePb.SearchDrugsList{ Id: int32(v.Id), Name: v.Name, CategoryId: v.CategoryId, CategoryName: v.CategoryName, Producer: v.Producer, BatchNumber: v.BatchNumber, ProductionAt: int32(v.ProductionAt), ExpirationAt: int32(v.ExpirationAt), Unit: v.Unit, UnitName: v.UnitName, Specs: v.Specs, Inventory: v.Inventory, Usage: v.UsageMethod, UsageName: v.UsageMethodName, Price: float32(v.Price) / 100, MeatExpiredDays: v.MeatExpiredDays, MilkExpiredDays: v.MilkExpiredDays, Remarks: v.Remarks, OperationId: v.OperationId, OperationName: v.OperationName, CreatedAt: int32(v.CreatedAt), UpdatedAt: int32(v.UpdatedAt), } } return res }