Feature/get bank info #23
			
				
			
		
		
		
	|  | @ -28,7 +28,7 @@ func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*mode | ||||||
| 		Data  *model.ResponseLocationAddress `json:"data"` | 		Data  *model.ResponseLocationAddress `json:"data"` | ||||||
| 		Error string                         `json:"error"` | 		Error string                         `json:"error"` | ||||||
| 	} | 	} | ||||||
| 	if err := json.Unmarshal(msg.Data, &r); err != nil { | 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -38,7 +38,7 @@ func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*mode | ||||||
| 	return r.Data, nil | 	return r.Data, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetProvincesByCodes ... ...
 | // GetProvincesByCodes ...
 | ||||||
| func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) { | func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) { | ||||||
| 	msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodes, toBytes(p)) | 	msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodes, toBytes(p)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -46,11 +46,11 @@ func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.Lo | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	var r struct { | 	var r struct { | ||||||
| 		Data  *model.LocationProvinceResponse `json:"data"'` | 		Data  *model.LocationProvinceResponse `json:"data"` | ||||||
| 		Error string                          `json:"error"` | 		Error string                          `json:"error"` | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if err := json.Unmarshal(msg.Data, &r); err != nil { | 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -71,7 +71,7 @@ func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.Lo | ||||||
| 		Error string                          `json:"error"` | 		Error string                          `json:"error"` | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if err := json.Unmarshal(msg.Data, &r); err != nil { | 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -94,7 +94,7 @@ func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWa | ||||||
| 		Error string                      `json:"error"` | 		Error string                      `json:"error"` | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if err := json.Unmarshal(msg.Data, &r); err != nil { | 	if err = json.Unmarshal(msg.Data, &r); err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -104,3 +104,211 @@ func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWa | ||||||
| 
 | 
 | ||||||
| 	return r.Data, nil | 	return r.Data, nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetProvinceByCondition ...
 | ||||||
|  | func (l Location) GetProvinceByCondition(p model.ProvinceRequestCondition) (*model.LocationProvinceDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetProvinceByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.LocationProvinceDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetProvincesByCondition ...
 | ||||||
|  | func (l Location) GetProvincesByCondition(p model.ProvinceRequestCondition) ([]*model.LocationProvinceDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  []*model.LocationProvinceDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetDistrictByCondition ...
 | ||||||
|  | func (l Location) GetDistrictByCondition(p model.DistrictRequestCondition) (*model.LocationDistrictDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetDistrictByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.LocationDistrictDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetDistrictsByCondition ...
 | ||||||
|  | func (l Location) GetDistrictsByCondition(p model.DistrictRequestCondition) ([]*model.LocationDistrictDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  []*model.LocationDistrictDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetWardByCondition ...
 | ||||||
|  | func (l Location) GetWardByCondition(p model.WardRequestCondition) (*model.LocationWardDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetWardByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.LocationWardDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetWardsByCondition ...
 | ||||||
|  | func (l Location) GetWardsByCondition(p model.WardRequestCondition) ([]*model.LocationWardDetailResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCondition, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  []*model.LocationWardDetailResponse `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // CountProvinceByCondition ...
 | ||||||
|  | func (l Location) CountProvinceByCondition(p model.ProvinceRequestCondition) (int64, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.CountProvinceByCondition, toBytes(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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // CountDistrictByCondition ...
 | ||||||
|  | func (l Location) CountDistrictByCondition(p model.DistrictRequestCondition) (int64, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.CountDistrictByCondition, toBytes(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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // CountWardByCondition ...
 | ||||||
|  | func (l Location) CountWardByCondition(p model.WardRequestCondition) (int64, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.CountWardByCondition, toBytes(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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // DistinctWithField ...
 | ||||||
|  | func (l Location) DistinctWithField(p model.ProvinceDistinctWithField) ([]interface{}, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Location.ProvinceDistinctWithField, toBytes(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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,36 @@ | ||||||
|  | package client | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"errors" | ||||||
|  | 	"github.com/Selly-Modules/natsio" | ||||||
|  | 	"github.com/Selly-Modules/natsio/model" | ||||||
|  | 	"github.com/Selly-Modules/natsio/subject" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // News ...
 | ||||||
|  | type News struct{} | ||||||
|  | 
 | ||||||
|  | // GetNews ...
 | ||||||
|  | func GetNews() News { | ||||||
|  | 	return News{} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetProductNoticesByInventory ...
 | ||||||
|  | func (n News) GetProductNoticesByInventory(p model.GetProductNoticesByInventoryRequest) (*model.GetProductNoticesByInventoryResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.News.GetProductNoticesByInventory, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.GetProductNoticesByInventoryResponse `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 | ||||||
|  | } | ||||||
|  | @ -98,3 +98,24 @@ func (o Order) ORNotUpdateStatus(p model.OrderORsNotUpdateStatus) error { | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetSupplierOrders ...
 | ||||||
|  | func (o Order) GetSupplierOrders(p model.OrderSupplierQuery) (*model.SupplierOrderList, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Order.GetSupplierOrders, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	var ( | ||||||
|  | 		r struct { | ||||||
|  | 			Data  model.SupplierOrderList `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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ package client | ||||||
| import ( | import ( | ||||||
| 	"encoding/json" | 	"encoding/json" | ||||||
| 	"errors" | 	"errors" | ||||||
|  | 
 | ||||||
| 	"github.com/Selly-Modules/natsio" | 	"github.com/Selly-Modules/natsio" | ||||||
| 	"github.com/Selly-Modules/natsio/model" | 	"github.com/Selly-Modules/natsio/model" | ||||||
| 	"github.com/Selly-Modules/natsio/subject" | 	"github.com/Selly-Modules/natsio/subject" | ||||||
|  | @ -38,3 +39,50 @@ func (s Seller) GetSellerInfoByID(p model.GetSellerByIDRequest) (*model.Response | ||||||
| 
 | 
 | ||||||
| 	return r.Data, nil | 	return r.Data, nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetListSellerInfoByIDs ...
 | ||||||
|  | func (s Seller) GetListSellerInfoByIDs(p model.GetListSellerByIDsRequest) (*model.ResponseListSellerInfo, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Seller.GetListSellerInfoByIDs, toBytes(p)) | ||||||
|  | 
 | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.ResponseListSellerInfo `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 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetListSellerInfoSupportChatByIDs ...
 | ||||||
|  | func (s Seller) GetListSellerInfoSupportChatByIDs(p model.GetListSellerSupportChatByIDsRequest) (*model.ResponseListSellerInfoSupportChat, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.SupportChat.GetListSellerInfoSupportChatByIDs, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.ResponseListSellerInfoSupportChat `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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -144,3 +144,22 @@ func (w Warehouse) GetConfigByWarehouseID(warehouseID string) (*model.WarehouseC | ||||||
| 	} | 	} | ||||||
| 	return r.Data, nil | 	return r.Data, nil | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetWarehouses ...
 | ||||||
|  | func (w Warehouse) GetWarehouses(p model.GetWarehousesRequest) (*model.GetWarehousesResponse, error) { | ||||||
|  | 	msg, err := natsio.GetServer().Request(subject.Warehouse.GetWarehouses, toBytes(p)) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	var r struct { | ||||||
|  | 		Data  *model.GetWarehousesResponse `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 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package natsio | ||||||
|  | 
 | ||||||
|  | // StreamNameSelly ...
 | ||||||
|  | const StreamNameSelly = "selly" | ||||||
|  | @ -0,0 +1,12 @@ | ||||||
|  | package jsconsumer | ||||||
|  | 
 | ||||||
|  | // Selly ...
 | ||||||
|  | var Selly = struct { | ||||||
|  | 	PushNotification               string | ||||||
|  | 	UpdateSellerAffiliateStatistic string | ||||||
|  | 	CheckAnDInsertCashflowBySeller string | ||||||
|  | }{ | ||||||
|  | 	PushNotification:               "PULL_PUSH_NOTIFICATION", | ||||||
|  | 	UpdateSellerAffiliateStatistic: "PULL_UPDATE_SELLER_AFFILIATE_STATISTIC", | ||||||
|  | 	CheckAnDInsertCashflowBySeller: "PULL_CHECK_AND_INSERT_CASHFLOW_BY_SELLER", | ||||||
|  | } | ||||||
|  | @ -0,0 +1,60 @@ | ||||||
|  | package jsmodel | ||||||
|  | 
 | ||||||
|  | // PushNotification ...
 | ||||||
|  | type PushNotification struct { | ||||||
|  | 	User        string              `json:"user"` | ||||||
|  | 	Type        string              `json:"type"` | ||||||
|  | 	TargetID    string              `json:"targetId"` | ||||||
|  | 	IsFromAdmin bool                `json:"isFromAdmin"` | ||||||
|  | 	Category    string              `json:"category"` | ||||||
|  | 	Options     NotificationOptions `json:"options"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NotificationOptions ...
 | ||||||
|  | type NotificationOptions struct { | ||||||
|  | 	Title   string `json:"title"` | ||||||
|  | 	Content string `json:"content"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // PayloadUpdateSellerAffiliateStatistic ...
 | ||||||
|  | type PayloadUpdateSellerAffiliateStatistic struct { | ||||||
|  | 	SellerID  string                   `json:"sellerId"` | ||||||
|  | 	Statistic SellerAffiliateStatistic `json:"statistic"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerAffiliateStatistic ...
 | ||||||
|  | type SellerAffiliateStatistic struct { | ||||||
|  | 	TransactionTotal              int     `json:"transactionTotal"` | ||||||
|  | 	TransactionCashback           int     `json:"transactionCashback"` | ||||||
|  | 	TransactionPending            int     `json:"transactionPending"` | ||||||
|  | 	TransactionApproved           int     `json:"transactionApproved"` | ||||||
|  | 	TransactionRejected           int     `json:"transactionRejected"` | ||||||
|  | 	CommissionTransactionTotal    float64 `json:"commissionTransactionTotal"` | ||||||
|  | 	CommissionTransactionCashback float64 `json:"commissionTransactionCashback"` | ||||||
|  | 	CommissionTransactionApproved float64 `json:"commissionTransactionApproved"` | ||||||
|  | 	CommissionTransactionPending  float64 `json:"commissionTransactionPending"` | ||||||
|  | 	CommissionTransactionRejected float64 `json:"commissionTransactionRejected"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // PayloadCashflowsBySeller ...
 | ||||||
|  | type PayloadCashflowsBySeller struct { | ||||||
|  | 	SellerID string           `json:"sellerId"` | ||||||
|  | 	List     []CashflowSeller `json:"list"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // CashflowSeller ...
 | ||||||
|  | type CashflowSeller struct { | ||||||
|  | 	Value      float64          `json:"value"` | ||||||
|  | 	Action     string           `json:"action"` | ||||||
|  | 	Category   string           `json:"category"` | ||||||
|  | 	TargetID   string           `json:"targetId"` | ||||||
|  | 	TargetType string           `json:"targetType"` | ||||||
|  | 	Options    *CashFlowOptions `json:"options"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // CashFlowOptions ...
 | ||||||
|  | type CashFlowOptions struct { | ||||||
|  | 	AffiliateTransactionCode string `json:"affiliateTransactionCode,omitempty"` | ||||||
|  | 	AffiliateCampaignID      string `json:"affiliateCampaignId,omitempty"` | ||||||
|  | 	AffiliateCampaignName    string `json:"affiliateCampaignName,omitempty"` | ||||||
|  | } | ||||||
|  | @ -0,0 +1,10 @@ | ||||||
|  | package jssubject | ||||||
|  | 
 | ||||||
|  | var root = "js" | ||||||
|  | 
 | ||||||
|  | // prefixes ...
 | ||||||
|  | var prefixes = struct { | ||||||
|  | 	Selly string | ||||||
|  | }{ | ||||||
|  | 	Selly: "selly", | ||||||
|  | } | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | package jssubject | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // getSellyValue ...
 | ||||||
|  | func getSellyValue(val string) string { | ||||||
|  | 	return fmt.Sprintf("%s.%s.%s", root, prefixes.Selly, val) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Selly ...
 | ||||||
|  | var Selly = struct { | ||||||
|  | 	PushNotification               string | ||||||
|  | 	UpdateSellerAffiliateStatistic string | ||||||
|  | 	CheckAnDInsertCashflowBySeller string | ||||||
|  | }{ | ||||||
|  | 	PushNotification:               getSellyValue("push_notifications"), | ||||||
|  | 	UpdateSellerAffiliateStatistic: getSellyValue("update_seller_affiliate_statistic"), | ||||||
|  | 	CheckAnDInsertCashflowBySeller: getSellyValue("check_and_insert_cashflow_statistic"), | ||||||
|  | } | ||||||
|  | @ -1,23 +1,64 @@ | ||||||
| package model | package model | ||||||
| 
 | 
 | ||||||
| // LocationRequestPayload ...
 | // LocationRequestPayload ...
 | ||||||
| type LocationRequestPayload struct { | type ( | ||||||
| 	Province int `json:"province"` | 	LocationRequestPayload struct { | ||||||
| 	District int `json:"district"` | 		Province int `json:"province"` | ||||||
| 	Ward     int `json:"ward"` | 		District int `json:"district"` | ||||||
| } | 		Ward     int `json:"ward"` | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| // ProvinceRequestPayload ...
 | 	// ProvinceRequestPayload ...
 | ||||||
| type ProvinceRequestPayload struct { | 	ProvinceRequestPayload struct { | ||||||
| 	Codes []int `json:"codes"` | 		Codes []int `json:"codes"` | ||||||
| } | 	} | ||||||
| 
 | 
 | ||||||
| // DistrictRequestPayload ...
 | 	// ProvinceRequestCondition ...
 | ||||||
| type DistrictRequestPayload struct { | 	ProvinceRequestCondition struct { | ||||||
| 	Codes []int `json:"codes"` | 		Code    int      `json:"code"` | ||||||
| } | 		Codes   []int    `json:"codes"` | ||||||
|  | 		Slug    string   `json:"slug"` | ||||||
|  | 		Slugs   []string `json:"slugs"` | ||||||
|  | 		Keyword string   `json:"keyword"` | ||||||
|  | 		Region  string   `json:"region"` | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| // WardRequestPayload ...
 | 	// DistrictRequestPayload ...
 | ||||||
| type WardRequestPayload struct { | 	DistrictRequestPayload struct { | ||||||
| 	Codes []int `json:"codes"` | 		Codes []int `json:"codes"` | ||||||
| } | 	} | ||||||
|  | 
 | ||||||
|  | 	// DistrictRequestCondition ...
 | ||||||
|  | 	DistrictRequestCondition struct { | ||||||
|  | 		Code         int    `json:"code"` | ||||||
|  | 		Codes        []int  `json:"codes"` | ||||||
|  | 		ProvinceCode int    `json:"provinceCode"` | ||||||
|  | 		Slug         string `json:"slug"` | ||||||
|  | 		ProvinceSlug string `json:"provinceSlug"` | ||||||
|  | 		Keyword      string `json:"keyword"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// WardRequestPayload ...
 | ||||||
|  | 	WardRequestPayload struct { | ||||||
|  | 		Codes []int `json:"codes"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// WardRequestCondition ...
 | ||||||
|  | 	WardRequestCondition struct { | ||||||
|  | 		Code         int    `json:"code"` | ||||||
|  | 		Codes        []int  `json:"codes"` | ||||||
|  | 		DistrictCode int    `json:"districtCode"` | ||||||
|  | 		ProvinceCode int    `json:"provinceCode"` | ||||||
|  | 		Slug         string `json:"slug"` | ||||||
|  | 		DistrictSlug string `json:"districtSlug"` | ||||||
|  | 		ProvinceSlug string `json:"provinceSlug"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// ProvinceDistinctWithField ...
 | ||||||
|  | 	ProvinceDistinctWithField struct { | ||||||
|  | 		Conditions struct { | ||||||
|  | 			Region string `json:"region"` | ||||||
|  | 		} `json:"conditions"` | ||||||
|  | 		Field string `json:"filed"` | ||||||
|  | 	} | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | @ -1,43 +1,96 @@ | ||||||
| package model | package model | ||||||
| 
 | 
 | ||||||
| type ResponseLocationAddress struct { | import "time" | ||||||
| 	Province LocationProvince `json:"province"` |  | ||||||
| 	District LocationDistrict `json:"district"` |  | ||||||
| 	Ward     LocationWard     `json:"ward"` |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| // LocationProvince ...
 | type ( | ||||||
| type LocationProvince struct { | 	// ResponseLocationAddress ...
 | ||||||
| 	ID   string `json:"id"` | 	ResponseLocationAddress struct { | ||||||
| 	Name string `json:"name"` | 		Province LocationProvince `json:"province"` | ||||||
| 	Code int    `json:"code"` | 		District LocationDistrict `json:"district"` | ||||||
| } | 		Ward     LocationWard     `json:"ward"` | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| // LocationDistrict ...
 | 	// LocationProvince ...
 | ||||||
| type LocationDistrict struct { | 	LocationProvince struct { | ||||||
| 	ID   string `json:"id"` | 		ID             string `json:"id"` | ||||||
| 	Name string `json:"name"` | 		Name           string `json:"name"` | ||||||
| 	Code int    `json:"code"` | 		Code           int    `json:"code"` | ||||||
| } | 		RegionCode     string `json:"regionCode"` | ||||||
|  | 		MainRegionCode string `json:"mainRegionCode"` | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| // LocationWard ...
 | 	// LocationDistrict ...
 | ||||||
| type LocationWard struct { | 	LocationDistrict struct { | ||||||
| 	ID   string `json:"id"` | 		ID   string `json:"id"` | ||||||
| 	Name string `json:"name"` | 		Name string `json:"name"` | ||||||
| 	Code int    `json:"code"` | 		Code int    `json:"code"` | ||||||
| } | 	} | ||||||
| 
 | 
 | ||||||
| // LocationProvinceResponse ...
 | 	// LocationWard ...
 | ||||||
| type LocationProvinceResponse struct { | 	LocationWard struct { | ||||||
| 	Provinces []LocationProvince `json:"provinces"` | 		ID   string `json:"id"` | ||||||
| } | 		Name string `json:"name"` | ||||||
|  | 		Code int    `json:"code"` | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| // LocationDistrictResponse ...
 | 	// LocationProvinceResponse ...
 | ||||||
| type LocationDistrictResponse struct { | 	LocationProvinceResponse struct { | ||||||
| 	Districts []LocationDistrict `json:"districts"` | 		Provinces []LocationProvince `json:"provinces"` | ||||||
| } | 	} | ||||||
| 
 | 
 | ||||||
| // LocationWardResponse ...
 | 	// LocationDistrictResponse ...
 | ||||||
| type LocationWardResponse struct { | 	LocationDistrictResponse struct { | ||||||
| 	Wards []LocationWard `json:"wards"` | 		Districts []LocationDistrict `json:"districts"` | ||||||
| } | 	} | ||||||
|  | 
 | ||||||
|  | 	// LocationWardResponse ...
 | ||||||
|  | 	LocationWardResponse struct { | ||||||
|  | 		Wards []LocationWard `json:"wards"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// LocationProvinceDetailResponse ...
 | ||||||
|  | 	LocationProvinceDetailResponse struct { | ||||||
|  | 		ID             string    `json:"_id"` | ||||||
|  | 		Name           string    `json:"name"` | ||||||
|  | 		SearchString   string    `json:"searchString"` | ||||||
|  | 		Slug           string    `json:"slug"` | ||||||
|  | 		OldSlug        string    `json:"oldSlug"` | ||||||
|  | 		Code           int       `json:"code"` | ||||||
|  | 		CountryCode    string    `json:"countryCode"` | ||||||
|  | 		RegionCode     string    `json:"regionCode"` | ||||||
|  | 		MainRegionCode string    `json:"mainRegionCode"` | ||||||
|  | 		TotalDistricts int       `json:"totalDistricts"` | ||||||
|  | 		TotalWards     int       `json:"totalWards"` | ||||||
|  | 		CreatedAt      time.Time `json:"createdAt"` | ||||||
|  | 		UpdatedAt      time.Time `json:"updatedAt"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// LocationDistrictDetailResponse ...
 | ||||||
|  | 	LocationDistrictDetailResponse struct { | ||||||
|  | 		ID           string    `json:"_id"` | ||||||
|  | 		Name         string    `json:"name"` | ||||||
|  | 		SearchString string    `json:"searchString"` | ||||||
|  | 		Slug         string    `json:"slug"` | ||||||
|  | 		OldSlug      string    `json:"oldSlug"` | ||||||
|  | 		Code         int       `json:"code"` | ||||||
|  | 		ProvinceCode int       `json:"provinceCode"` | ||||||
|  | 		Area         int       `json:"area"` | ||||||
|  | 		TotalWards   int       `json:"totalWards"` | ||||||
|  | 		CreatedAt    time.Time `json:"createdAt"` | ||||||
|  | 		UpdatedAt    time.Time `json:"updatedAt"` | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	// LocationWardDetailResponse ...
 | ||||||
|  | 	LocationWardDetailResponse struct { | ||||||
|  | 		ID           string    `json:"_id"` | ||||||
|  | 		Name         string    `json:"name"` | ||||||
|  | 		SearchString string    `json:"searchString"` | ||||||
|  | 		Slug         string    `json:"slug"` | ||||||
|  | 		OldSlugs     []string  `json:"oldSlugs"` | ||||||
|  | 		Code         int       `json:"code"` | ||||||
|  | 		DistrictCode int       `json:"districtCode"` | ||||||
|  | 		ProvinceCode int       `json:"provinceCode"` | ||||||
|  | 		CreatedAt    time.Time `json:"createdAt"` | ||||||
|  | 		UpdatedAt    time.Time `json:"updatedAt"` | ||||||
|  | 	} | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,6 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | // GetProductNoticesByInventoryRequest ....
 | ||||||
|  | type GetProductNoticesByInventoryRequest struct { | ||||||
|  | 	InventoryIds []string `json:"inventoryIds"` | ||||||
|  | } | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | // GetProductNoticesByInventoryResponse ....
 | ||||||
|  | type GetProductNoticesByInventoryResponse struct { | ||||||
|  | 	Notices []NewsAppResponse `json:"notices"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NewsAppResponse ...
 | ||||||
|  | type NewsAppResponse struct { | ||||||
|  | 	ID           string        `json:"_id"` | ||||||
|  | 	Title        string        `json:"title,omitempty"` | ||||||
|  | 	Target       *TargetNewDoc `json:"target,omitempty"` | ||||||
|  | 	ActionType   *ActionType   `json:"action"` | ||||||
|  | 	ShortDesc    string        `json:"shortDesc,omitempty"` | ||||||
|  | 	Type         string        `json:"type"` | ||||||
|  | 	ShortTitle   string        `json:"shortTitle,omitempty"` | ||||||
|  | 	Color        string        `json:"color"` | ||||||
|  | 	Options      *NewsOptions  `json:"options,omitempty"` | ||||||
|  | 	DisplayStyle string        `json:"displayStyle"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NewsOptions ...
 | ||||||
|  | type NewsOptions struct { | ||||||
|  | 	Category string `json:"category"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // TargetNewDoc ...
 | ||||||
|  | type TargetNewDoc struct { | ||||||
|  | 	Type  string `json:"type,omitempty"` | ||||||
|  | 	Value string `json:"value,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ActionType ...
 | ||||||
|  | type ActionType struct { | ||||||
|  | 	Type  string `json:"type"` | ||||||
|  | 	Value string `json:"value"` | ||||||
|  | 	Text  string `json:"text,omitempty"` | ||||||
|  | } | ||||||
|  | @ -38,3 +38,13 @@ type OrderUpdateLogisticInfoFailed struct { | ||||||
| type OrderORsNotUpdateStatus struct { | type OrderORsNotUpdateStatus struct { | ||||||
| 	ORCodes []string `json:"orCodes"` | 	ORCodes []string `json:"orCodes"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // OrderSupplierQuery ...
 | ||||||
|  | type OrderSupplierQuery struct { | ||||||
|  | 	Limit        int64    `json:"limit"` | ||||||
|  | 	Page         int64    `json:"page"` | ||||||
|  | 	FromDate     string   `json:"fromDate"` | ||||||
|  | 	ToDate       string   `json:"toDate"` | ||||||
|  | 	SupplierID   string   `json:"supplierId"` | ||||||
|  | 	WarehouseIDs []string `json:"warehouseIDs"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,35 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | import "time" | ||||||
|  | 
 | ||||||
|  | // SupplierOrderList ...
 | ||||||
|  | type SupplierOrderList struct { | ||||||
|  | 	List  []SupplierOrder `json:"list"` | ||||||
|  | 	Total int64           `json:"total" example:"100"` | ||||||
|  | 	Limit int64           `json:"limit" example:"20"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SupplierOrder ...
 | ||||||
|  | type SupplierOrder struct { | ||||||
|  | 	ID              string                `json:"_id"` | ||||||
|  | 	Code            string                `json:"code"` | ||||||
|  | 	CreatedAt       time.Time             `json:"createdAt"` | ||||||
|  | 	Status          string                `json:"status"` | ||||||
|  | 	WarehouseStatus string                `json:"warehouseStatus"` | ||||||
|  | 	Items           []SupplierOrderItem   `json:"items"` | ||||||
|  | 	Delivery        SupplierOrderDelivery `json:"delivery"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SupplierOrderItem ...
 | ||||||
|  | type SupplierOrderItem struct { | ||||||
|  | 	ID          string `json:"_id" example:"1231"` | ||||||
|  | 	SupplierSKU string `json:"supplierSku" example:"SUPPLIER_SKU"` | ||||||
|  | 	Quantity    int64  `json:"quantity" example:"2"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SupplierOrderDelivery ...
 | ||||||
|  | type SupplierOrderDelivery struct { | ||||||
|  | 	Code    string `json:"code" example:"123187287"` | ||||||
|  | 	Status  string `json:"status" enums:"waiting_to_confirm,waiting_to_pick,picking,picked,delay_pickup,pickup_failed,delivering,delay_delivery,delivered,cancelled,delivery_failed,waiting_to_return,returning,delay_return,compensation,returned"` | ||||||
|  | 	TPLCode string `json:"tplCode" enums:"SLY,GHTK,GHN,SSC,SPY,VTP,SE,NTL,BEST"` | ||||||
|  | } | ||||||
|  | @ -6,3 +6,13 @@ import "go.mongodb.org/mongo-driver/bson/primitive" | ||||||
| type GetSellerByIDRequest struct { | type GetSellerByIDRequest struct { | ||||||
| 	SellerID primitive.ObjectID `json:"sellerId"` | 	SellerID primitive.ObjectID `json:"sellerId"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetListSellerByIDsRequest ...
 | ||||||
|  | type GetListSellerByIDsRequest struct { | ||||||
|  | 	SellerIDs []primitive.ObjectID `json:"sellerIds"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetListSellerSupportChatByIDsRequest ...
 | ||||||
|  | type GetListSellerSupportChatByIDsRequest struct { | ||||||
|  | 	SellerIDs []primitive.ObjectID `json:"sellerIds"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -1,8 +1,90 @@ | ||||||
| package model | package model | ||||||
| 
 | 
 | ||||||
|  | import "time" | ||||||
|  | 
 | ||||||
| // ResponseSellerInfo ...
 | // ResponseSellerInfo ...
 | ||||||
| type ResponseSellerInfo struct { | type ResponseSellerInfo struct { | ||||||
| 	ID   string `json:"id"` | 	ID   string `json:"_id"` | ||||||
| 	Name string `json:"name"` | 	Name string `json:"name"` | ||||||
| 	Code string `json:"code"` | 	Code string `json:"code"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // ResponseListSellerInfo ...
 | ||||||
|  | type ResponseListSellerInfo struct { | ||||||
|  | 	Sellers []ResponseSellerInfo `json:"sellers"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseListSellerInfoSupportChat ...
 | ||||||
|  | type ResponseListSellerInfoSupportChat struct { | ||||||
|  | 	Sellers []ResponseSellerInfoSupportChat `json:"sellers"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ResponseSellerInfoSupportChat ...
 | ||||||
|  | type ResponseSellerInfoSupportChat struct { | ||||||
|  | 	ID           string                 `json:"_id"` | ||||||
|  | 	Name         string                 `json:"name"` | ||||||
|  | 	Code         string                 `json:"code"` | ||||||
|  | 	Membership   SellerMembershipInfo   `json:"membership"` | ||||||
|  | 	Info         SellerContactInfo      `json:"info"` | ||||||
|  | 	Team         *TeamInfo              `json:"team,omitempty"` | ||||||
|  | 	Statistic    SellerStatistic        `json:"statistic"` | ||||||
|  | 	TrackingTime *SellerTrackingTime    `json:"trackingTime"` | ||||||
|  | 	Invitee      *InviteeInfo           `json:"invitee"` | ||||||
|  | 	CreatedAt    time.Time              `json:"createdAt"` | ||||||
|  | 	PlanPackage  *SellerPlanPackageInfo `json:"planPackage"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerPlanPackageInfo ...
 | ||||||
|  | type SellerPlanPackageInfo struct { | ||||||
|  | 	ID        string    `json:"_id"` | ||||||
|  | 	Name      string    `json:"name"` | ||||||
|  | 	Level     int       `json:"level"` | ||||||
|  | 	CreatedAt time.Time `json:"createdAt"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerTrackingTime ...
 | ||||||
|  | type SellerTrackingTime struct { | ||||||
|  | 	FirstOrderDeliveredAt time.Time `json:"firstOrderDeliveredAt,omitempty"` | ||||||
|  | 	ThirdOrderDeliveredAt time.Time `json:"thirdOrderDeliveredAt,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerStatistic ...
 | ||||||
|  | type SellerStatistic struct { | ||||||
|  | 	ThisMonthSale                float64 `bson:"thisMonthSale" json:"thisMonthSale"` | ||||||
|  | 	LastMonthSale                float64 `bson:"lastMonthSale" json:"lastMonthSale"` | ||||||
|  | 	Sale                         float64 `bson:"sale" json:"sale"` | ||||||
|  | 	TransactionTotal             int     `json:"transactionTotal"` | ||||||
|  | 	TransactionPaymentProcessing int     `json:"transactionPaymentProcessing"` | ||||||
|  | 	TransactionWaitingApprove    int     `json:"transactionWaitingApprove"` | ||||||
|  | 	TransactionPending           int     `json:"transactionPending"` | ||||||
|  | 	TransactionSuccess           int     `json:"transactionSuccess"` | ||||||
|  | 	TransactionRejected          int     `json:"transactionRejected"` | ||||||
|  | 	TransactionDelivering        int     `json:"transactionDelivering"` | ||||||
|  | 	TransactionDelivered         int     `json:"transactionDelivered"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // TeamInfo ...
 | ||||||
|  | type TeamInfo struct { | ||||||
|  | 	ID   string `json:"_id"` | ||||||
|  | 	Name string `json:"name"` | ||||||
|  | 	Role string `json:"role"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // InviteeInfo ...
 | ||||||
|  | type InviteeInfo struct { | ||||||
|  | 	ID   string `json:"_id"` | ||||||
|  | 	Name string `json:"name"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerContactInfo ...
 | ||||||
|  | type SellerContactInfo struct { | ||||||
|  | 	City     int    `json:"cityCode"` | ||||||
|  | 	CityName string `json:"cityName"` | ||||||
|  | 	Gender   string `json:"gender"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerMembershipInfo ...
 | ||||||
|  | type SellerMembershipInfo struct { | ||||||
|  | 	Level int    `json:"level"` | ||||||
|  | 	Name  string `json:"name"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ type OutboundRequestPayload struct { | ||||||
| 
 | 
 | ||||||
| // InsuranceOpts ...
 | // InsuranceOpts ...
 | ||||||
| type InsuranceOpts struct { | type InsuranceOpts struct { | ||||||
|  | 	InsuranceType    string `json:"insuranceType"` | ||||||
| 	VehicleTypeID    string `json:"vehicleTypeId"` | 	VehicleTypeID    string `json:"vehicleTypeId"` | ||||||
| 	VehicleTypeName  string `json:"vehicleTypeName"` | 	VehicleTypeName  string `json:"vehicleTypeName"` | ||||||
| 	InsuranceTypeID  string `json:"insuranceTypeId"` | 	InsuranceTypeID  string `json:"insuranceTypeId"` | ||||||
|  | @ -25,13 +26,21 @@ type InsuranceOpts struct { | ||||||
| 	Chassis          string `json:"chassis"` | 	Chassis          string `json:"chassis"` | ||||||
| 	Engine           string `json:"engine"` | 	Engine           string `json:"engine"` | ||||||
| 	BeginDate        string `json:"beginDate"` | 	BeginDate        string `json:"beginDate"` | ||||||
|  | 
 | ||||||
|  | 	// For car insurance
 | ||||||
|  | 	NumberOfSeatsCarOccupantAccidentInsurance int    `json:"numberOfSeatsCarOccupantAccidentInsurance"` | ||||||
|  | 	NumberOfSeats                             int    `json:"numberOfSeats"` | ||||||
|  | 	NumberOfSeatsOrTonnageId                  string `json:"numberOfSeatsOrTonnageId"` | ||||||
|  | 	NumberOfSeatsOrTonnageName                string `json:"numberOfSeatsOrTonnageName"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // OutboundRequestItem ...
 | // OutboundRequestItem ...
 | ||||||
| type OutboundRequestItem struct { | type OutboundRequestItem struct { | ||||||
| 	SupplierSKU string `json:"supplierSKU"` | 	SupplierSKU string  `json:"supplierSKU"` | ||||||
| 	Quantity    int64  `json:"quantity"` | 	Quantity    int64   `json:"quantity"` | ||||||
| 	UnitCode    string `json:"unitCode"` | 	UnitCode    string  `json:"unitCode"` | ||||||
|  | 	Price       float64 `json:"price"` | ||||||
|  | 	Name        string  `json:"name"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CustomerInfo ...
 | // CustomerInfo ...
 | ||||||
|  | @ -56,6 +65,7 @@ type UpdateOutboundRequestLogisticInfoPayload struct { | ||||||
| 	ShippingLabel string `json:"shippingLabel"` | 	ShippingLabel string `json:"shippingLabel"` | ||||||
| 	TrackingCode  string `json:"trackingCode"` | 	TrackingCode  string `json:"trackingCode"` | ||||||
| 	ORCode        string `json:"orCode"` | 	ORCode        string `json:"orCode"` | ||||||
|  | 	TPLCode       string `json:"tplCode"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CancelOutboundRequest ...
 | // CancelOutboundRequest ...
 | ||||||
|  | @ -80,3 +90,14 @@ type SupplierIsClosed struct { | ||||||
| 	Supplier string `json:"supplier"` | 	Supplier string `json:"supplier"` | ||||||
| 	IsClosed bool   `json:"isClosed"` | 	IsClosed bool   `json:"isClosed"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // GetWarehousesRequest ...
 | ||||||
|  | type GetWarehousesRequest struct { | ||||||
|  | 	Keyword      string `json:"keyword"` | ||||||
|  | 	Status       string `json:"status"` | ||||||
|  | 	Supplier     string `json:"supplier"` | ||||||
|  | 	BusinessType string `json:"businessType"` | ||||||
|  | 
 | ||||||
|  | 	Page  int64 `json:"page"` | ||||||
|  | 	Limit int64 `json:"limit"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -135,3 +135,30 @@ type WarehouseNatsResponse struct { | ||||||
| 	CreatedAt      time.Time                 `json:"createdAt"` | 	CreatedAt      time.Time                 `json:"createdAt"` | ||||||
| 	UpdatedAt      time.Time                 `json:"updatedAt"` | 	UpdatedAt      time.Time                 `json:"updatedAt"` | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | // WarehouseInfo ...
 | ||||||
|  | type WarehouseInfo struct { | ||||||
|  | 	ID           string                    `json:"_id"` | ||||||
|  | 	Name         string                    `json:"name"` | ||||||
|  | 	BusinessType string                    `json:"businessType"` | ||||||
|  | 	Status       string                    `json:"status"` | ||||||
|  | 	Slug         string                    `json:"slug"` | ||||||
|  | 	Supplier     WarehouseSupplierInfo     `json:"supplier"` | ||||||
|  | 	Location     ResponseWarehouseLocation `json:"location"` | ||||||
|  | 	Contact      ResponseWarehouseContact  `json:"contact"` | ||||||
|  | 	CreatedAt    string                    `json:"createdAt"` | ||||||
|  | 	UpdatedAt    string                    `json:"updatedAt"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // WarehouseSupplierInfo ...
 | ||||||
|  | type WarehouseSupplierInfo struct { | ||||||
|  | 	ID   string `json:"_id"` | ||||||
|  | 	Name string `json:"name"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetWarehousesResponse ...
 | ||||||
|  | type GetWarehousesResponse struct { | ||||||
|  | 	Total int64           `json:"total"` | ||||||
|  | 	Limit int64           `json:"limit"` | ||||||
|  | 	List  []WarehouseInfo `json:"list"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ package subject | ||||||
| var prefixes = struct { | var prefixes = struct { | ||||||
| 	Communication string | 	Communication string | ||||||
| 	Order         string | 	Order         string | ||||||
|  | 	News          string | ||||||
| 	Warehouse     string | 	Warehouse     string | ||||||
| 	Location      string | 	Location      string | ||||||
| 	Bank          string | 	Bank          string | ||||||
|  | @ -11,6 +12,7 @@ var prefixes = struct { | ||||||
| }{ | }{ | ||||||
| 	Communication: "communication", | 	Communication: "communication", | ||||||
| 	Order:         "order", | 	Order:         "order", | ||||||
|  | 	News:          "news", | ||||||
| 	Warehouse:     "warehouse", | 	Warehouse:     "warehouse", | ||||||
| 	Location:      "location", | 	Location:      "location", | ||||||
| 	Supplier:      "supplier", | 	Supplier:      "supplier", | ||||||
|  |  | ||||||
|  | @ -7,13 +7,33 @@ func getLocationValue(val string) string { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var Location = struct { | var Location = struct { | ||||||
| 	GetLocationByCode   string | 	GetLocationByCode         string | ||||||
| 	GetProvincesByCodes string | 	GetProvincesByCodes       string | ||||||
| 	GetDistrictsByCodes string | 	GetDistrictsByCodes       string | ||||||
| 	GetWardsByCodes     string | 	GetWardsByCodes           string | ||||||
|  | 	GetProvinceByCondition    string | ||||||
|  | 	GetProvincesByCondition   string | ||||||
|  | 	GetDistrictByCondition    string | ||||||
|  | 	GetDistrictsByCondition   string | ||||||
|  | 	GetWardByCondition        string | ||||||
|  | 	GetWardsByCondition       string | ||||||
|  | 	CountProvinceByCondition  string | ||||||
|  | 	CountDistrictByCondition  string | ||||||
|  | 	CountWardByCondition      string | ||||||
|  | 	ProvinceDistinctWithField string | ||||||
| }{ | }{ | ||||||
| 	GetLocationByCode:   getLocationValue("get_location_warehouse"), | 	GetLocationByCode:         getLocationValue("get_location_warehouse"), | ||||||
| 	GetProvincesByCodes: getLocationValue("get_provinces_by_codes"), | 	GetProvincesByCodes:       getLocationValue("get_provinces_by_codes"), | ||||||
| 	GetDistrictsByCodes: getLocationValue("get_districts_by_codes"), | 	GetDistrictsByCodes:       getLocationValue("get_districts_by_codes"), | ||||||
| 	GetWardsByCodes:     getLocationValue("get_wards_by_codes"), | 	GetWardsByCodes:           getLocationValue("get_wards_by_codes"), | ||||||
|  | 	GetProvinceByCondition:    getLocationValue("get_province_by_condition"), | ||||||
|  | 	GetProvincesByCondition:   getLocationValue("get_provinces_by_condition"), | ||||||
|  | 	GetDistrictByCondition:    getLocationValue("get_district_by_condition"), | ||||||
|  | 	GetDistrictsByCondition:   getLocationValue("get_districts_byCondition"), | ||||||
|  | 	GetWardByCondition:        getLocationValue("get_ward_by_condition"), | ||||||
|  | 	GetWardsByCondition:       getLocationValue("get_wards_by_condition"), | ||||||
|  | 	CountProvinceByCondition:  getLocationValue("count_province_by_condition"), | ||||||
|  | 	CountDistrictByCondition:  getLocationValue("count_district_by_condition"), | ||||||
|  | 	CountWardByCondition:      getLocationValue("count_ward_by_condition"), | ||||||
|  | 	ProvinceDistinctWithField: getLocationValue("province_distinct_with_field"), | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | package subject | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | func getNewsValue(val string) string { | ||||||
|  | 	return fmt.Sprintf("%s.%s", prefixes.News, val) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var News = struct { | ||||||
|  | 	GetProductNoticesByInventory string | ||||||
|  | }{ | ||||||
|  | 	GetProductNoticesByInventory: getNewsValue("get_product_notices_by_inventory"), | ||||||
|  | } | ||||||
|  | @ -12,10 +12,12 @@ var Order = struct { | ||||||
| 	ChangeDeliveryStatus     string | 	ChangeDeliveryStatus     string | ||||||
| 	UpdateLogisticInfoFailed string | 	UpdateLogisticInfoFailed string | ||||||
| 	ORNotUpdateStatus        string | 	ORNotUpdateStatus        string | ||||||
|  | 	GetSupplierOrders        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"), | 	ChangeDeliveryStatus:     getOrderValue("change_delivery_status"), | ||||||
| 	UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"), | 	UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"), | ||||||
| 	ORNotUpdateStatus:        getOrderValue("outbound_request_not_update_status"), | 	ORNotUpdateStatus:        getOrderValue("outbound_request_not_update_status"), | ||||||
|  | 	GetSupplierOrders:        getOrderValue("get_supplier_orders"), | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -8,7 +8,16 @@ func getSellerValue(val string) string { | ||||||
| 
 | 
 | ||||||
| // Seller ...
 | // Seller ...
 | ||||||
| var Seller = struct { | var Seller = struct { | ||||||
| 	GetSellerInfoByID string | 	GetSellerInfoByID      string | ||||||
|  | 	GetListSellerInfoByIDs string | ||||||
| }{ | }{ | ||||||
| 	GetSellerInfoByID: getSellerValue("get_seller_info_by_id"), | 	GetSellerInfoByID:      getSellerValue("get_seller_info_by_id"), | ||||||
|  | 	GetListSellerInfoByIDs: getSellerValue("get_list_seller_info_by_ids"), | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SupportChat ...
 | ||||||
|  | var SupportChat = struct { | ||||||
|  | 	GetListSellerInfoSupportChatByIDs string | ||||||
|  | }{ | ||||||
|  | 	GetListSellerInfoSupportChatByIDs: "SELLY_CHAT.REQUEST.SELLER_INFO", | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ var Warehouse = struct { | ||||||
| 	SyncORStatus                  string | 	SyncORStatus                  string | ||||||
| 	WebhookTNC                    string | 	WebhookTNC                    string | ||||||
| 	WebhookGlobalCare             string | 	WebhookGlobalCare             string | ||||||
|  | 	WebhookOnPoint                string | ||||||
| 	FindOne                       string | 	FindOne                       string | ||||||
| 	FindByCondition               string | 	FindByCondition               string | ||||||
| 	Distinct                      string | 	Distinct                      string | ||||||
|  | @ -23,6 +24,7 @@ var Warehouse = struct { | ||||||
| 	UpdateIsClosedSupplier        string | 	UpdateIsClosedSupplier        string | ||||||
| 	CreateWarehouseIntoServiceSupplier string | 	CreateWarehouseIntoServiceSupplier string | ||||||
| 	UpdateWarehouseIntoServiceSupplier string | 	UpdateWarehouseIntoServiceSupplier string | ||||||
|  | 	GetWarehouses                 string | ||||||
| }{ | }{ | ||||||
| 	AfterCreateWarehouse:          getWarehouseValue("after_create_warehouse"), | 	AfterCreateWarehouse:          getWarehouseValue("after_create_warehouse"), | ||||||
| 	AfterUpdateWarehouse:          getWarehouseValue("after_update_warehouse"), | 	AfterUpdateWarehouse:          getWarehouseValue("after_update_warehouse"), | ||||||
|  | @ -33,6 +35,7 @@ var Warehouse = struct { | ||||||
| 	SyncORStatus:                  getWarehouseValue("sync_or_status"), | 	SyncORStatus:                  getWarehouseValue("sync_or_status"), | ||||||
| 	WebhookTNC:                    getWarehouseValue("webhook_tnc"), | 	WebhookTNC:                    getWarehouseValue("webhook_tnc"), | ||||||
| 	WebhookGlobalCare:             getWarehouseValue("webhook_global_care"), | 	WebhookGlobalCare:             getWarehouseValue("webhook_global_care"), | ||||||
|  | 	WebhookOnPoint:                getWarehouseValue("webhook_on_point"), | ||||||
| 	FindOne:                       getWarehouseValue("find_one"), | 	FindOne:                       getWarehouseValue("find_one"), | ||||||
| 	FindByCondition:               getWarehouseValue("find_all_by_condition"), | 	FindByCondition:               getWarehouseValue("find_all_by_condition"), | ||||||
| 	Distinct:                      getWarehouseValue("distinct"), | 	Distinct:                      getWarehouseValue("distinct"), | ||||||
|  | @ -40,4 +43,5 @@ var Warehouse = struct { | ||||||
| 	UpdateIsClosedSupplier:        getWarehouseValue("update_is_closed_supplier"), | 	UpdateIsClosedSupplier:        getWarehouseValue("update_is_closed_supplier"), | ||||||
| 	CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), | 	CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), | ||||||
| 	UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), | 	UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), | ||||||
|  | 	GetWarehouses:                 getWarehouseValue("get_warehouses"), | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue