Merge branch 'master' of github.com:Selly-Modules/natsio into integrate-onpoint
This commit is contained in:
		
						commit
						baf8a98e35
					
				| 
						 | 
					@ -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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,88 @@
 | 
				
			||||||
 | 
					package client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/model"
 | 
				
			||||||
 | 
						"github.com/Selly-Modules/natsio/subject"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Seller ...
 | 
				
			||||||
 | 
					type Seller struct{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetSeller ...
 | 
				
			||||||
 | 
					func GetSeller() Seller {
 | 
				
			||||||
 | 
						return Seller{}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetSellerInfoByID ...
 | 
				
			||||||
 | 
					func (s Seller) GetSellerInfoByID(p model.GetSellerByIDRequest) (*model.ResponseSellerInfo, error) {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Seller.GetSellerInfoByID, toBytes(p))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var r struct {
 | 
				
			||||||
 | 
							Data  *model.ResponseSellerInfo `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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,24 @@ func GetWarehouse() Warehouse {
 | 
				
			||||||
	return Warehouse{}
 | 
						return Warehouse{}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// UpdateIsClosedSupplier ...
 | 
				
			||||||
 | 
					func (w Warehouse) UpdateIsClosedSupplier(p model.UpdateSupplierIsClosedRequest) error {
 | 
				
			||||||
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateIsClosedSupplier, 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
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// AfterCreateWarehouse ...
 | 
					// AfterCreateWarehouse ...
 | 
				
			||||||
func (w Warehouse) AfterCreateWarehouse(p model.WarehouseNatsResponse) error {
 | 
					func (w Warehouse) AfterCreateWarehouse(p model.WarehouseNatsResponse) error {
 | 
				
			||||||
	msg, err := natsio.GetServer().Request(subject.Warehouse.AfterCreateWarehouse, toBytes(p))
 | 
						msg, err := natsio.GetServer().Request(subject.Warehouse.AfterCreateWarehouse, toBytes(p))
 | 
				
			||||||
| 
						 | 
					@ -126,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"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -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"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "go.mongodb.org/mongo-driver/bson/primitive"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetSellerByIDRequest ...
 | 
				
			||||||
 | 
					type GetSellerByIDRequest struct {
 | 
				
			||||||
 | 
						SellerID primitive.ObjectID `json:"sellerId"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetListSellerByIDsRequest ...
 | 
				
			||||||
 | 
					type GetListSellerByIDsRequest struct {
 | 
				
			||||||
 | 
						SellerIDs []primitive.ObjectID `json:"sellerIds"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// GetListSellerSupportChatByIDsRequest ...
 | 
				
			||||||
 | 
					type GetListSellerSupportChatByIDsRequest struct {
 | 
				
			||||||
 | 
						SellerIDs []primitive.ObjectID `json:"sellerIds"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ResponseSellerInfo ...
 | 
				
			||||||
 | 
					type ResponseSellerInfo struct {
 | 
				
			||||||
 | 
						ID   string `json:"_id"`
 | 
				
			||||||
 | 
						Name string `json:"name"`
 | 
				
			||||||
 | 
						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"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 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"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,8 +2,9 @@ package model
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ResponseSupplierInfo ...
 | 
					// ResponseSupplierInfo ...
 | 
				
			||||||
type ResponseSupplierInfo struct {
 | 
					type ResponseSupplierInfo struct {
 | 
				
			||||||
	ID   string `json:"id"`
 | 
						ID           string `json:"id"`
 | 
				
			||||||
	Name string `json:"name"`
 | 
						Name         string `json:"name"`
 | 
				
			||||||
 | 
						BusinessType string `json:"businessType"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ResponseSupplierContract ...
 | 
					// ResponseSupplierContract ...
 | 
				
			||||||
| 
						 | 
					@ -16,11 +17,12 @@ type ResponseSupplierContract struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SupplierBrief ...
 | 
					// SupplierBrief ...
 | 
				
			||||||
type SupplierBrief struct {
 | 
					type SupplierBrief struct {
 | 
				
			||||||
	ID        string `json:"_id"`
 | 
						ID           string `json:"_id"`
 | 
				
			||||||
	Name      string `json:"name"`
 | 
						Name         string `json:"name"`
 | 
				
			||||||
	Status    string `json:"status"`
 | 
						Status       string `json:"status"`
 | 
				
			||||||
	CreatedAt string `json:"createdAt"`
 | 
						BusinessType string `json:"businessType"`
 | 
				
			||||||
	UpdatedAt string `json:"updatedAt"`
 | 
						CreatedAt    string `json:"createdAt"`
 | 
				
			||||||
 | 
						UpdatedAt    string `json:"updatedAt"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type SupplierAll struct {
 | 
					type SupplierAll struct {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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,6 +26,12 @@ 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 ...
 | 
				
			||||||
| 
						 | 
					@ -72,3 +79,25 @@ type SyncORStatusRequest struct {
 | 
				
			||||||
	ORCode    string `json:"orCode"`
 | 
						ORCode    string `json:"orCode"`
 | 
				
			||||||
	OrderCode string `json:"orderCode"`
 | 
						OrderCode string `json:"orderCode"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// UpdateSupplierIsClosedRequest ...
 | 
				
			||||||
 | 
					type UpdateSupplierIsClosedRequest struct {
 | 
				
			||||||
 | 
						Suppliers []SupplierIsClosed `json:"suppliers"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SupplierIsClosed ...
 | 
				
			||||||
 | 
					type SupplierIsClosed struct {
 | 
				
			||||||
 | 
						Supplier string `json:"supplier"`
 | 
				
			||||||
 | 
						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"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,20 @@ type WarehouseConfiguration struct {
 | 
				
			||||||
	Partner                 WarehousePartner  `json:"partner"`
 | 
						Partner                 WarehousePartner  `json:"partner"`
 | 
				
			||||||
	Delivery                WarehouseDelivery `json:"delivery"`
 | 
						Delivery                WarehouseDelivery `json:"delivery"`
 | 
				
			||||||
	Other                   WarehouseOther    `json:"other"`
 | 
						Other                   WarehouseOther    `json:"other"`
 | 
				
			||||||
 | 
						Food                    WarehouseFood     `json:"food"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WarehouseFood ...
 | 
				
			||||||
 | 
					type WarehouseFood struct {
 | 
				
			||||||
 | 
						ForceClosed bool        `json:"forceClosed"`
 | 
				
			||||||
 | 
						IsClosed    bool        `json:"isClosed"`
 | 
				
			||||||
 | 
						TimeRange   []TimeRange `json:"timeRange"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// TimeRange ...
 | 
				
			||||||
 | 
					type TimeRange struct {
 | 
				
			||||||
 | 
						From int64 `json:"from"`
 | 
				
			||||||
 | 
						To   int64 `json:"to"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WarehouseOther ...
 | 
					// WarehouseOther ...
 | 
				
			||||||
| 
						 | 
					@ -109,6 +123,7 @@ type ResponseLatLng struct {
 | 
				
			||||||
type WarehouseNatsResponse struct {
 | 
					type WarehouseNatsResponse struct {
 | 
				
			||||||
	ID             string                    `json:"_id"`
 | 
						ID             string                    `json:"_id"`
 | 
				
			||||||
	Staff          string                    `json:"staff"`
 | 
						Staff          string                    `json:"staff"`
 | 
				
			||||||
 | 
						BusinessType   string                    `json:"businessType"`
 | 
				
			||||||
	Name           string                    `json:"name"`
 | 
						Name           string                    `json:"name"`
 | 
				
			||||||
	SearchString   string                    `json:"searchString"`
 | 
						SearchString   string                    `json:"searchString"`
 | 
				
			||||||
	Slug           string                    `json:"slug"`
 | 
						Slug           string                    `json:"slug"`
 | 
				
			||||||
| 
						 | 
					@ -120,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,13 +3,17 @@ 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
 | 
				
			||||||
	Supplier      string
 | 
						Supplier      string
 | 
				
			||||||
 | 
						Seller        string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	Communication: "communication",
 | 
						Communication: "communication",
 | 
				
			||||||
	Order:         "order",
 | 
						Order:         "order",
 | 
				
			||||||
 | 
						News:          "news",
 | 
				
			||||||
	Warehouse:     "warehouse",
 | 
						Warehouse:     "warehouse",
 | 
				
			||||||
	Location:      "location",
 | 
						Location:      "location",
 | 
				
			||||||
	Supplier:      "supplier",
 | 
						Supplier:      "supplier",
 | 
				
			||||||
 | 
						Seller:        "seller",
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					package subject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getSellerValue(val string) string {
 | 
				
			||||||
 | 
						return fmt.Sprintf("%s.%s", prefixes.Seller, val)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Seller ...
 | 
				
			||||||
 | 
					var Seller = struct {
 | 
				
			||||||
 | 
						GetSellerInfoByID      string
 | 
				
			||||||
 | 
						GetListSellerInfoByIDs string
 | 
				
			||||||
 | 
					}{
 | 
				
			||||||
 | 
						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",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,8 @@ var Warehouse = struct {
 | 
				
			||||||
	Count                         string
 | 
						Count                         string
 | 
				
			||||||
	AfterUpdateWarehouse          string
 | 
						AfterUpdateWarehouse          string
 | 
				
			||||||
	AfterCreateWarehouse          string
 | 
						AfterCreateWarehouse          string
 | 
				
			||||||
 | 
						UpdateIsClosedSupplier        string
 | 
				
			||||||
 | 
						GetWarehouses                 string
 | 
				
			||||||
}{
 | 
					}{
 | 
				
			||||||
	AfterCreateWarehouse:          getWarehouseValue("after_create_warehouse"),
 | 
						AfterCreateWarehouse:          getWarehouseValue("after_create_warehouse"),
 | 
				
			||||||
	AfterUpdateWarehouse:          getWarehouseValue("after_update_warehouse"),
 | 
						AfterUpdateWarehouse:          getWarehouseValue("after_update_warehouse"),
 | 
				
			||||||
| 
						 | 
					@ -36,4 +38,6 @@ var Warehouse = struct {
 | 
				
			||||||
	FindByCondition:               getWarehouseValue("find_all_by_condition"),
 | 
						FindByCondition:               getWarehouseValue("find_all_by_condition"),
 | 
				
			||||||
	Distinct:                      getWarehouseValue("distinct"),
 | 
						Distinct:                      getWarehouseValue("distinct"),
 | 
				
			||||||
	Count:                         getWarehouseValue("count"),
 | 
						Count:                         getWarehouseValue("count"),
 | 
				
			||||||
 | 
						UpdateIsClosedSupplier:        getWarehouseValue("update_is_closed_supplier"),
 | 
				
			||||||
 | 
						GetWarehouses:                 getWarehouseValue("get_warehouses"),
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue