saving campaign #153
			
				
			
		
		
		
	|  | @ -0,0 +1,21 @@ | ||||||
|  | package client | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"git.selly.red/Selly-Modules/natsio" | ||||||
|  | 	"git.selly.red/Selly-Modules/natsio/model" | ||||||
|  | 	"git.selly.red/Selly-Modules/natsio/subject" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // Socket ...
 | ||||||
|  | type Socket struct{} | ||||||
|  | 
 | ||||||
|  | // GetSocket ...
 | ||||||
|  | func GetSocket() Socket { | ||||||
|  | 	return Socket{} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // EmitSocketEventDataReward ...
 | ||||||
|  | func (s Socket) EmitSocketEventDataReward(p model.PayloadEmitSocketEvent) error { | ||||||
|  | 	_, err := natsio.GetServer().Request(subject.Socket.EmitEventReward, toBytes(p)) | ||||||
|  | 	return err | ||||||
|  | } | ||||||
|  | @ -6,9 +6,13 @@ var Selly = struct { | ||||||
| 	UpdateSellerAffiliateStatistic      string | 	UpdateSellerAffiliateStatistic      string | ||||||
| 	CheckAnDInsertCashflowBySeller      string | 	CheckAnDInsertCashflowBySeller      string | ||||||
| 	SubscriberTopic                     string | 	SubscriberTopic                     string | ||||||
|  | 	UpdateSellerSavingCampaignStatistic string | ||||||
|  | 	GenerateVoucherPromotion            string | ||||||
| }{ | }{ | ||||||
| 	PushNotification:                    "PULL_PUSH_NOTIFICATION", | 	PushNotification:                    "PULL_PUSH_NOTIFICATION", | ||||||
| 	UpdateSellerAffiliateStatistic:      "PULL_UPDATE_SELLER_AFFILIATE_STATISTIC", | 	UpdateSellerAffiliateStatistic:      "PULL_UPDATE_SELLER_AFFILIATE_STATISTIC", | ||||||
| 	CheckAnDInsertCashflowBySeller:      "PULL_CHECK_AND_INSERT_CASHFLOW_BY_SELLER", | 	CheckAnDInsertCashflowBySeller:      "PULL_CHECK_AND_INSERT_CASHFLOW_BY_SELLER", | ||||||
| 	SubscriberTopic:                     "PULL_SUBSCRIBER_TOPIC", | 	SubscriberTopic:                     "PULL_SUBSCRIBER_TOPIC", | ||||||
|  | 	UpdateSellerSavingCampaignStatistic: "PULL_UPDATE_SELLER_SAVING_CAMPAIGN_STATISTIC", | ||||||
|  | 	GenerateVoucherPromotion:            "PULL_GENERATE_VOUCHER_PROMOTION", | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,5 +1,7 @@ | ||||||
| package jsmodel | package jsmodel | ||||||
| 
 | 
 | ||||||
|  | import "go.mongodb.org/mongo-driver/bson/primitive" | ||||||
|  | 
 | ||||||
| // PushNotification ...
 | // PushNotification ...
 | ||||||
| type PushNotification struct { | type PushNotification struct { | ||||||
| 	User        string              `json:"user"` | 	User        string              `json:"user"` | ||||||
|  | @ -15,6 +17,8 @@ type NotificationOptions struct { | ||||||
| 	Title                      string `json:"title"` | 	Title                      string `json:"title"` | ||||||
| 	Content                    string `json:"content"` | 	Content                    string `json:"content"` | ||||||
| 	CampaignID                 string `json:"campaignId,omitempty"` | 	CampaignID                 string `json:"campaignId,omitempty"` | ||||||
|  | 	SellerSavingCampaignID     string `json:"sellerSavingCampaignId,omitempty"` | ||||||
|  | 	SellerSavingCampaignStatus string `json:"sellerSavingCampaignStatus,omitempty"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PayloadUpdateSellerAffiliateStatistic ...
 | // PayloadUpdateSellerAffiliateStatistic ...
 | ||||||
|  | @ -62,6 +66,39 @@ type CashFlowOptions struct { | ||||||
| 	// Campaign
 | 	// Campaign
 | ||||||
| 	CampaignID   string `json:"campaignId,omitempty"` | 	CampaignID   string `json:"campaignId,omitempty"` | ||||||
| 	CampaignName string `json:"campaignName,omitempty"` | 	CampaignName string `json:"campaignName,omitempty"` | ||||||
|  | 
 | ||||||
|  | 	// SavingCampaign
 | ||||||
|  | 	SavingCampaignID   string `json:"savingCampaignId,omitempty"` | ||||||
|  | 	SavingCampaignName string `json:"savingCampaignName,omitempty"` | ||||||
|  | 
 | ||||||
|  | 	SavingCampaignItemID   string `json:"savingCampaignItemId,omitempty"` | ||||||
|  | 	SavingCampaignItemName string `json:"savingCampaignItemName,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // PayloadUpdateSellerSavingCampaignStatistic ...
 | ||||||
|  | type PayloadUpdateSellerSavingCampaignStatistic struct { | ||||||
|  | 	SellerID  string                        `json:"sellerId"` | ||||||
|  | 	Statistic SellerSavingCampaignStatistic `json:"statistic"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // SellerSavingCampaignStatistic ...
 | ||||||
|  | type SellerSavingCampaignStatistic struct { | ||||||
|  | 	SavingCampaignCashPending   float64 `json:"savingCampaignCashPending"` | ||||||
|  | 	SavingCampaignCashCompleted float64 `json:"savingCampaignCashCompleted"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GenerateVoucherPromotion ...
 | ||||||
|  | type GenerateVoucherPromotion struct { | ||||||
|  | 	Cash       float64                         `json:"cash"` | ||||||
|  | 	TargetID   primitive.ObjectID              `json:"targetId"` | ||||||
|  | 	TargetType string                          `json:"targetType"` | ||||||
|  | 	Options    GenerateVoucherPromotionOptions `json:"options"` | ||||||
|  | 	Seller     primitive.ObjectID              `json:"seller"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GenerateVoucherPromotionOptions ...
 | ||||||
|  | type GenerateVoucherPromotionOptions struct { | ||||||
|  | 	Title string `json:"title"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // SubscriberNotificationTopic ...
 | // SubscriberNotificationTopic ...
 | ||||||
|  |  | ||||||
|  | @ -15,9 +15,13 @@ var Selly = struct { | ||||||
| 	UpdateSellerAffiliateStatistic      string | 	UpdateSellerAffiliateStatistic      string | ||||||
| 	CheckAnDInsertCashflowBySeller      string | 	CheckAnDInsertCashflowBySeller      string | ||||||
| 	SubscriberTopic                     string | 	SubscriberTopic                     string | ||||||
|  | 	UpdateSellerSavingCampaignStatistic string | ||||||
|  | 	GenerateVoucherPromotion            string | ||||||
| }{ | }{ | ||||||
| 	PushNotification:                    getSellyValue("push_notifications"), | 	PushNotification:                    getSellyValue("push_notifications"), | ||||||
| 	UpdateSellerAffiliateStatistic:      getSellyValue("update_seller_affiliate_statistic"), | 	UpdateSellerAffiliateStatistic:      getSellyValue("update_seller_affiliate_statistic"), | ||||||
| 	CheckAnDInsertCashflowBySeller:      getSellyValue("check_and_insert_cashflow_statistic"), | 	CheckAnDInsertCashflowBySeller:      getSellyValue("check_and_insert_cashflow_statistic"), | ||||||
| 	SubscriberTopic:                     getSellyValue("subscriber_topic"), | 	SubscriberTopic:                     getSellyValue("subscriber_topic"), | ||||||
|  | 	UpdateSellerSavingCampaignStatistic: getSellyValue("update_seller_saving_campaign_statistic"), | ||||||
|  | 	GenerateVoucherPromotion:            getSellyValue("generate_voucher_promotion"), | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -7,6 +7,8 @@ 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"` | ||||||
|  | 	IsAccountPro  bool    `json:"isAccountPro"` | ||||||
|  | 	CashRemaining float64 `json:"cashRemaining"` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // ResponseListSellerInfo ...
 | // ResponseListSellerInfo ...
 | ||||||
|  |  | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | package model | ||||||
|  | 
 | ||||||
|  | // PayloadEmitSocketEvent ...
 | ||||||
|  | type PayloadEmitSocketEvent struct { | ||||||
|  | 	User        string `json:"user"` | ||||||
|  | 	Message     string `json:"message"` | ||||||
|  | 	Data        string `json:"data"` | ||||||
|  | 	IsNotRemove bool   `json:"isNotRemove"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // PayloadEventSocketReward ...
 | ||||||
|  | type PayloadEventSocketReward struct { | ||||||
|  | 	Type    string      `json:"type"` | ||||||
|  | 	Title   string      `json:"title"` | ||||||
|  | 	Cash    float64     `json:"cash"` | ||||||
|  | 	Message string      `json:"message"` | ||||||
|  | 	Photo   interface{} `json:"photo"` | ||||||
|  | 	Action  *ActionType `json:"action"` | ||||||
|  | } | ||||||
|  | @ -18,6 +18,7 @@ var prefixes = struct { | ||||||
| 	Queue         string | 	Queue         string | ||||||
| 	Campaign      string | 	Campaign      string | ||||||
| 	Affiliate     string | 	Affiliate     string | ||||||
|  | 	Socket        string | ||||||
| }{ | }{ | ||||||
| 	Communication: "communication", | 	Communication: "communication", | ||||||
| 	Order:         "order", | 	Order:         "order", | ||||||
|  | @ -36,4 +37,5 @@ var prefixes = struct { | ||||||
| 	Queue:         "queue", | 	Queue:         "queue", | ||||||
| 	Campaign:      "campaign", | 	Campaign:      "campaign", | ||||||
| 	Affiliate:     "affiliate", | 	Affiliate:     "affiliate", | ||||||
|  | 	Socket:        "socket", | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | package subject | ||||||
|  | 
 | ||||||
|  | import "fmt" | ||||||
|  | 
 | ||||||
|  | func getSocketValue(val string) string { | ||||||
|  | 	return fmt.Sprintf("%s.%s", prefixes.Socket, val) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Socket ...
 | ||||||
|  | var Socket = struct { | ||||||
|  | 	EmitEventReward string | ||||||
|  | }{ | ||||||
|  | 	EmitEventReward: getSocketValue("emit_event_reward"), | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue