diff --git a/client/warehouse.go b/client/warehouse.go index fb391ca..664df43 100644 --- a/client/warehouse.go +++ b/client/warehouse.go @@ -182,3 +182,66 @@ func (w Warehouse) UpdateORDeliveryStatus(p model.WarehouseORUpdateDeliveryStatu } return nil } + +// CreateSupplierHoliday ... +func (w Warehouse) CreateSupplierHoliday(p model.SupplierHolidayCreatePayload) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.CreateSupplierHoliday, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return fmt.Errorf("nats: create_supplier_holiday %v", err) + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + +// UpdateSupplierHoliday ... +func (w Warehouse) UpdateSupplierHoliday(p model.SupplierHolidayUpdatePayload) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateSupplierHoliday, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return fmt.Errorf("nats: create_supplier_holiday %v", err) + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + +// GetSupplierHoliday ... +func (w Warehouse) GetSupplierHoliday(p model.GetSupplierHolidayRequest) (*model.ResponseSupplierHoliday, error) { + msg, err := natsio.GetServer().Request(subject.Warehouse.GetSupplierHoliday, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.ResponseSupplierHoliday `json:"data"` + Error string `json:"error"` + } + + if err := json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} diff --git a/model/warehouse_request.go b/model/warehouse_request.go index b6cecb1..c2b267a 100644 --- a/model/warehouse_request.go +++ b/model/warehouse_request.go @@ -113,3 +113,28 @@ type WarehouseORUpdateDeliveryStatus struct { OrderID string `json:"orderId"` DeliveryStatus string `json:"deliveryStatus"` } + +// SupplierHolidayCreatePayload ... +type SupplierHolidayCreatePayload struct { + Supplier string `json:"supplier"` + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Warehouses []string `json:"warehouses"` + IsApplyAll bool `json:"isApplyAll"` +} + +// SupplierHolidayUpdatePayload ... +type SupplierHolidayUpdatePayload struct { + Supplier string `json:"supplier"` + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Warehouses []string `json:"warehouses"` + IsApplyAll bool `json:"isApplyAll"` +} + +// GetSupplierHolidayRequest ... +type GetSupplierHolidayRequest struct { + Conditions interface{} `json:"conditions"` +} diff --git a/model/warehouse_response.go b/model/warehouse_response.go index 293d2a6..c38fe7c 100644 --- a/model/warehouse_response.go +++ b/model/warehouse_response.go @@ -173,3 +173,20 @@ type GetWarehousesResponse struct { Limit int64 `json:"limit"` List []WarehouseInfo `json:"list"` } + +// ResponseWarehouseShort ... +type ResponseWarehouseShort struct { + ID string `json:"_id"` + Name string `json:"name"` +} + +// ResponseSupplierHoliday ... +type ResponseSupplierHoliday struct { + Title string `json:"title"` + From string `json:"from"` + To string `json:"to"` + Status string `json:"status"` + Reason string `json:"reason"` + IsApplyAll bool `json:"isApplyAll"` + Warehouses []ResponseWarehouseShort `json:"warehouses"` +} diff --git a/subject/warehouse.go b/subject/warehouse.go index 6c7999e..56b83a4 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -8,6 +8,8 @@ func getWarehouseValue(val string) string { var Warehouse = struct { SyncWarehouseIntoServiceSupplier string + CreateWarehouseIntoServiceSupplier string + UpdateWarehouseIntoServiceSupplier string CreateOutboundRequest string UpdateOutboundRequestLogistic string CancelOutboundRequest string @@ -26,8 +28,13 @@ var Warehouse = struct { UpdateIsClosedSupplier string GetWarehouses string UpdateORDeliveryStatus string + CreateSupplierHoliday string + UpdateSupplierHoliday string + GetSupplierHoliday string }{ SyncWarehouseIntoServiceSupplier: getWarehouseValue("sync_warehouse_into_service_supplier"), + CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), + UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"), AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"), CreateOutboundRequest: getWarehouseValue("create_outbound_request"), @@ -46,4 +53,7 @@ var Warehouse = struct { UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"), GetWarehouses: getWarehouseValue("get_warehouses"), UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"), + CreateSupplierHoliday: getWarehouseValue("create_supplier_holiday"), + UpdateSupplierHoliday: getWarehouseValue("update_supplier_holiday"), + GetSupplierHoliday: getWarehouseValue("get_supplier_holiday"), }