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