commit
						738089755a
					
				| 
						 | 
					@ -0,0 +1,106 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Location ...
 | 
				
			||||||
 | 
					type Location struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetLocation ...
 | 
				
			||||||
 | 
					func GetLocation() Location {
 | 
				
			||||||
 | 
						return Location{}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetLocationByCode ...
 | 
				
			||||||
 | 
					func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCode, toBytes(payload))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.ResponseLocationAddress `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetProvincesByCodes ... ...
 | 
				
			||||||
 | 
					func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodes, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.LocationProvinceResponse `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetDistrictsByCodes ...
 | 
				
			||||||
 | 
					func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.LocationDistrictResponse, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCodes, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.LocationDistrictResponse `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetWardsByCodes ...
 | 
				
			||||||
 | 
					func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWardResponse, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCodes, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.LocationWardResponse `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,55 @@ func (o Order) UpdateORStatus(p model.OrderUpdateORStatus) error {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// CancelDelivery ...
 | 
					// CancelDelivery ...
 | 
				
			||||||
func (o Order) CancelDelivery(p model.OrderCancelDelivery) error {
 | 
					func (o Order) CancelDelivery(p model.OrderCancelDelivery) error {
 | 
				
			||||||
	msg, err := natsio.GetServer().Request(subject.Order.UpdateORStatus, toBytes(p))
 | 
						msg, err := natsio.GetServer().Request(subject.Order.CancelDelivery, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r model.CommonResponseData
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ChangeDeliveryStatus ...
 | 
				
			||||||
 | 
					func (o Order) ChangeDeliveryStatus(p model.OrderChangeDeliveryStatus) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Order.ChangeDeliveryStatus, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r model.CommonResponseData
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// UpdateLogisticInfoFailed ...
 | 
				
			||||||
 | 
					func (o Order) UpdateLogisticInfoFailed(p model.OrderUpdateLogisticInfoFailed) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Order.UpdateLogisticInfoFailed, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r model.CommonResponseData
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ORNotUpdateStatus ...
 | 
				
			||||||
 | 
					func (o Order) ORNotUpdateStatus(p model.OrderORsNotUpdateStatus) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Order.ORNotUpdateStatus, toBytes(p))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Supplier ...
 | 
				
			||||||
 | 
					type Supplier struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetSupplier ...
 | 
				
			||||||
 | 
					func GetSupplier() Supplier {
 | 
				
			||||||
 | 
						return Supplier{}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (s Supplier) GetListSupplierInfo(p model.GetSupplierRequest) ([]*model.ResponseSupplierInfo, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Supplier.GetListSupplierInfo, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  []*model.ResponseSupplierInfo `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (s Supplier) GetSupplierContractBySupplierID(p model.GetSupplierContractRequest) (*model.ResponseSupplierContract, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Supplier.GetSupplierContractBySupplierID, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.ResponseSupplierContract `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (s Supplier) FindAll(supplierID model.SupplierRequestPayload) (*model.SupplierAll, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Supplier.FindAll, toBytes(supplierID))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.SupplierAll `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@ package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"go.mongodb.org/mongo-driver/bson"
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,3 +13,9 @@ func toBytes(data interface{}) []byte {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return b
 | 
						return b
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// bsonToBytes ...
 | 
				
			||||||
 | 
					func bsonToBytes(data interface{}) []byte {
 | 
				
			||||||
 | 
						b, _ := bson.Marshal(data)
 | 
				
			||||||
 | 
						return b
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,42 @@ func GetWarehouse() Warehouse {
 | 
				
			||||||
	return Warehouse{}
 | 
						return Warehouse{}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// AfterCreateWarehouse ...
 | 
				
			||||||
 | 
					func (w Warehouse) AfterCreateWarehouse(p model.WarehouseNatsResponse) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.AfterCreateWarehouse, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Error string `json:"error"`
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// AfterUpdateWarehouse ...
 | 
				
			||||||
 | 
					func (w Warehouse) AfterUpdateWarehouse(p model.WarehouseNatsResponse) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.AfterUpdateWarehouse, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Error string `json:"error"`
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// CreateOutboundRequest ...
 | 
					// CreateOutboundRequest ...
 | 
				
			||||||
func (w Warehouse) CreateOutboundRequest(p model.OutboundRequestPayload) (*model.OutboundRequestResponse, error) {
 | 
					func (w Warehouse) CreateOutboundRequest(p model.OutboundRequestPayload) (*model.OutboundRequestResponse, error) {
 | 
				
			||||||
	msg, err := natsio.GetServer().Request(subject.Warehouse.CreateOutboundRequest, toBytes(p))
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.CreateOutboundRequest, toBytes(p))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,85 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DistinctWithField ...
 | 
				
			||||||
 | 
					func (w Warehouse) DistinctWithField(p model.DistinctWithField) ([]interface{}, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.Distinct, bsonToBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  []interface{} `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FindOneByCondition ...
 | 
				
			||||||
 | 
					func (w Warehouse) FindOneByCondition(p model.FindOneCondition) (*model.WarehouseNatsResponse, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.FindOne, bsonToBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.WarehouseNatsResponse `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// CountByCondition ...
 | 
				
			||||||
 | 
					func (w Warehouse) CountByCondition(p model.FindWithCondition) (int64, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.Count, bsonToBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return 0, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  int64  `json:"data"`
 | 
				
			||||||
 | 
							Error string `json:"error"`
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err = json.Unmarshal(msg.Data, &r); err != nil {
 | 
				
			||||||
 | 
							return 0, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if r.Error != "" {
 | 
				
			||||||
 | 
							return 0, errors.New(r.Error)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return r.Data, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FindByCondition ...
 | 
				
			||||||
 | 
					func (w Warehouse) FindByCondition(p model.FindWithCondition) ([]*model.WarehouseNatsResponse, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.FindByCondition, bsonToBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  []*model.WarehouseNatsResponse `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										2
									
								
								go.mod
								
								
								
								
							| 
						 | 
					@ -4,9 +4,9 @@ go 1.16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	github.com/golang/protobuf v1.5.2 // indirect
 | 
						github.com/golang/protobuf v1.5.2 // indirect
 | 
				
			||||||
	github.com/logrusorgru/aurora v2.0.3+incompatible
 | 
					 | 
				
			||||||
	github.com/nats-io/nats-server/v2 v2.6.1 // indirect
 | 
						github.com/nats-io/nats-server/v2 v2.6.1 // indirect
 | 
				
			||||||
	github.com/nats-io/nats.go v1.13.0
 | 
						github.com/nats-io/nats.go v1.13.0
 | 
				
			||||||
	github.com/thoas/go-funk v0.9.1
 | 
						github.com/thoas/go-funk v0.9.1
 | 
				
			||||||
 | 
						go.mongodb.org/mongo-driver v1.10.1
 | 
				
			||||||
	google.golang.org/protobuf v1.27.1 // indirect
 | 
						google.golang.org/protobuf v1.27.1 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										37
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										37
									
								
								go.sum
								
								
								
								
							| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
 | 
					 | 
				
			||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
					github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
				
			||||||
 | 
					github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
				
			||||||
 | 
					github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
					github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
					github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
				
			||||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
					github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
				
			||||||
| 
						 | 
					@ -9,17 +10,25 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
 | 
				
			||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 | 
					github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 | 
				
			||||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 | 
					github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 | 
				
			||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 | 
					github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 | 
				
			||||||
 | 
					github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
				
			||||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
					github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
				
			||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
				
			||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
				
			||||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
				
			||||||
 | 
					github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
				
			||||||
 | 
					github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
 | 
				
			||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
					github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
				
			||||||
github.com/klauspost/compress v1.13.4 h1:0zhec2I8zGnjWcKyLl6i3gPqKANCCn5e9xmviEEeX6s=
 | 
					 | 
				
			||||||
github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
 | 
					github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
 | 
				
			||||||
 | 
					github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
 | 
				
			||||||
 | 
					github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
 | 
				
			||||||
 | 
					github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
				
			||||||
 | 
					github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
				
			||||||
 | 
					github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
				
			||||||
github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
 | 
					github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
 | 
				
			||||||
github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
 | 
					github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
 | 
				
			||||||
github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
 | 
					github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0=
 | 
				
			||||||
github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
 | 
					github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY=
 | 
				
			||||||
 | 
					github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 | 
				
			||||||
github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
 | 
					github.com/nats-io/jwt v1.2.2 h1:w3GMTO969dFg+UOKTmmyuu7IGdusK+7Ytlt//OYH/uU=
 | 
				
			||||||
github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
 | 
					github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q=
 | 
				
			||||||
github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
 | 
					github.com/nats-io/jwt/v2 v2.0.3 h1:i/O6cmIsjpcQyWDYNcq2JyZ3/VTF8SJ4JWluI5OhpvI=
 | 
				
			||||||
| 
						 | 
					@ -34,29 +43,44 @@ github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
 | 
				
			||||||
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
 | 
					github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
 | 
				
			||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
 | 
					github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
 | 
				
			||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
 | 
					github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
 | 
				
			||||||
 | 
					github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
				
			||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
					github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
				
			||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
					github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
				
			||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
					github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
				
			||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
					github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
				
			||||||
 | 
					github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 | 
				
			||||||
 | 
					github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
				
			||||||
github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M=
 | 
					github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M=
 | 
				
			||||||
github.com/thoas/go-funk v0.9.1/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
 | 
					github.com/thoas/go-funk v0.9.1/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=
 | 
				
			||||||
 | 
					github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 | 
				
			||||||
 | 
					github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 | 
				
			||||||
 | 
					github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
 | 
				
			||||||
 | 
					github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
 | 
				
			||||||
 | 
					github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
 | 
				
			||||||
 | 
					go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4=
 | 
				
			||||||
 | 
					go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
					golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 | 
					golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 | 
					golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 | 
				
			||||||
 | 
					golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
 | 
				
			||||||
 | 
					golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 | 
				
			||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
				
			||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
					golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
				
			||||||
 | 
					golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
				
			||||||
 | 
					golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
 | 
					golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
 | 
					golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1 h1:SrN+KX8Art/Sf4HNj6Zcz06G7VEz+7w9tdXTPOZ7+l4=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
					golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
				
			||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
					golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
				
			||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
					golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
				
			||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
					golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
				
			||||||
 | 
					golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
				
			||||||
 | 
					golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 | 
				
			||||||
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI=
 | 
					golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI=
 | 
				
			||||||
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
					golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
				
			||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
					golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
				
			||||||
| 
						 | 
					@ -72,5 +96,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
 | 
				
			||||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
 | 
					google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
 | 
				
			||||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
					google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
				
			||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
					gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
				
			||||||
 | 
					gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
				
			||||||
 | 
					gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 | 
				
			||||||
 | 
					gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,3 +26,8 @@ func (e JSONEncoder) Subscribe(subject string, cb nats.Handler) (*nats.Subscript
 | 
				
			||||||
func (e JSONEncoder) Publish(reply string, data interface{}) error {
 | 
					func (e JSONEncoder) Publish(reply string, data interface{}) error {
 | 
				
			||||||
	return e.encConn.Publish(reply, data)
 | 
						return e.encConn.Publish(reply, data)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Request ...
 | 
				
			||||||
 | 
					func (e JSONEncoder) Request(subject string, data interface{}, res interface{}) error {
 | 
				
			||||||
 | 
						return e.encConn.Request(subject, data, res, requestTimeout)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "go.mongodb.org/mongo-driver/mongo/options"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type FindWithCondition struct {
 | 
				
			||||||
 | 
						Conditions interface{}            `json:"conditions"`
 | 
				
			||||||
 | 
						Opts       []*options.FindOptions `json:"opts"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type FindOneCondition struct {
 | 
				
			||||||
 | 
						Conditions interface{} `json:"conditions"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type DistinctWithField struct {
 | 
				
			||||||
 | 
						Conditions interface{} `json:"conditions"`
 | 
				
			||||||
 | 
						Filed      string      `json:"filed"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ActionBy struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationRequestPayload ...
 | 
				
			||||||
 | 
					type LocationRequestPayload struct {
 | 
				
			||||||
 | 
						Province int `json:"province"`
 | 
				
			||||||
 | 
						District int `json:"district"`
 | 
				
			||||||
 | 
						Ward     int `json:"ward"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ProvinceRequestPayload ...
 | 
				
			||||||
 | 
					type ProvinceRequestPayload struct {
 | 
				
			||||||
 | 
						Codes []int `json:"codes"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DistrictRequestPayload ...
 | 
				
			||||||
 | 
					type DistrictRequestPayload struct {
 | 
				
			||||||
 | 
						Codes []int `json:"codes"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WardRequestPayload ...
 | 
				
			||||||
 | 
					type WardRequestPayload struct {
 | 
				
			||||||
 | 
						Codes []int `json:"codes"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ResponseLocationAddress struct {
 | 
				
			||||||
 | 
						Province LocationProvince `json:"province"`
 | 
				
			||||||
 | 
						District LocationDistrict `json:"district"`
 | 
				
			||||||
 | 
						Ward     LocationWard     `json:"ward"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationProvince ...
 | 
				
			||||||
 | 
					type LocationProvince struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
						Code int    `json:"code"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationDistrict ...
 | 
				
			||||||
 | 
					type LocationDistrict struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
						Code int    `json:"code"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationWard ...
 | 
				
			||||||
 | 
					type LocationWard struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
						Code int    `json:"code"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationProvinceResponse ...
 | 
				
			||||||
 | 
					type LocationProvinceResponse struct {
 | 
				
			||||||
 | 
						Provinces []LocationProvince `json:"provinces"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationDistrictResponse ...
 | 
				
			||||||
 | 
					type LocationDistrictResponse struct {
 | 
				
			||||||
 | 
						Districts []LocationDistrict `json:"districts"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LocationWardResponse ...
 | 
				
			||||||
 | 
					type LocationWardResponse struct {
 | 
				
			||||||
 | 
						Wards []LocationWard `json:"wards"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,39 @@ package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// OrderUpdateORStatus ...
 | 
					// OrderUpdateORStatus ...
 | 
				
			||||||
type OrderUpdateORStatus struct {
 | 
					type OrderUpdateORStatus struct {
 | 
				
			||||||
	OrderCode string `json:"orderCode"`
 | 
						OrderCode      string      `json:"orderCode"`
 | 
				
			||||||
	ORCode    string `json:"orCode"`
 | 
						ORCode         string      `json:"orCode"`
 | 
				
			||||||
	Status    string `json:"status"`
 | 
						Status         string      `json:"status"`
 | 
				
			||||||
	Reason    string `json:"reason"`
 | 
						DeliveryStatus string      `json:"deliveryStatus"`
 | 
				
			||||||
 | 
						Reason         string      `json:"reason"`
 | 
				
			||||||
 | 
						Data           OrderORData `json:"data"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// OrderCancelDelivery ...
 | 
					// OrderCancelDelivery ...
 | 
				
			||||||
type OrderCancelDelivery struct {
 | 
					type OrderCancelDelivery struct {
 | 
				
			||||||
	OrderID string `json:"orderId"`
 | 
						OrderID string `json:"orderId"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// OrderChangeDeliveryStatus ...
 | 
				
			||||||
 | 
					type OrderChangeDeliveryStatus struct {
 | 
				
			||||||
 | 
						OrderID        string   `json:"orderId"`
 | 
				
			||||||
 | 
						DeliveryStatus string   `json:"deliveryStatus"`
 | 
				
			||||||
 | 
						ActionBy       ActionBy `json:"actionBy"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// OrderORData ...
 | 
				
			||||||
 | 
					type OrderORData struct {
 | 
				
			||||||
 | 
						Link string `json:"link"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// OrderUpdateLogisticInfoFailed ...
 | 
				
			||||||
 | 
					type OrderUpdateLogisticInfoFailed struct {
 | 
				
			||||||
 | 
						OrderID string `json:"orderId"`
 | 
				
			||||||
 | 
						ORCode  string `json:"orCode"`
 | 
				
			||||||
 | 
						Reason  string `json:"reason"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// OrderORsNotUpdateStatus ...
 | 
				
			||||||
 | 
					type OrderORsNotUpdateStatus struct {
 | 
				
			||||||
 | 
						ORCodes []string `json:"orCodes"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"go.mongodb.org/mongo-driver/bson/primitive"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetSupplierRequest ...
 | 
				
			||||||
 | 
					type GetSupplierRequest struct {
 | 
				
			||||||
 | 
						ListID []primitive.ObjectID `json:"listID"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type GetSupplierContractRequest struct {
 | 
				
			||||||
 | 
						SupplierID primitive.ObjectID `json:"supplierID"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SupplierRequestPayload ...
 | 
				
			||||||
 | 
					type SupplierRequestPayload struct {
 | 
				
			||||||
 | 
						Limit          int
 | 
				
			||||||
 | 
						Page           int
 | 
				
			||||||
 | 
						Keyword        string
 | 
				
			||||||
 | 
						Status         string
 | 
				
			||||||
 | 
						PIC            string
 | 
				
			||||||
 | 
						ContractStatus string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseSupplierInfo ...
 | 
				
			||||||
 | 
					type ResponseSupplierInfo struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseSupplierContract ...
 | 
				
			||||||
 | 
					type ResponseSupplierContract struct {
 | 
				
			||||||
 | 
						ID       string `json:"id"`
 | 
				
			||||||
 | 
						Supplier string `json:"supplier"`
 | 
				
			||||||
 | 
						Name     string `json:"name"`
 | 
				
			||||||
 | 
						Status   string `json:"status"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SupplierBrief ...
 | 
				
			||||||
 | 
					type SupplierBrief struct {
 | 
				
			||||||
 | 
						ID        string `json:"_id"`
 | 
				
			||||||
 | 
						Name      string `json:"name"`
 | 
				
			||||||
 | 
						Status    string `json:"status"`
 | 
				
			||||||
 | 
						CreatedAt string `json:"createdAt"`
 | 
				
			||||||
 | 
						UpdatedAt string `json:"updatedAt"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type SupplierAll struct {
 | 
				
			||||||
 | 
						Suppliers []SupplierBrief `json:"suppliers"`
 | 
				
			||||||
 | 
						Total     int64           `json:"total"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,19 @@ type OutboundRequestPayload struct {
 | 
				
			||||||
	TPLCode      string                `json:"tplCode"`
 | 
						TPLCode      string                `json:"tplCode"`
 | 
				
			||||||
	Customer     CustomerInfo          `json:"customer"`
 | 
						Customer     CustomerInfo          `json:"customer"`
 | 
				
			||||||
	Items        []OutboundRequestItem `json:"items"`
 | 
						Items        []OutboundRequestItem `json:"items"`
 | 
				
			||||||
 | 
						Insurance    *InsuranceOpts        `json:"insurance"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// InsuranceOpts ...
 | 
				
			||||||
 | 
					type InsuranceOpts struct {
 | 
				
			||||||
 | 
						VehicleTypeID    string `json:"vehicleTypeId"`
 | 
				
			||||||
 | 
						VehicleTypeName  string `json:"vehicleTypeName"`
 | 
				
			||||||
 | 
						InsuranceTypeID  string `json:"insuranceTypeId"`
 | 
				
			||||||
 | 
						YearsOfInsurance int    `json:"yearsOfInsurance"`
 | 
				
			||||||
 | 
						License          string `json:"license"`
 | 
				
			||||||
 | 
						Chassis          string `json:"chassis"`
 | 
				
			||||||
 | 
						Engine           string `json:"engine"`
 | 
				
			||||||
 | 
						BeginDate        string `json:"beginDate"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// OutboundRequestItem ...
 | 
					// OutboundRequestItem ...
 | 
				
			||||||
| 
						 | 
					@ -25,6 +38,7 @@ type OutboundRequestItem struct {
 | 
				
			||||||
type CustomerInfo struct {
 | 
					type CustomerInfo struct {
 | 
				
			||||||
	Name        string        `json:"name"`
 | 
						Name        string        `json:"name"`
 | 
				
			||||||
	PhoneNumber string        `json:"phoneNumber"`
 | 
						PhoneNumber string        `json:"phoneNumber"`
 | 
				
			||||||
 | 
						Email       string        `json:"email"`
 | 
				
			||||||
	Address     AddressDetail `json:"address"`
 | 
						Address     AddressDetail `json:"address"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,3 +63,9 @@ type CancelOutboundRequest struct {
 | 
				
			||||||
	ORCode string `json:"orCode"`
 | 
						ORCode string `json:"orCode"`
 | 
				
			||||||
	Note   string `json:"note"`
 | 
						Note   string `json:"note"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SyncORStatusRequest ...
 | 
				
			||||||
 | 
					type SyncORStatusRequest struct {
 | 
				
			||||||
 | 
						ORCode    string `json:"orCode"`
 | 
				
			||||||
 | 
						OrderCode string `json:"orderCode"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
package model
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// OutboundRequestResponse ...
 | 
					// OutboundRequestResponse ...
 | 
				
			||||||
type OutboundRequestResponse struct {
 | 
					type OutboundRequestResponse struct {
 | 
				
			||||||
	// System code
 | 
						// System code
 | 
				
			||||||
| 
						 | 
					@ -22,6 +24,12 @@ type WarehouseConfiguration struct {
 | 
				
			||||||
	Order                   WarehouseOrder    `json:"order"`
 | 
						Order                   WarehouseOrder    `json:"order"`
 | 
				
			||||||
	Partner                 WarehousePartner  `json:"partner"`
 | 
						Partner                 WarehousePartner  `json:"partner"`
 | 
				
			||||||
	Delivery                WarehouseDelivery `json:"delivery"`
 | 
						Delivery                WarehouseDelivery `json:"delivery"`
 | 
				
			||||||
 | 
						Other                   WarehouseOther    `json:"other"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WarehouseOther ...
 | 
				
			||||||
 | 
					type WarehouseOther struct {
 | 
				
			||||||
 | 
						DoesSupportSellyExpress bool `json:"doesSupportSellyExpress"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WarehouseSupplier ...
 | 
					// WarehouseSupplier ...
 | 
				
			||||||
| 
						 | 
					@ -47,9 +55,9 @@ type WarehousePaymentMethod struct {
 | 
				
			||||||
// WarehouseDelivery ...
 | 
					// WarehouseDelivery ...
 | 
				
			||||||
type WarehouseDelivery struct {
 | 
					type WarehouseDelivery struct {
 | 
				
			||||||
	DeliveryMethods      []string `json:"deliveryMethods"`
 | 
						DeliveryMethods      []string `json:"deliveryMethods"`
 | 
				
			||||||
	PriorityServiceCodes []string `json:"priorityDeliveryServiceCodes"`
 | 
						PriorityServiceCodes []string `json:"priorityServiceCodes"`
 | 
				
			||||||
	EnabledSources       []int    `json:"enabledDeliverySources"`
 | 
						EnabledSources       []int    `json:"enabledSources"`
 | 
				
			||||||
	Types                []string `json:"type"`
 | 
						Types                []string `json:"types"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WarehousePartner ...
 | 
					// WarehousePartner ...
 | 
				
			||||||
| 
						 | 
					@ -59,3 +67,56 @@ type WarehousePartner struct {
 | 
				
			||||||
	Enabled        bool   `json:"enabled"`
 | 
						Enabled        bool   `json:"enabled"`
 | 
				
			||||||
	Authentication string `json:"authentication"`
 | 
						Authentication string `json:"authentication"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SyncORStatusResponse ...
 | 
				
			||||||
 | 
					type SyncORStatusResponse struct {
 | 
				
			||||||
 | 
						ORCode         string `json:"orCode"`
 | 
				
			||||||
 | 
						OrderCode      string `json:"orderCode"`
 | 
				
			||||||
 | 
						Status         string `json:"status"`
 | 
				
			||||||
 | 
						DeliveryStatus string `json:"deliveryStatus"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseWarehouseContact ...
 | 
				
			||||||
 | 
					type ResponseWarehouseContact struct {
 | 
				
			||||||
 | 
						Name    string `json:"name"`
 | 
				
			||||||
 | 
						Phone   string `json:"phone"`
 | 
				
			||||||
 | 
						Address string `json:"address"`
 | 
				
			||||||
 | 
						Email   string `json:"email"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseWarehouseLocation ...
 | 
				
			||||||
 | 
					type ResponseWarehouseLocation struct {
 | 
				
			||||||
 | 
						Province            CommonLocation `json:"province"`
 | 
				
			||||||
 | 
						District            CommonLocation `json:"district"`
 | 
				
			||||||
 | 
						Ward                CommonLocation `json:"ward"`
 | 
				
			||||||
 | 
						Address             string         `json:"address"`
 | 
				
			||||||
 | 
						LocationCoordinates ResponseLatLng `json:"locationCoordinates"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type CommonLocation struct {
 | 
				
			||||||
 | 
						ID   string `json:"id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
						Code int    `json:"code"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseLatLng ...
 | 
				
			||||||
 | 
					type ResponseLatLng struct {
 | 
				
			||||||
 | 
						Latitude  float64 `json:"latitude"`
 | 
				
			||||||
 | 
						Longitude float64 `json:"longitude"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WarehouseNatsResponse ...
 | 
				
			||||||
 | 
					type WarehouseNatsResponse struct {
 | 
				
			||||||
 | 
						ID             string                    `json:"_id"`
 | 
				
			||||||
 | 
						Staff          string                    `json:"staff"`
 | 
				
			||||||
 | 
						Name           string                    `json:"name"`
 | 
				
			||||||
 | 
						SearchString   string                    `json:"searchString"`
 | 
				
			||||||
 | 
						Slug           string                    `json:"slug"`
 | 
				
			||||||
 | 
						Status         string                    `json:"status"`
 | 
				
			||||||
 | 
						Supplier       string                    `json:"supplier"`
 | 
				
			||||||
 | 
						Contact        ResponseWarehouseContact  `json:"contact"`
 | 
				
			||||||
 | 
						Location       ResponseWarehouseLocation `json:"location"`
 | 
				
			||||||
 | 
						Configurations WarehouseConfiguration    `json:"configurations"`
 | 
				
			||||||
 | 
						CreatedAt      time.Time                 `json:"createdAt"`
 | 
				
			||||||
 | 
						UpdatedAt      time.Time                 `json:"updatedAt"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,11 @@ func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) {
 | 
				
			||||||
	if sv.Config.RequestTimeout > 0 {
 | 
						if sv.Config.RequestTimeout > 0 {
 | 
				
			||||||
		timeout = sv.Config.RequestTimeout
 | 
							timeout = sv.Config.RequestTimeout
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return sv.instance.Request(subject, payload, timeout)
 | 
						msg, err := sv.instance.Request(subject, payload, timeout)
 | 
				
			||||||
 | 
						if errors.Is(err, nats.ErrNoResponders) {
 | 
				
			||||||
 | 
							log.Printf("[NATS SERVER]: request - no responders for subject: %s", subject)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return msg, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Reply ...
 | 
					// Reply ...
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,13 +7,9 @@ func getCommunicationValue(val string) string {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var Communication = struct {
 | 
					var Communication = struct {
 | 
				
			||||||
	RequestHTTP       string
 | 
						RequestHTTP  string
 | 
				
			||||||
	ResponseHTTP      string
 | 
						ResponseHTTP string
 | 
				
			||||||
	WebhookTNC        string
 | 
					 | 
				
			||||||
	WebhookGlobalCare string
 | 
					 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	RequestHTTP:       getCommunicationValue("request_http"),
 | 
						RequestHTTP:  getCommunicationValue("request_http"),
 | 
				
			||||||
	ResponseHTTP:      getCommunicationValue("response_http"),
 | 
						ResponseHTTP: getCommunicationValue("response_http"),
 | 
				
			||||||
	WebhookTNC:        getCommunicationValue("webhook_tnc"),
 | 
					 | 
				
			||||||
	WebhookGlobalCare: getCommunicationValue("webhook_global_care"),
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,8 +4,12 @@ var prefixes = struct {
 | 
				
			||||||
	Communication string
 | 
						Communication string
 | 
				
			||||||
	Order         string
 | 
						Order         string
 | 
				
			||||||
	Warehouse     string
 | 
						Warehouse     string
 | 
				
			||||||
 | 
						Location      string
 | 
				
			||||||
 | 
						Supplier      string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	Communication: "communication",
 | 
						Communication: "communication",
 | 
				
			||||||
	Order:         "order",
 | 
						Order:         "order",
 | 
				
			||||||
	Warehouse:     "warehouse",
 | 
						Warehouse:     "warehouse",
 | 
				
			||||||
 | 
						Location:      "location",
 | 
				
			||||||
 | 
						Supplier:      "supplier",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					package subject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getLocationValue(val string) string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("%s.%s", prefixes.Location, val)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Location = struct {
 | 
				
			||||||
 | 
						GetLocationByCode   string
 | 
				
			||||||
 | 
						GetProvincesByCodes string
 | 
				
			||||||
 | 
						GetDistrictsByCodes string
 | 
				
			||||||
 | 
						GetWardsByCodes     string
 | 
				
			||||||
 | 
					}{
 | 
				
			||||||
 | 
						GetLocationByCode:   getLocationValue("get_location_warehouse"),
 | 
				
			||||||
 | 
						GetProvincesByCodes: getLocationValue("get_provinces_by_codes"),
 | 
				
			||||||
 | 
						GetDistrictsByCodes: getLocationValue("get_districts_by_codes"),
 | 
				
			||||||
 | 
						GetWardsByCodes:     getLocationValue("get_wards_by_codes"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -7,11 +7,15 @@ func getOrderValue(val string) string {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var Order = struct {
 | 
					var Order = struct {
 | 
				
			||||||
	UpdateORStatus    string
 | 
						UpdateORStatus           string
 | 
				
			||||||
	CancelDelivery    string
 | 
						CancelDelivery           string
 | 
				
			||||||
	WebhookTNC        string
 | 
						ChangeDeliveryStatus     string
 | 
				
			||||||
	WebhookGlobalCare string
 | 
						UpdateLogisticInfoFailed string
 | 
				
			||||||
 | 
						ORNotUpdateStatus        string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	UpdateORStatus: getOrderValue("update_outbound_request_status"),
 | 
						UpdateORStatus:           getOrderValue("update_outbound_request_status"),
 | 
				
			||||||
	CancelDelivery: getOrderValue("cancel_delivery"),
 | 
						CancelDelivery:           getOrderValue("cancel_delivery"),
 | 
				
			||||||
 | 
						ChangeDeliveryStatus:     getOrderValue("change_delivery_status"),
 | 
				
			||||||
 | 
						UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"),
 | 
				
			||||||
 | 
						ORNotUpdateStatus:        getOrderValue("outbound_request_not_update_status"),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					package subject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getSupplierValue(val string) string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("%s.%s", prefixes.Supplier, val)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Supplier = struct {
 | 
				
			||||||
 | 
						GetListSupplierInfo             string
 | 
				
			||||||
 | 
						GetSupplierContractBySupplierID string
 | 
				
			||||||
 | 
						FindAll                         string
 | 
				
			||||||
 | 
					}{
 | 
				
			||||||
 | 
						GetListSupplierInfo:             getSupplierValue("get_list_supplier_info"),
 | 
				
			||||||
 | 
						GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"),
 | 
				
			||||||
 | 
						FindAll:                         getSupplierValue("find_all"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -11,9 +11,27 @@ var Warehouse = struct {
 | 
				
			||||||
	UpdateOutboundRequestLogistic string
 | 
						UpdateOutboundRequestLogistic string
 | 
				
			||||||
	CancelOutboundRequest         string
 | 
						CancelOutboundRequest         string
 | 
				
			||||||
	GetConfiguration              string
 | 
						GetConfiguration              string
 | 
				
			||||||
 | 
						SyncORStatus                  string
 | 
				
			||||||
 | 
						WebhookTNC                    string
 | 
				
			||||||
 | 
						WebhookGlobalCare             string
 | 
				
			||||||
 | 
						FindOne                       string
 | 
				
			||||||
 | 
						FindByCondition               string
 | 
				
			||||||
 | 
						Distinct                      string
 | 
				
			||||||
 | 
						Count                         string
 | 
				
			||||||
 | 
						AfterUpdateWarehouse          string
 | 
				
			||||||
 | 
						AfterCreateWarehouse          string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
 | 
						AfterCreateWarehouse:          getWarehouseValue("after_create_warehouse"),
 | 
				
			||||||
 | 
						AfterUpdateWarehouse:          getWarehouseValue("after_update_warehouse"),
 | 
				
			||||||
	CreateOutboundRequest:         getWarehouseValue("create_outbound_request"),
 | 
						CreateOutboundRequest:         getWarehouseValue("create_outbound_request"),
 | 
				
			||||||
	UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"),
 | 
						UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"),
 | 
				
			||||||
	CancelOutboundRequest:         getWarehouseValue("cancel_outbound_request"),
 | 
						CancelOutboundRequest:         getWarehouseValue("cancel_outbound_request"),
 | 
				
			||||||
	GetConfiguration:              getWarehouseValue("get_configuration"),
 | 
						GetConfiguration:              getWarehouseValue("get_configuration"),
 | 
				
			||||||
 | 
						SyncORStatus:                  getWarehouseValue("sync_or_status"),
 | 
				
			||||||
 | 
						WebhookTNC:                    getWarehouseValue("webhook_tnc"),
 | 
				
			||||||
 | 
						WebhookGlobalCare:             getWarehouseValue("webhook_global_care"),
 | 
				
			||||||
 | 
						FindOne:                       getWarehouseValue("find_one"),
 | 
				
			||||||
 | 
						FindByCondition:               getWarehouseValue("find_all_by_condition"),
 | 
				
			||||||
 | 
						Distinct:                      getWarehouseValue("distinct"),
 | 
				
			||||||
 | 
						Count:                         getWarehouseValue("count"),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue