@feedmepos/mf-connect 0.1.98-beta.7 → 0.1.98-beta.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/{App-BonFFUVJ.js → App-B-Onur9k.js} +812 -666
  2. package/dist/{AuditLogs-CaQisyMC.js → AuditLogs-BnEeKG1C.js} +14 -13
  3. package/dist/{Bin-Mu8gAiHw.js → Bin-BH9_nATR.js} +8 -8
  4. package/dist/Broadcast-Gt2ZLLpZ.js +302 -0
  5. package/dist/CampaignAnalytic-BT6zTgNk.js +1830 -0
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BoLZVrCU.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-nNLLEzii.js} +6 -5
  7. package/dist/Card-dD52oor7.js +1084 -0
  8. package/dist/{Collections-CByXxRW_.js → Collections-7bwYNl3M.js} +14 -13
  9. package/dist/Credit-qZdlqXqR.js +286 -0
  10. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-DeNn_k19.js +53 -0
  11. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-C09W9Qja.js +4213 -0
  12. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-BXsAX1Xa.js → EffectSheet.vue_vue_type_style_index_0_lang-Bz1HRBMa.js} +35 -35
  13. package/dist/{Experience-B7J-aqPK.js → Experience-CAaWgWXP.js} +112 -86
  14. package/dist/{FileSaver.min-D_F_MSZt.js → FileSaver.min-BpfY6VnX.js} +1 -1
  15. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-3bH-tZAm.js +138 -0
  16. package/dist/Game-fhrbFb_5.js +356 -0
  17. package/dist/GiftCardSetup-CTwmNKim.js +736 -0
  18. package/dist/{Grab-C45MmlD9.js → Grab-BnPfb92x.js} +33 -32
  19. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-CPPcB3PC.js → ImageInput.vue_vue_type_script_setup_true_lang-BySju1oT.js} +1 -1
  20. package/dist/{Index-vQ6uP49O.js → Index-DRwvmm_j.js} +10 -10
  21. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-Cj3hN3tg.js → LocationPicker.vue_vue_type_script_setup_true_lang-Ya4r9NNE.js} +1 -1
  22. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-DU9eIein.js → LottieAnimation.vue_vue_type_script_setup_true_lang-CDwtqqLQ.js} +1 -1
  23. package/dist/LoyaltyDashboard-8jn6SIWo.js +2865 -0
  24. package/dist/MainLayout-Bf42AcB1.js +143 -0
  25. package/dist/{Marketing-B6xMdQvW.js → Marketing-DruTMjiR.js} +7 -6
  26. package/dist/{MarketingMaterialEdit-0cZN4bek.js → MarketingMaterialEdit-moEHd_gP.js} +15 -14
  27. package/dist/Member-C9VTQqIm.js +654 -0
  28. package/dist/MemberDetailSheet.vue_vue_type_script_setup_true_lang-DEsVSWmv.js +1279 -0
  29. package/dist/MemberImportHistory-DZVwya9v.js +187 -0
  30. package/dist/MemberList-KusIfy1u.js +334 -0
  31. package/dist/{MemberTransactions-Bg-ziZy8.js → MemberTransactions-msyjdzlI.js} +1 -1
  32. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-jbDJkbZh.js → MessageInput.vue_vue_type_script_setup_true_lang-DbV-m3cC.js} +5928 -5644
  33. package/dist/MetricInfoTooltip.vue_vue_type_script_setup_true_lang-1DYGpJnD.js +40 -0
  34. package/dist/Mission-CUUxpBUF.js +360 -0
  35. package/dist/{Overview-nsyJGSCq.js → Overview-C9jyKXHX.js} +21 -20
  36. package/dist/Overview-CYKoF8Hp.js +1316 -0
  37. package/dist/Point-CPpQ07yp.js +288 -0
  38. package/dist/Promotion-CJ95m9Qb.js +423 -0
  39. package/dist/{Queue-Dkipt6fw.js → Queue-CX39ILh_.js} +14 -13
  40. package/dist/{Record-BFqx6vM-.js → Record-6I0qyXB5.js} +9 -9
  41. package/dist/Review-DoWu2XNT.js +45 -0
  42. package/dist/ReviewFacebookCallback-Co-5TnI7.js +238 -0
  43. package/dist/ReviewGoogleCallback-Ca7ZuMcF.js +213 -0
  44. package/dist/{Reward-DjFEE7I_.js → Reward-Cx_N6qBJ.js} +35 -35
  45. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-BzZ6VH80.js → RewardGroup.vue_vue_type_script_setup_true_lang-Cn5Yp37p.js} +14 -13
  46. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-A9jQX4jt.js → RuleGroup.vue_vue_type_script_setup_true_lang-M0c67Dyl.js} +196 -186
  47. package/dist/{Segment-BAjdUfZ6.js → Segment-Bx0EW966.js} +275 -276
  48. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-CAQPFzRH.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-ahvrEUGa.js} +37 -36
  49. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-Gkz8jhES.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-C7zSfZdl.js} +4 -4
  50. package/dist/{Setting-BK7y0XC-.js → Setting-DzEK3dWj.js} +14 -14
  51. package/dist/{SettingAdvertisements-DfQ645xr.js → SettingAdvertisements-BNALbI88.js} +12 -12
  52. package/dist/Settings-Cw85-xzq.js +230 -0
  53. package/dist/Store-BSqW1gwf.js +2612 -0
  54. package/dist/{StoreRewards-usHKOGmB.js → StoreRewards-CJXnS8Qf.js} +15 -15
  55. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-C6tUwHEj.js +1329 -0
  56. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DrcWUZuR.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-iylphGuV.js} +2 -2
  57. package/dist/{Tier-BF3V430O.js → Tier-DfitNxp2.js} +2580 -754
  58. package/dist/{Title-DwPuqKfJ.js → Title-QCbtOvKB.js} +39 -37
  59. package/dist/Transaction-dOCzlidD.js +45 -0
  60. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-DToNRTJS.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-Be5X1C-Y.js} +26 -26
  61. package/dist/{Voucher-DnhVIl_o.js → Voucher-BfoCDwjg.js} +156 -133
  62. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-Btb3UZCn.js → VoucherEditor.vue_vue_type_script_setup_true_lang-0EIYoZ0F.js} +118 -124
  63. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-EFUW9DMY.js → ZodTextField.vue_vue_type_script_setup_true_lang-UdStgKbX.js} +2 -2
  64. package/dist/{app-i3r-6ZVm.js → app-BxTElIm-.js} +45168 -37577
  65. package/dist/app.js +1 -1
  66. package/dist/base.export-BmUK8hMh.js +75 -0
  67. package/dist/{business-i0Gxk7gG.js → business-DjAiT8tR.js} +5 -5
  68. package/dist/campaign-DlR3KF9m.js +368 -0
  69. package/dist/campaign-tAmQNoq7.js +100 -0
  70. package/dist/{campaign.enum-CbUTfxek.js → campaign.enum-BjwEQd11.js} +1 -1
  71. package/dist/{campaign.fn-BjHSIDd1.js → campaign.fn-C6kWWIQx.js} +53 -53
  72. package/dist/{collectible.enum-DN7E_kHg.js → collectible.enum-BrtXpT9S.js} +1 -1
  73. package/dist/collection.fn-CDhfM3Eq.js +26 -0
  74. package/dist/currency-10nX5QnT.js +7 -0
  75. package/dist/{duplicateCampaign-DmdJQEIA.js → duplicateCampaign-6oMZOvfM.js} +11 -11
  76. package/dist/{effect-DM4AzeQl.js → effect-T4YzuTc5.js} +1 -1
  77. package/dist/{email-addresses-BlqVJhwZ.js → email-addresses-BjODnJMM.js} +209 -201
  78. package/dist/google-C3S8u0mT.js +4 -0
  79. package/dist/{helper-CkdISSVP.js → helper-BCl5r5yZ.js} +1 -1
  80. package/dist/{index-DgzNGQgE.js → index-B9ZMIUMa.js} +2083 -2559
  81. package/dist/{index-CB7ytKOE.js → index-BBsK7TUw.js} +1588 -1522
  82. package/dist/index-BQk6zTgf.js +32437 -0
  83. package/dist/index-Bd4clHfr.js +901 -0
  84. package/dist/index-BeVWchv7.js +14550 -0
  85. package/dist/index-Bht1Z11w.js +72 -0
  86. package/dist/{index-FD50UHqf.js → index-BiolIgqR.js} +105 -123
  87. package/dist/{index-Cl8t41Sk.js → index-BxU--5J5.js} +5 -5
  88. package/dist/index-Bz6oSli7.js +151 -0
  89. package/dist/index-C5IfNJUl.js +53 -0
  90. package/dist/{index-BWsj6lCJ.js → index-CRvUvCMA.js} +14 -14
  91. package/dist/{index-B6xi1soU.js → index-CnaQt4Pn.js} +1 -1
  92. package/dist/{index-4EtrCy_K.js → index-Ctja--IE.js} +4 -4
  93. package/dist/{index-D6qeYVNz.js → index-D8rGhchh.js} +1 -1
  94. package/dist/{index-BrboOmPq.js → index-DJdTDF9C.js} +347 -216
  95. package/dist/index-DXiJa8Cw.js +137 -0
  96. package/dist/{index-CxdLExX0.js → index-DeQKLilv.js} +24 -9
  97. package/dist/{index-vI-ndGu_.js → index-DhtKt4OL.js} +5 -5
  98. package/dist/{index.esm2017-BX5CyKoc.js → index.esm2017-CEOegJjn.js} +132 -132
  99. package/dist/{loading-DTKDhqew.js → loading-Dx4SCvZY.js} +1 -1
  100. package/dist/{lodash-CCPBsqhe.js → lodash-Dq8OKCKK.js} +1 -1
  101. package/dist/member-import-DX-jn2uk.js +187 -0
  102. package/dist/membership-CltAa-gH.js +274 -0
  103. package/dist/{money-wMK3QkZ5.js → money-DsaAjJTI.js} +1 -1
  104. package/dist/{number-DjKVlWn0.js → number-DmhHKYgY.js} +1 -1
  105. package/dist/objectid-BdNv-dZX.js +145 -0
  106. package/dist/{plugins-D25PaNJk.js → plugins-BFKVM3uC.js} +13 -12
  107. package/dist/remy-Qz_pNsUS.js +13 -0
  108. package/dist/{reward-E63jqJHm.js → reward--SjvIeyy.js} +1 -1
  109. package/dist/{rule-RVvPtAnk.js → rule-CAKdNobZ.js} +335 -275
  110. package/dist/style.css +1 -1
  111. package/dist/{template-zNxOQaqe.js → template-Cfxc5eM8.js} +6 -6
  112. package/dist/timezone-D2b-V5XD.js +20 -0
  113. package/dist/transaction.fn-B5mLY7bz.js +71 -0
  114. package/dist/{trigger-BXV02FhP.js → trigger-DvYcjRBZ.js} +17 -17
  115. package/dist/useMarketingMaterialActions-DtqnjMSt.js +96 -0
  116. package/dist/{usePagination-BPcPhEnp.js → usePagination-DKX24g31.js} +1 -1
  117. package/dist/{user-Bd8S7R5u.js → user-fWb1NxGO.js} +1 -1
  118. package/dist/vue-i18n-wJReAVJw.js +2365 -0
  119. package/dist/{xlsx-_tQC9Ezf.js → xlsx-Mthhu4JR.js} +440 -440
  120. package/dist/{zod-C1j2GLZP.js → zod-CVpVUgBZ.js} +1 -1
  121. package/package.json +10 -6
  122. package/dist/Broadcast-Cy-i-WOT.js +0 -266
  123. package/dist/Card-f2XOtWxp.js +0 -910
  124. package/dist/Credit-CcZF4aQS.js +0 -260
  125. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-eIoPtgO5.js +0 -58
  126. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-C7KZ8GMx.js +0 -3377
  127. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js +0 -129
  128. package/dist/Game-CUW7NeVG.js +0 -330
  129. package/dist/LoyaltyDashboard-GqyUwvXz.js +0 -1082
  130. package/dist/MainLayout-R5NxIBR-.js +0 -41
  131. package/dist/Member-CC5F6Bmz.js +0 -280
  132. package/dist/MemberList-Cq4zxopX.js +0 -1601
  133. package/dist/Mission-DcCZ6tAG.js +0 -334
  134. package/dist/Point-D1vLd5hL.js +0 -262
  135. package/dist/Promotion-Cv7MW5RJ.js +0 -397
  136. package/dist/Review-CKhakUMe.js +0 -1123
  137. package/dist/ReviewFacebookCallback-xgRpXQAg.js +0 -243
  138. package/dist/ReviewGoogleCallback-Cqi_43qi.js +0 -208
  139. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-DDqK4kV1.js +0 -181
  140. package/dist/Store-uTRQ6KbC.js +0 -1996
  141. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-Bb2sTsuA.js +0 -1130
  142. package/dist/Transaction-CnTEfMGU.js +0 -39
  143. package/dist/campaign-CbMlARNI.js +0 -219
  144. package/dist/campaign-f7FT91GR.js +0 -277
  145. package/dist/export-DQR-0lmK.js +0 -97
  146. package/dist/index-COrXX9MR.js +0 -52
  147. package/dist/index-CWiaP-aV.js +0 -28900
  148. package/dist/index-jVfDVEtz.js +0 -85
  149. package/dist/membership-rifuatxU.js +0 -255
  150. package/dist/objectid-DjpWkCxH.js +0 -145
  151. package/dist/useMarketingMaterialActions-5TFNqZVo.js +0 -107
  152. package/dist/vue-i18n-CgMK-TaC.js +0 -2365
@@ -0,0 +1,901 @@
1
+ import { z as e, F as t, b as _, m as g, d as X } from "./index-BxU--5J5.js";
2
+ import { F as M } from "./campaign.enum-BjwEQd11.js";
3
+ import { f as T, F as L, g as c, i as ee, j as O, k as u, m as x, e as te } from "./index-BBsK7TUw.js";
4
+ import { I as P, E as S, H as ne, J as oe, K as ie } from "./index-B9ZMIUMa.js";
5
+ import { c as p, f as ae } from "./index-BeVWchv7.js";
6
+ e.object({
7
+ location: t,
8
+ memberId: t,
9
+ nettTotal: _,
10
+ remark: e.string().optional()
11
+ });
12
+ const le = e.enum(["COUNTER", "POS"]);
13
+ e.object({
14
+ id: e.string(),
15
+ userId: e.string(),
16
+ name: e.string().nullish(),
17
+ birthday: e.string().nullish(),
18
+ phoneNumber: e.string().nullish(),
19
+ balance: e.number().nullish(),
20
+ level: e.number().nullish(),
21
+ mostPurchasedItems: e.array(e.string()).nullish()
22
+ });
23
+ const se = {
24
+ collectionName: "Bills"
25
+ }, j = e.object({
26
+ _id: e.string(),
27
+ items: e.record(e.string(), e.number()).nullish(),
28
+ // business: z.string(),
29
+ // adjustments: z.record(FdoBillAdjustment),
30
+ // refundedFrom: z.string().nullish(),
31
+ user: e.string().nullish(),
32
+ memberid: e.string().nullish(),
33
+ // roundToNearest: z.number().nullish(),
34
+ nettTotal: _,
35
+ adjustedTotal: _.optional(),
36
+ // activeItems: z.array(z.string()),
37
+ remark: e.string().nullish(),
38
+ createdAt: e.coerce.date(),
39
+ completedAt: e.coerce.date(),
40
+ refunded: e.boolean().nullish(),
41
+ refundRecord: e.array(e.string()).nullish(),
42
+ location: e.string(),
43
+ channel: le.optional()
44
+ }).transform((i) => ({
45
+ ...i,
46
+ createdTime: i.createdAt,
47
+ completedTime: i.completedAt,
48
+ get amount() {
49
+ return i.nettTotal.amount / 10 ** i.nettTotal.precision;
50
+ },
51
+ get adjustmentAmount() {
52
+ return i.adjustedTotal ? i.adjustedTotal.amount / 10 ** i.adjustedTotal.precision : void 0;
53
+ }
54
+ })).describe(g.describe(se)), re = e.object({
55
+ _id: e.string(),
56
+ rating: e.coerce.number(),
57
+ user: e.string().optional(),
58
+ restaurant: e.string(),
59
+ message: e.string(),
60
+ submittedAt: e.coerce.date()
61
+ }), o = e.enum([
62
+ "SIMPLE_CLAIM",
63
+ "LINK_CLAIM",
64
+ "BILL_COMPLETED",
65
+ "BILL_REFUNDED",
66
+ "SCHEDULE",
67
+ "BIRTHDAY",
68
+ "FEEDBACK",
69
+ "ENTER_SEGMENT",
70
+ "MEMBERSHIP_JOINED",
71
+ "TIER_UPGRADED",
72
+ "MAKING_ORDER",
73
+ "ISSUE_REWARD",
74
+ "MEMBER_REWARD",
75
+ "GAME_COMPLETED",
76
+ "PAGINATE_SCHEDULE",
77
+ "REFERRAL_ADDED",
78
+ "MEMBER_IMPORTED",
79
+ "SEGMENTATION_IMPORTED"
80
+ ]), Ye = o.extract([
81
+ "BILL_COMPLETED",
82
+ "FEEDBACK",
83
+ "GAME_COMPLETED",
84
+ "MAKING_ORDER",
85
+ "MEMBERSHIP_JOINED",
86
+ "SCHEDULE",
87
+ "SIMPLE_CLAIM",
88
+ "TIER_UPGRADED",
89
+ "ISSUE_REWARD"
90
+ ]);
91
+ e.enum(["START_OF", "BEFORE"]);
92
+ e.enum(["WEEK", "MONTH"]);
93
+ const de = e.enum([
94
+ "WAITING",
95
+ "ACTIVE",
96
+ "COMPLETED",
97
+ "FAILED"
98
+ ]), a = e.object({
99
+ // type: F_EVENT_TYPE,
100
+ rule: T.optional()
101
+ }), ce = a.extend({
102
+ type: e.literal(o.enum.BILL_COMPLETED)
103
+ }), me = a.extend({
104
+ type: e.literal(o.enum.FEEDBACK)
105
+ }), ue = a.extend({
106
+ type: e.literal(o.enum.SIMPLE_CLAIM)
107
+ });
108
+ a.extend({
109
+ type: e.literal(o.enum.ENTER_SEGMENT),
110
+ segment: e.string()
111
+ });
112
+ const pe = a.extend({
113
+ type: e.literal(o.enum.MEMBER_REWARD)
114
+ }), Ee = a.extend({
115
+ type: e.literal(o.enum.SCHEDULE)
116
+ // option: FdoCronRule,
117
+ }), ge = a.extend({
118
+ type: e.literal(o.enum.MEMBERSHIP_JOINED)
119
+ }), be = a.extend({
120
+ type: e.literal(o.enum.TIER_UPGRADED)
121
+ }), ye = a.extend({
122
+ type: e.literal(o.enum.MAKING_ORDER)
123
+ }), Ce = a.extend({
124
+ type: e.literal(o.enum.ISSUE_REWARD)
125
+ }), Re = a.extend({
126
+ type: e.literal(o.enum.GAME_COMPLETED)
127
+ });
128
+ a.extend({
129
+ type: e.literal(o.enum.REFERRAL_ADDED)
130
+ });
131
+ a.extend({
132
+ type: e.literal(o.enum.MEMBER_IMPORTED)
133
+ });
134
+ const Ie = e.discriminatedUnion("type", [
135
+ ue,
136
+ ce,
137
+ Ee,
138
+ me,
139
+ ge,
140
+ be,
141
+ ye,
142
+ Ce,
143
+ pe,
144
+ Re
145
+ ]);
146
+ e.object({
147
+ _id: t,
148
+ type: o,
149
+ ref: e.string(),
150
+ status: de.optional(),
151
+ context: e.record(e.string(), e.any()).optional(),
152
+ failedReason: e.any().optional()
153
+ }).describe(JSON.stringify({ collectionName: "EventLogs" }));
154
+ const l = e.object({
155
+ type: o,
156
+ context: e.any(),
157
+ businessIds: e.array(t).optional(),
158
+ campaignIds: e.array(t).optional(),
159
+ slackWebhookUrl: e.string().optional(),
160
+ emittedAt: e.coerce.date().default(/* @__PURE__ */ new Date())
161
+ }), _e = l.extend({
162
+ type: e.literal(o.enum.BILL_COMPLETED),
163
+ context: e.object({
164
+ bill: j,
165
+ rawBill: e.any()
166
+ })
167
+ }), he = l.extend({
168
+ type: e.literal(o.enum.BILL_REFUNDED),
169
+ context: e.object({
170
+ bill: j,
171
+ rawBill: e.any()
172
+ })
173
+ }), fe = l.extend({
174
+ type: e.literal(o.enum.SCHEDULE),
175
+ context: e.object({
176
+ triggeredAt: e.coerce.date()
177
+ })
178
+ }), Fe = l.extend({
179
+ type: e.literal(o.enum.PAGINATE_SCHEDULE),
180
+ context: e.object({
181
+ triggeredAt: e.coerce.date(),
182
+ business: t,
183
+ skip: e.coerce.number(),
184
+ limit: e.coerce.number()
185
+ })
186
+ }), De = l.extend({
187
+ type: e.literal(o.enum.FEEDBACK),
188
+ context: e.object({
189
+ feedback: re
190
+ })
191
+ }), Ae = l.extend({
192
+ type: e.literal(o.enum.MEMBERSHIP_JOINED),
193
+ context: e.object({
194
+ user: P
195
+ })
196
+ }), Me = l.extend({
197
+ type: e.literal(o.enum.TIER_UPGRADED),
198
+ context: e.object({
199
+ transaction: S
200
+ })
201
+ }), Te = l.extend({
202
+ type: e.literal(o.enum.ISSUE_REWARD),
203
+ context: e.object({
204
+ transaction: S,
205
+ collection: ne
206
+ })
207
+ }), Le = l.extend({
208
+ type: e.literal(o.enum.REFERRAL_ADDED),
209
+ context: e.object({
210
+ user: P
211
+ })
212
+ }), N = e.object({
213
+ ref: t,
214
+ originalName: e.string(),
215
+ mimeType: e.string(),
216
+ size: e.number(),
217
+ fbFilePath: e.string(),
218
+ isFbFileDeleted: e.boolean().nullish()
219
+ }), Oe = e.object({
220
+ resetCollectionExpiryBalance: e.boolean().nullish()
221
+ }), xe = l.extend({
222
+ type: e.literal(o.enum.MEMBER_IMPORTED),
223
+ context: e.object({
224
+ business: e.string(),
225
+ file: N,
226
+ config: Oe.optional()
227
+ })
228
+ }), Pe = l.extend({
229
+ type: e.literal(o.enum.SEGMENTATION_IMPORTED),
230
+ context: e.object({
231
+ business: e.string(),
232
+ segment: e.string(),
233
+ file: N
234
+ })
235
+ });
236
+ e.discriminatedUnion("type", [
237
+ _e,
238
+ he,
239
+ fe,
240
+ De,
241
+ Ae,
242
+ Me,
243
+ Te,
244
+ Fe,
245
+ Le,
246
+ xe,
247
+ Pe
248
+ ]);
249
+ const Se = {
250
+ collectionName: "Locations",
251
+ transform: {
252
+ _id: "oid",
253
+ business: "oid"
254
+ }
255
+ }, B = e.object({
256
+ _id: t,
257
+ business: t,
258
+ name: e.string(),
259
+ code: e.string().nullish(),
260
+ otp: e.string().nullish(),
261
+ otpExpiredAt: e.coerce.date().nullish(),
262
+ apiToken: e.string().nullish(),
263
+ customAttribute: e.record(e.any()).nullish()
264
+ }).describe(g.describe(Se));
265
+ e.object({
266
+ _id: t,
267
+ name: e.string(),
268
+ location: t,
269
+ os: e.string(),
270
+ apiToken: e.string().nullish()
271
+ }).describe(
272
+ g.describe({
273
+ collectionName: "LocationDevices",
274
+ transform: {
275
+ _id: "oid",
276
+ location: "oid"
277
+ }
278
+ })
279
+ );
280
+ e.object({
281
+ _id: e.string(),
282
+ name: e.string()
283
+ });
284
+ const h = e.enum(["NO_REWARD", "VOUCHER", "LOYALTY"]), f = e.number().min(0, "Weight need to be at least 0"), F = e.number().int("Must be integer").min(0, "Threshold need to be at least 0"), G = e.object({
285
+ type: e.literal(h.enum.NO_REWARD),
286
+ collectible: e.null(),
287
+ weight: f
288
+ }), U = e.object({
289
+ type: e.literal(h.enum.VOUCHER),
290
+ collectible: t,
291
+ collectibleConfig: e.lazy(() => L._def.right.options[0]),
292
+ earningOption: e.lazy(() => c)
293
+ }), y = e.object({
294
+ type: e.literal(h.enum.LOYALTY),
295
+ collectible: t,
296
+ earningOption: e.lazy(() => c),
297
+ validityOption: e.lazy(() => ee)
298
+ }), w = U.extend({
299
+ weight: f
300
+ }), v = y.extend({
301
+ weight: e.number().min(0, "Weight need to be at least 0")
302
+ }), Ze = y.extend({
303
+ validityOption: O,
304
+ weight: f
305
+ }), je = e.discriminatedUnion("type", [
306
+ w,
307
+ v,
308
+ G
309
+ ]), D = e.discriminatedUnion("type", [
310
+ w.extend({
311
+ collectible: t.nullish(),
312
+ business: t.nullish()
313
+ }),
314
+ v.extend({
315
+ collectible: t.nullish(),
316
+ business: t.nullish()
317
+ }),
318
+ G
319
+ ]), z = U.extend({
320
+ threshold: F
321
+ }), H = y.extend({
322
+ threshold: F
323
+ }), Qe = y.extend({
324
+ validityOption: O,
325
+ threshold: F
326
+ }), k = e.discriminatedUnion("type", [
327
+ z,
328
+ H
329
+ ]), Ne = e.discriminatedUnion("type", [
330
+ z.extend({
331
+ collectible: t.nullish(),
332
+ business: t.nullish()
333
+ }),
334
+ H.extend({
335
+ collectible: t.nullish(),
336
+ collectibleConfig: L.nullish(),
337
+ business: t.nullish()
338
+ })
339
+ ]), Be = e.enum(["PROGRESSIVE", "STAMP"]), Ge = e.object({
340
+ type: Be,
341
+ end: e.number().int().min(0, "Threshold need to be at least 1"),
342
+ rewards: e.array(e.lazy(() => k)).nullish()
343
+ }).superRefine((i, d) => {
344
+ i.type == "STAMP" && i.end > 40 && (d.addIssue({
345
+ code: "custom",
346
+ path: [],
347
+ message: "Stamp mission can have at most 40 threshold"
348
+ }), d.addIssue({
349
+ code: "custom",
350
+ path: ["end"],
351
+ message: "Stamp mission can have at most 40 threshold"
352
+ }));
353
+ }), C = e.object({
354
+ totalCount: e.number().optional(),
355
+ totalCountPerUser: e.number().optional()
356
+ }), m = e.object({
357
+ periods: e.array(
358
+ e.object({
359
+ startTime: e.string(),
360
+ endTime: e.string()
361
+ })
362
+ )
363
+ }), R = e.object({
364
+ startTime: e.string(),
365
+ // ISO 8601 date string
366
+ endTime: e.string(),
367
+ // ISO 8601 date string
368
+ eaterType: e.enum(["all", "new", "existing"]),
369
+ minBasketAmount: e.number().optional(),
370
+ bundleQuantity: e.number().optional(),
371
+ workingHour: e.object({
372
+ mon: m.optional(),
373
+ tue: m.optional(),
374
+ wed: m.optional(),
375
+ thu: m.optional(),
376
+ fri: m.optional(),
377
+ sat: m.optional(),
378
+ sun: m.optional()
379
+ }).optional()
380
+ }), Ue = e.object({
381
+ type: e.enum(["items", "category", "order"]),
382
+ objectIDs: e.array(e.string()).optional()
383
+ }), I = e.object({
384
+ type: e.enum([
385
+ "net",
386
+ // dollar off
387
+ "percentage",
388
+ // percentage off
389
+ "bundleSameFixPrice",
390
+ // bundle fix price (same item)
391
+ "bundleDiffFixPrice",
392
+ // bundle fix price (different items)
393
+ "bundleSameNet",
394
+ // bundle dollar off (same item)
395
+ "bundleDiffNet",
396
+ // bundle dollar off (different items)
397
+ "bundleSamePercentage",
398
+ // bundle percentage off (same item)
399
+ "bundleDiffPercentage",
400
+ // bundle percentage off (different items)
401
+ "delivery",
402
+ // delivery fee off
403
+ "freeItem"
404
+ // free item
405
+ ]),
406
+ value: e.number(),
407
+ cap: e.number().optional(),
408
+ // for percentage off campaigns
409
+ scope: Ue
410
+ });
411
+ e.object({
412
+ merchantID: e.string().optional(),
413
+ name: e.string().max(256),
414
+ quotas: C.optional(),
415
+ conditions: R,
416
+ discount: I,
417
+ customTag: e.string().max(22).optional()
418
+ });
419
+ e.object({
420
+ id: e.string()
421
+ });
422
+ e.object({
423
+ merchantID: e.string().optional(),
424
+ name: e.string().max(256).optional(),
425
+ quotas: C.optional(),
426
+ conditions: R.optional(),
427
+ discount: I.optional(),
428
+ customTag: e.string().max(22).optional()
429
+ });
430
+ const A = e.object({
431
+ id: e.string(),
432
+ merchantID: e.string(),
433
+ name: e.string(),
434
+ quotas: C.optional(),
435
+ conditions: R,
436
+ discount: I,
437
+ customTag: e.string().optional(),
438
+ status: e.enum(["ongoing", "upcoming", "expired", "cancelled"]).optional(),
439
+ createdAt: e.string().optional(),
440
+ updatedAt: e.string().optional()
441
+ });
442
+ e.object({
443
+ ongoing: e.array(A),
444
+ upcoming: e.array(A)
445
+ });
446
+ e.object({
447
+ merchantID: e.string()
448
+ });
449
+ e.object({
450
+ target: e.string(),
451
+ reason: e.string(),
452
+ message: e.string()
453
+ });
454
+ const we = {
455
+ collectionName: "Groups",
456
+ transform: {
457
+ _id: "oid",
458
+ business: "oid"
459
+ },
460
+ lookups: {
461
+ business: {
462
+ fromCollection: "Businesses",
463
+ as: "pf_business"
464
+ },
465
+ pf_campaigns: {
466
+ fromCollection: "Campaigns",
467
+ as: "pf_campaigns",
468
+ localField: "_id",
469
+ foreignField: "group"
470
+ }
471
+ }
472
+ }, $e = e.object({
473
+ _id: t,
474
+ name: e.string().min(1).max(300),
475
+ business: t,
476
+ pf_campaigns: e.array(e.any()).optional()
477
+ }).describe(g.describe(we)), ve = e.object({
478
+ from: e.string().email().nullish(),
479
+ name: e.string().min(1).max(50).nullish()
480
+ }), ze = e.object({
481
+ _id: e.string(),
482
+ url: e.string(),
483
+ targetLocation: e.array(t).nullish(),
484
+ // null/empty = all locations
485
+ order: e.number().optional()
486
+ }), W = e.object({
487
+ type: e.literal(M.enum.MEMBERSHIP),
488
+ business: t,
489
+ name: e.string().min(1).max(50),
490
+ image: e.string().nullish(),
491
+ url: e.string().nullish(),
492
+ tiers: e.array(e.lazy(() => oe)),
493
+ titles: e.array(t),
494
+ tierCycleEnable: e.boolean().optional(),
495
+ tierCycle: e.lazy(() => T).nullish(),
496
+ tierRules: e.array(e.lazy(() => ie)).nullish(),
497
+ migrated: e.boolean().optional(),
498
+ welcomeMessage: p.optional(),
499
+ advertisements: e.union([e.array(e.string()), e.array(ze)]).optional(),
500
+ cardEnable: e.boolean().optional(),
501
+ autoRevertReward: e.boolean().optional(),
502
+ design: e.array(
503
+ e.object({
504
+ _id: t,
505
+ image: e.string()
506
+ })
507
+ ).optional(),
508
+ targetLocation: e.array(t).nullish(),
509
+ brand: e.string().nullish(),
510
+ email: ve.nullish(),
511
+ freeCreditAsDiscount: e.boolean().optional(),
512
+ pf_title: e.array(e.lazy(() => u)).optional(),
513
+ pf_targetLocation: e.array(e.lazy(() => B)).optional(),
514
+ allowedPhoneCountries: e.union([e.array(e.string().regex(/^\+\d{1,4}$/)), e.null()]).optional(),
515
+ // new structure
516
+ group: e.string().nullish(),
517
+ templateId: t.nullish()
518
+ }), n = M.exclude(["MEMBERSHIP"]), s = e.object({
519
+ _id: t.nullish(),
520
+ type: n,
521
+ // common information
522
+ business: t,
523
+ name: e.string().min(1).max(50),
524
+ image: e.string().nullish(),
525
+ description: e.string().max(500).nullish(),
526
+ timeframeOptions: x.superRefine((i, d) => {
527
+ i.start && i.end && i.end < i.start && d.addIssue({
528
+ code: "custom",
529
+ path: [],
530
+ params: {
531
+ i18n: "connectZodCustom:timeframe.end_before_start"
532
+ }
533
+ });
534
+ }).nullish(),
535
+ targetLocation: e.array(t).nullish(),
536
+ event: Ie,
537
+ config: te.nullish(),
538
+ currentReceive: e.coerce.number().optional(),
539
+ // new group structure
540
+ group: t.nullish(),
541
+ templateId: t.nullish(),
542
+ pf_targetLocation: e.array(e.lazy(() => B)).optional(),
543
+ deletedAt: e.coerce.date().optional()
544
+ }), r = {
545
+ [n.enum.VOUCHER]: [
546
+ "BILL_COMPLETED",
547
+ "FEEDBACK",
548
+ "MEMBERSHIP_JOINED",
549
+ "TIER_UPGRADED",
550
+ "SCHEDULE",
551
+ "SIMPLE_CLAIM"
552
+ ],
553
+ [n.enum.PROMOTION]: ["MAKING_ORDER"],
554
+ [n.enum.GRAB]: ["MAKING_ORDER"],
555
+ [n.enum.POINT]: [
556
+ "BILL_COMPLETED",
557
+ "FEEDBACK",
558
+ "MEMBERSHIP_JOINED",
559
+ "TIER_UPGRADED",
560
+ "SCHEDULE"
561
+ ],
562
+ [n.enum.CREDIT]: [
563
+ "BILL_COMPLETED",
564
+ "FEEDBACK",
565
+ "MEMBERSHIP_JOINED",
566
+ "TIER_UPGRADED",
567
+ "SCHEDULE"
568
+ ],
569
+ [n.enum.BROADCAST]: [
570
+ "SCHEDULE",
571
+ "ISSUE_REWARD",
572
+ "FEEDBACK"
573
+ ],
574
+ [n.enum.COIN]: [
575
+ "BILL_COMPLETED",
576
+ "FEEDBACK",
577
+ "MEMBERSHIP_JOINED",
578
+ "TIER_UPGRADED",
579
+ "SCHEDULE"
580
+ ],
581
+ [n.enum.REWARD_POOL]: ["GAME_COMPLETED"],
582
+ [n.enum.GAME]: [
583
+ "BILL_COMPLETED",
584
+ "FEEDBACK",
585
+ "MEMBERSHIP_JOINED",
586
+ "TIER_UPGRADED",
587
+ "SCHEDULE",
588
+ "SIMPLE_CLAIM"
589
+ ],
590
+ [n.enum.MISSION]: [
591
+ "BILL_COMPLETED",
592
+ "FEEDBACK",
593
+ "SCHEDULE"
594
+ ]
595
+ }, K = s.extend({
596
+ type: e.literal(n.enum.VOUCHER),
597
+ // event
598
+ code: e.string().min(0).max(15).regex(/^[A-Za-z0-9\-_.@]*$/, {
599
+ message: "Code can only contain letters, numbers, and - _ . @"
600
+ }).optional(),
601
+ event: a.merge(
602
+ e.object({
603
+ type: e.enum(r[n.enum.VOUCHER])
604
+ })
605
+ ),
606
+ earningOption: c.default({
607
+ amount: 1,
608
+ type: "FIXED"
609
+ }),
610
+ collectible: t,
611
+ hideInApp: e.boolean().optional(),
612
+ notify: e.boolean().optional(),
613
+ notifyMessage: e.lazy(() => p).optional(),
614
+ notifyCampaign: t.nullish(),
615
+ pf_collectible: e.lazy(() => u).optional(),
616
+ pf_notifyCampaign: e.lazy(() => E).optional()
617
+ }), He = e.object({
618
+ gameType: e.string()
619
+ }), V = s.extend({
620
+ type: e.literal(n.enum.PROMOTION),
621
+ // event
622
+ event: a.merge(
623
+ e.object({
624
+ type: e.enum(r[n.enum.PROMOTION])
625
+ })
626
+ ),
627
+ effect: e.custom().superRefine((i, d) => {
628
+ i || d.addIssue({
629
+ code: "custom",
630
+ path: [],
631
+ params: {
632
+ i18n: "connectZodCustom:campaign.effect_required"
633
+ }
634
+ });
635
+ }),
636
+ gameConfig: He.nullish()
637
+ }), J = s.extend({
638
+ type: e.literal(n.enum.POINT),
639
+ // event
640
+ event: a.merge(
641
+ e.object({
642
+ type: e.enum(r[n.enum.POINT])
643
+ })
644
+ ),
645
+ earningOption: c,
646
+ collectible: t,
647
+ notify: e.boolean().optional(),
648
+ notifyMessage: e.lazy(() => p).optional(),
649
+ notifyCampaign: t.nullish(),
650
+ pf_collectible: e.lazy(() => u).optional(),
651
+ pf_notifyCampaign: e.lazy(() => E).optional()
652
+ }), q = s.extend({
653
+ type: e.literal(n.enum.CREDIT),
654
+ // event
655
+ event: a.merge(
656
+ e.object({
657
+ type: e.enum(r[n.enum.CREDIT])
658
+ })
659
+ ),
660
+ earningOption: c,
661
+ collectible: t,
662
+ notify: e.boolean().optional(),
663
+ notifyMessage: e.lazy(() => p).optional(),
664
+ notifyCampaign: t.nullish(),
665
+ pf_collectible: e.lazy(() => u).optional(),
666
+ pf_notifyCampaign: e.lazy(() => E).optional()
667
+ }), E = s.extend({
668
+ type: e.literal(n.enum.BROADCAST),
669
+ // event
670
+ event: a.merge(
671
+ e.object({
672
+ type: e.enum(r[n.enum.BROADCAST])
673
+ })
674
+ ),
675
+ // Optional so a campaign can use only channels the legacy sender cannot
676
+ // route (App Inbox, Push). Campaigns with `delivery` take the multi-channel
677
+ // path, which never reads `message`; it is still mirrored when a routable
678
+ // channel exists (see toLegacyMessage) so an older reader degrades to
679
+ // sending one real message rather than nothing.
680
+ message: p.nullish(),
681
+ delivery: e.lazy(() => ae).nullish(),
682
+ linkedCampaign: t.nullish()
683
+ }), Y = s.extend({
684
+ type: e.literal(n.enum.COIN),
685
+ // event
686
+ event: a.merge(
687
+ e.object({
688
+ type: e.enum(r[n.enum.COIN])
689
+ })
690
+ ),
691
+ earningOption: c,
692
+ collectible: t,
693
+ notify: e.boolean().optional(),
694
+ notifyMessage: e.lazy(() => p).optional(),
695
+ notifyCampaign: t.nullish(),
696
+ pf_collectible: e.lazy(() => u).optional(),
697
+ pf_notifyCampaign: e.lazy(() => E).optional()
698
+ }), b = s.extend({
699
+ type: e.literal(n.enum.REWARD_POOL),
700
+ // event
701
+ event: a.merge(
702
+ e.object({
703
+ type: e.enum(r[n.enum.REWARD_POOL])
704
+ })
705
+ ),
706
+ rewards: e.array(e.lazy(() => je)).min(1, "Requires at least 1 reward")
707
+ }), Z = s.extend({
708
+ type: e.literal(n.enum.GAME),
709
+ // event
710
+ event: a.merge(
711
+ e.object({
712
+ type: e.enum(r[n.enum.GAME])
713
+ })
714
+ ),
715
+ earningOption: c,
716
+ collectible: t,
717
+ game: e.lazy(() => b).optional(),
718
+ pf_collectible: e.lazy(() => u).optional(),
719
+ rewardPool: t.optional()
720
+ }), Q = s.extend({
721
+ type: e.literal(n.enum.MISSION),
722
+ event: a.merge(
723
+ e.object({
724
+ type: e.enum(r[n.enum.MISSION])
725
+ })
726
+ ),
727
+ earningOption: c,
728
+ collectible: t,
729
+ pf_collectible: e.lazy(() => u).optional(),
730
+ mission: e.lazy(() => Ge),
731
+ rewards: e.array(e.lazy(() => k)).min(1, "Requires at least 1 reward")
732
+ }), $ = s.omit({
733
+ timeframeOptions: !0
734
+ }).extend({
735
+ type: e.literal(n.enum.GRAB),
736
+ event: a.merge(
737
+ e.object({
738
+ type: e.enum(r[n.enum.GRAB])
739
+ })
740
+ ),
741
+ business: t,
742
+ name: e.string().min(1).max(50),
743
+ targetLocation: e.array(t).nullish(),
744
+ group: e.string().nullish(),
745
+ templateId: t.nullish(),
746
+ // Grab specific fields
747
+ conditions: R,
748
+ quotas: C,
749
+ discount: I,
750
+ grabCampaignMeta: e.array(
751
+ e.object({
752
+ locationId: e.string(),
753
+ campaignId: e.string()
754
+ })
755
+ ).optional(),
756
+ // Make timeframeOptions required (remove .nullish() from parent)
757
+ timeframeOptions: x.superRefine((i, d) => {
758
+ (!i.start || !i.end) && d.addIssue({
759
+ code: "custom",
760
+ path: [],
761
+ params: {
762
+ i18n: { key: "timeframe.required" }
763
+ }
764
+ }), i.start && i.end && i.end < i.start && d.addIssue({
765
+ code: "custom",
766
+ path: [],
767
+ params: {
768
+ i18n: { key: "timeframe.end_before_start" }
769
+ }
770
+ });
771
+ })
772
+ }), ke = {
773
+ collectionName: "Campaigns",
774
+ transform: {
775
+ _id: "oid",
776
+ business: "oid",
777
+ collectible: "oid",
778
+ templateId: "oid",
779
+ group: "oid",
780
+ notifyCampaign: "oid",
781
+ linkedCampaign: "oid",
782
+ rewardPool: "oid"
783
+ },
784
+ lookups: {
785
+ business: {
786
+ fromCollection: "Businesses",
787
+ as: "pf_business"
788
+ },
789
+ targetLocation: {
790
+ fromCollection: "Locations",
791
+ as: "pf_targetLocation"
792
+ },
793
+ collectible: {
794
+ fromCollection: "CollectibleConfigs",
795
+ as: "pf_collectible"
796
+ },
797
+ titles: {
798
+ fromCollection: "CollectibleConfigs",
799
+ as: "pf_title"
800
+ },
801
+ templateId: {
802
+ fromCollection: "Templates",
803
+ as: "template"
804
+ },
805
+ notifyCampaign: {
806
+ fromCollection: "Campaigns",
807
+ as: "pf_notifyCampaign"
808
+ },
809
+ rewardPool: {
810
+ fromCollection: "Campaigns",
811
+ as: "game"
812
+ }
813
+ }
814
+ }, Xe = e.object({ _id: t }).and(
815
+ e.discriminatedUnion("type", [
816
+ W,
817
+ K,
818
+ V,
819
+ J,
820
+ q,
821
+ E,
822
+ Y,
823
+ b,
824
+ Z,
825
+ Q,
826
+ $
827
+ ])
828
+ ).describe(g.describe(ke)), et = e.discriminatedUnion("type", [
829
+ K.extend({
830
+ business: t.nullish()
831
+ }),
832
+ V.extend({
833
+ business: t.nullish()
834
+ }),
835
+ J.extend({
836
+ business: t.nullish()
837
+ }),
838
+ q.extend({
839
+ business: t.nullish()
840
+ }),
841
+ E.extend({
842
+ business: t.nullish()
843
+ }),
844
+ Y.extend({
845
+ business: t.nullish()
846
+ }),
847
+ b.extend({
848
+ rewards: e.array(e.lazy(() => D)).min(1, "Requires at least 1 reward")
849
+ }),
850
+ Z.extend({
851
+ business: t.nullish(),
852
+ game: b.extend({
853
+ business: t.nullish(),
854
+ rewards: e.array(e.lazy(() => D)).min(1, "Requires at least 1 reward")
855
+ })
856
+ }),
857
+ Q.extend({
858
+ business: t.nullish(),
859
+ rewards: e.array(e.lazy(() => Ne)).min(1, "Requires at least 1 reward")
860
+ }),
861
+ $.extend({
862
+ business: t.nullish()
863
+ })
864
+ ]);
865
+ W.pick({
866
+ business: !0,
867
+ name: !0,
868
+ image: !0,
869
+ // url: true,
870
+ tiers: !0,
871
+ // titles: true,
872
+ cardEnable: !0,
873
+ // design: true,
874
+ targetLocation: !0,
875
+ brand: !0,
876
+ email: !0,
877
+ freeCreditAsDiscount: !0,
878
+ allowedPhoneCountries: !0,
879
+ pf_title: !0,
880
+ pf_targetLocation: !0
881
+ }).extend({
882
+ allowedPhoneCountryDetails: e.array(X).nullish()
883
+ });
884
+ export {
885
+ r as C,
886
+ n as F,
887
+ o as a,
888
+ Xe as b,
889
+ Ye as c,
890
+ Ie as d,
891
+ $e as e,
892
+ et as f,
893
+ Ze as g,
894
+ D as h,
895
+ Be as i,
896
+ Qe as j,
897
+ Ne as k,
898
+ Ge as l,
899
+ W as m,
900
+ de as n
901
+ };