@feedmepos/mf-connect 0.1.8-prod → 0.1.10-prod

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 (94) hide show
  1. package/dist/{Analytic-C5DiiAlc.js → Analytic-CpSbitWV.js} +24 -22
  2. package/dist/{App-B3pHa-zu.js → App-BPT8XzjX.js} +56 -51
  3. package/dist/{Broadcast-BbKiYeZC.js → Broadcast-CJHpiQeN.js} +8 -8
  4. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CusmGpDT.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-DUPqWdIm.js} +7 -8
  5. package/dist/Card-Bvn36zqZ.js +895 -0
  6. package/dist/{Collections-DvZEXknp.js → Collections-Bq6OxsJC.js} +24 -29
  7. package/dist/{Credit-CqjSUWeG.js → Credit-Dno_g7dW.js} +8 -8
  8. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-DLnvDVgf.js +108 -0
  9. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-Bzd-9d8d.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-cGbwORhw.js} +649 -1284
  10. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-C73wNCE4.js → EffectSheet.vue_vue_type_style_index_0_lang-Ho7zwlbb.js} +20 -20
  11. package/dist/{Experience-BmCrc4-K.js → Experience-BC1qSIGO.js} +8 -8
  12. package/dist/{Game-CU4AHASb.js → Game-C_CKGMBW.js} +8 -8
  13. package/dist/Index-BXFaWTfw.js +255 -0
  14. package/dist/{Marketing-PJO3M5Xy.js → Marketing-Ni0WAie5.js} +5 -5
  15. package/dist/{Member-DChbb26Z.js → Member-djnisrK1.js} +4 -4
  16. package/dist/{MemberList-Ckvxgme7.js → MemberList-CclU-3B7.js} +194 -191
  17. package/dist/{MemberTransactions-KNlKr1DE.js → MemberTransactions-DVVsv3Ux.js} +1 -1
  18. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-CDX1qdOw.js → MessageInput.vue_vue_type_script_setup_true_lang-khyDg1m4.js} +2 -2
  19. package/dist/Mission-Z5somdo_.js +273 -0
  20. package/dist/Overview-BvMVz3lQ.js +1074 -0
  21. package/dist/{Point-B-Ot-ZXU.js → Point-DdPukiTg.js} +8 -8
  22. package/dist/{Promotion-CKEfuwo0.js → Promotion-DCqdIwjG.js} +9 -9
  23. package/dist/Record-CvMxXm1B.js +337 -0
  24. package/dist/Reward-CiJHGXfQ.js +441 -0
  25. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-CrGCBRmH.js +150 -0
  26. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-tnT6i0Jq.js +1638 -0
  27. package/dist/{Segment-B8JKn5_y.js → Segment-CQb3j-o0.js} +22 -21
  28. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-B7YqIU5D.js +181 -0
  29. package/dist/{Setting-BcWDJ-63.js → Setting-91cK3ssU.js} +31 -31
  30. package/dist/Store-B-uldUKt.js +1744 -0
  31. package/dist/{StoreRewards-DyfFecSH.js → StoreRewards-dDNeFlA9.js} +15 -14
  32. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BVb1X0aq.js +1132 -0
  33. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-CHrZ7pit.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-Ds0WxGxr.js} +1 -1
  34. package/dist/{Tier-iKOv9e2Y.js → Tier-_jMaLj3u.js} +185 -185
  35. package/dist/{Title-BRWnLlHd.js → Title-By7o67aT.js} +20 -20
  36. package/dist/{Transaction-BMnxATxc.js → Transaction-BLpEgeI2.js} +2 -2
  37. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-Bf_nO9zH.js +130 -0
  38. package/dist/{Voucher-B_IwtXLW.js → Voucher-CG5tfibn.js} +11 -11
  39. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-DpQUoXyQ.js +419 -0
  40. package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-YwGR2En3.js +56 -0
  41. package/dist/{app-Bs8TZeMP.js → app-DDmTqTb7.js} +1 -1
  42. package/dist/{app-CLPpu6jA.js → app-vCqTQIeC.js} +430 -276
  43. package/dist/app.js +1 -1
  44. package/dist/{business-Dg5T3krT.js → business-Cz78KGF2.js} +1 -1
  45. package/dist/{campaign-BMLeXfnZ.js → campaign-BBd4o7F_.js} +2 -2
  46. package/dist/campaign.enum-CIhi0b-m.js +20 -0
  47. package/dist/campaign.fn-5silF1DK.js +758 -0
  48. package/dist/collectible.enum-cMIQ6ogq.js +19 -0
  49. package/dist/{collection.fn-D4QJRMAS.js → collection.fn-BGc7Qeli.js} +2 -2
  50. package/dist/dto-i04OPJfW.js +2018 -0
  51. package/dist/{effect-BT6zDeUe.js → effect-D8UzkYRg.js} +1 -1
  52. package/dist/{email-addresses-DeUE8GFC.js → email-addresses-u05o35hN.js} +1 -1
  53. package/dist/{export-DWzBynN8.js → export-BEXuPYEd.js} +3 -3
  54. package/dist/{helper-Cs4YpYv9.js → helper-RptRJGv6.js} +1 -1
  55. package/dist/{index-aFNPEkUz.js → index-B8s-gucK.js} +13 -1
  56. package/dist/{index-B3GqF_vh.js → index-BjHZUhiH.js} +1 -1
  57. package/dist/{index-BUXB-qmB.js → index-Bpu2DYUc.js} +1348 -1342
  58. package/dist/{index-n-_5f43h.js → index-C6-rCMhD.js} +3 -3
  59. package/dist/{index-CjF0scjl.js → index-Cq_ZIbRm.js} +174 -168
  60. package/dist/{index-CiwzD983.js → index-DFAnoAe9.js} +1 -1
  61. package/dist/index-DbyJ6Nyn.js +54 -0
  62. package/dist/{index-BXs-tqST.js → index-Dt6K2eG8.js} +1 -1
  63. package/dist/{index-xCMvgFRa.js → index-DwzoqCt8.js} +989 -783
  64. package/dist/index-UfL5qRzR.js +1049 -0
  65. package/dist/index-g8EbRVnr.js +32 -0
  66. package/dist/{index-DfhJOhMY.js → index-hEE_ntHd.js} +1 -1
  67. package/dist/index-vh86FiIQ.js +10 -0
  68. package/dist/{index.esm2017-cme_1dHU.js → index.esm2017-BSzW_yaL.js} +1 -1
  69. package/dist/{loading-zw44FQ6v.js → loading-DjEdwdnj.js} +156 -153
  70. package/dist/{membership-Bg77E5Sx.js → membership-BL9Xs8lD.js} +52 -44
  71. package/dist/{money-BepQPzrc.js → money-D7lq0cx-.js} +1 -1
  72. package/dist/{number-BJ4XIfGj.js → number-BiDabTkI.js} +1 -1
  73. package/dist/objectid-CXf0jb1W.js +145 -0
  74. package/dist/reward-Cr8rbe5R.js +36 -0
  75. package/dist/{rule-builder-C1Jwhs7N.js → rule-builder-DPKFZ5UX.js} +1 -1
  76. package/dist/{rule-oDZ1Kic9.js → rule-vkYJij4h.js} +4 -3
  77. package/dist/{template-CSeRj8B2.js → template-Bep5Y5ch.js} +4 -4
  78. package/dist/trigger-fWhQ3bqv.js +144 -0
  79. package/dist/{usePagination-DUaGlE2s.js → usePagination-DSF5b4hM.js} +1 -1
  80. package/dist/user-9UiaP0xs.js +54 -0
  81. package/dist/{vue-i18n-4eZqYBzI.js → vue-i18n-BhiDOB1j.js} +112 -112
  82. package/dist/zod-Bg2FbC-D.js +90 -0
  83. package/package.json +2 -2
  84. package/dist/Card--Q4OMSRz.js +0 -824
  85. package/dist/Mission-B215NI_F.js +0 -261
  86. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-C03bKqvg.js +0 -1804
  87. package/dist/Store-ada-EZLR.js +0 -1530
  88. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-Ra4nMKvT.js +0 -890
  89. package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-vsgeD3mK.js +0 -141
  90. package/dist/dto-CQy53qRe.js +0 -2770
  91. package/dist/index-CvJ_6M8U.js +0 -298
  92. package/dist/index-QAuJWbpX.js +0 -756
  93. package/dist/index-sGtk4oiO.js +0 -207
  94. package/dist/user-Bm4KttFq.js +0 -37
@@ -1,756 +0,0 @@
1
- import { z as e, F as n, e as D, m as p } from "./loading-zw44FQ6v.js";
2
- import { e as _, F as T, a as c, h as X, g as Z, j as d, k as Q, m as $ } from "./index-BUXB-qmB.js";
3
- import { b as L } from "./index-xCMvgFRa.js";
4
- import { d as P, e as ee } from "./index-sGtk4oiO.js";
5
- import { d as ne } from "./index-CvJ_6M8U.js";
6
- const S = e.enum([
7
- "VOUCHER",
8
- "PROMOTION",
9
- "POINT",
10
- "CREDIT",
11
- "MEMBERSHIP",
12
- "BROADCAST",
13
- "COIN",
14
- "REWARD_POOL",
15
- "GAME",
16
- "MISSION"
17
- ]), F = e.enum(["TIME_BASED_PROMOTION", "GAME_PROMOTION"]), Ve = {
18
- [F.enum.TIME_BASED_PROMOTION]: "7.7.4",
19
- [F.enum.GAME_PROMOTION]: "7.7.4"
20
- };
21
- e.object({
22
- location: n,
23
- memberId: n,
24
- nettTotal: D,
25
- remark: e.string().optional()
26
- });
27
- const te = e.enum(["COUNTER", "POS"]);
28
- e.object({
29
- id: e.string(),
30
- userId: e.string(),
31
- name: e.string().nullish(),
32
- birthday: e.string().nullish(),
33
- phoneNumber: e.string().nullish(),
34
- balance: e.number().nullish(),
35
- level: e.number().nullish(),
36
- mostPurchasedItems: e.array(e.string()).nullish()
37
- });
38
- const oe = {
39
- collectionName: "Bills"
40
- }, ie = e.object({
41
- _id: e.string(),
42
- items: e.record(e.string(), e.number()).nullish(),
43
- // business: z.string(),
44
- // adjustments: z.record(FdoBillAdjustment),
45
- // refundedFrom: z.string().nullish(),
46
- user: e.string().nullish(),
47
- memberid: e.string().nullish(),
48
- // roundToNearest: z.number().nullish(),
49
- nettTotal: D,
50
- // activeItems: z.array(z.string()),
51
- remark: e.string().nullish(),
52
- createdAt: e.coerce.date(),
53
- completedAt: e.coerce.date(),
54
- location: e.string(),
55
- channel: te.optional()
56
- }).transform((o) => ({
57
- ...o,
58
- createdTime: o.createdAt,
59
- completedTime: o.completedAt,
60
- get amount() {
61
- return o.nettTotal.amount / 10 ** o.nettTotal.precision;
62
- }
63
- })).describe(p.describe(oe)), ae = e.object({
64
- _id: e.string(),
65
- rating: e.coerce.number(),
66
- user: e.string(),
67
- restaurant: e.string(),
68
- message: e.string(),
69
- submittedAt: e.coerce.date()
70
- }), i = e.enum([
71
- "SIMPLE_CLAIM",
72
- "LINK_CLAIM",
73
- "BILL_COMPLETED",
74
- "SCHEDULE",
75
- "BIRTHDAY",
76
- "FEEDBACK",
77
- "ENTER_SEGMENT",
78
- "MEMBERSHIP_JOINED",
79
- "TIER_UPGRADED",
80
- "MAKING_ORDER",
81
- "ISSUE_REWARD",
82
- "MEMBER_REWARD",
83
- "GAME_COMPLETED",
84
- "PAGINATE_SCHEDULE"
85
- ]), Ke = i.extract([
86
- "BILL_COMPLETED",
87
- "FEEDBACK",
88
- "GAME_COMPLETED",
89
- "MAKING_ORDER",
90
- "MEMBERSHIP_JOINED",
91
- "SCHEDULE",
92
- "SIMPLE_CLAIM",
93
- "TIER_UPGRADED",
94
- "ISSUE_REWARD"
95
- ]);
96
- e.enum(["START_OF", "BEFORE"]);
97
- e.enum(["WEEK", "MONTH"]);
98
- const a = e.object({
99
- // type: F_EVENT_TYPE,
100
- rule: _.optional()
101
- }), se = a.extend({
102
- type: e.literal(i.enum.BILL_COMPLETED)
103
- }), le = a.extend({
104
- type: e.literal(i.enum.FEEDBACK)
105
- }), re = a.extend({
106
- type: e.literal(i.enum.SIMPLE_CLAIM)
107
- });
108
- a.extend({
109
- type: e.literal(i.enum.ENTER_SEGMENT),
110
- segment: e.string()
111
- });
112
- const ce = a.extend({
113
- type: e.literal(i.enum.MEMBER_REWARD)
114
- }), de = a.extend({
115
- type: e.literal(i.enum.SCHEDULE)
116
- // option: FdoCronRule,
117
- }), me = a.extend({
118
- type: e.literal(i.enum.MEMBERSHIP_JOINED)
119
- }), ue = a.extend({
120
- type: e.literal(i.enum.TIER_UPGRADED)
121
- }), pe = a.extend({
122
- type: e.literal(i.enum.MAKING_ORDER)
123
- }), Ee = a.extend({
124
- type: e.literal(i.enum.ISSUE_REWARD)
125
- }), ge = a.extend({
126
- type: e.literal(i.enum.GAME_COMPLETED)
127
- }), be = e.discriminatedUnion("type", [
128
- re,
129
- se,
130
- de,
131
- le,
132
- me,
133
- ue,
134
- pe,
135
- Ee,
136
- ce,
137
- ge
138
- ]);
139
- e.object({
140
- _id: n,
141
- type: i,
142
- ref: e.string(),
143
- context: e.record(e.string(), e.any()).optional()
144
- }).describe(JSON.stringify({ collectionName: "EventLogs" }));
145
- const m = e.object({
146
- type: i,
147
- context: e.any(),
148
- businessIds: e.array(n).optional(),
149
- campaignIds: e.array(n).optional(),
150
- slackWebhookUrl: e.string().optional(),
151
- emittedAt: e.coerce.date().default(/* @__PURE__ */ new Date())
152
- }), ye = m.extend({
153
- type: e.literal(i.enum.BILL_COMPLETED),
154
- context: e.object({
155
- bill: ie,
156
- rawBill: e.any()
157
- })
158
- }), Ce = m.extend({
159
- type: e.literal(i.enum.SCHEDULE),
160
- context: e.object({
161
- triggeredAt: e.coerce.date()
162
- })
163
- }), Re = m.extend({
164
- type: e.literal(i.enum.PAGINATE_SCHEDULE),
165
- context: e.object({
166
- triggeredAt: e.coerce.date(),
167
- business: n,
168
- skip: e.coerce.number(),
169
- limit: e.coerce.number()
170
- })
171
- }), _e = m.extend({
172
- type: e.literal(i.enum.FEEDBACK),
173
- context: e.object({
174
- feedback: ae
175
- })
176
- }), Ie = m.extend({
177
- type: e.literal(i.enum.MEMBERSHIP_JOINED),
178
- context: e.object({
179
- user: L
180
- })
181
- }), he = m.extend({
182
- type: e.literal(i.enum.TIER_UPGRADED),
183
- context: e.object({
184
- transaction: P
185
- })
186
- }), fe = m.extend({
187
- type: e.literal(i.enum.ISSUE_REWARD),
188
- context: e.object({
189
- transaction: P,
190
- collection: ee
191
- })
192
- });
193
- e.discriminatedUnion("type", [
194
- ye,
195
- Ce,
196
- _e,
197
- Ie,
198
- he,
199
- fe,
200
- Re
201
- ]);
202
- const Oe = e.object({
203
- from: e.coerce.number(),
204
- to: e.coerce.number().optional()
205
- }).superRefine((o, s) => {
206
- o.from && o.to && o.from > o.to && s.addIssue({
207
- code: "custom",
208
- message: "Max experience must be more than min experience"
209
- });
210
- }), Me = e.enum(["MULTIPLIER", "FIXED"]);
211
- e.object({
212
- type: Me
213
- });
214
- const Fe = e.object({
215
- _id: n.optional(),
216
- rule: _,
217
- tierExpression: e.string().nullish(),
218
- expExpression: e.string().nullish()
219
- }), I = e.object({
220
- _id: n,
221
- name: e.string().min(1),
222
- image: e.string().nullish(),
223
- option: Oe,
224
- cycleOptions: e.array(e.lazy(() => Fe)).nullish(),
225
- member_count: e.number().optional()
226
- });
227
- I.partial({
228
- _id: !0
229
- });
230
- const Je = I.partial({
231
- _id: !0
232
- }), Ae = {
233
- collectionName: "Cards",
234
- transform: {
235
- _id: "oid",
236
- business: "oid",
237
- member: "oid",
238
- redeemedAt: "date"
239
- },
240
- lookups: {
241
- business: {
242
- as: "business",
243
- fromCollection: "Business"
244
- },
245
- member: {
246
- as: "pf_member",
247
- fromCollection: "UsersV2"
248
- }
249
- }
250
- };
251
- e.object({
252
- _id: n,
253
- business: n,
254
- serialNumber: e.string(),
255
- setCardOnBind: e.boolean().nullish(),
256
- redeemedAt: e.date().nullish(),
257
- member: n.nullish(),
258
- design: e.string().nullish(),
259
- bundle: e.string().nullish(),
260
- subscriptionBundle: e.string().nullish(),
261
- pf_member: e.lazy(() => L).nullish(),
262
- pf_transaction: e.lazy(() => ne).nullish()
263
- }).describe(p.describe(Ae));
264
- const De = e.object({
265
- length: e.coerce.number().optional(),
266
- charset: e.string(),
267
- prefix: e.string().optional(),
268
- suffix: e.string().optional(),
269
- pattern: e.string().optional()
270
- });
271
- e.object({
272
- quantity: e.number(),
273
- code: e.string(),
274
- codeConfig: De,
275
- setCardOnBind: e.boolean().optional(),
276
- design: e.string().nullish(),
277
- bundle: e.string().optional(),
278
- subscriptionBundle: e.string().optional()
279
- });
280
- const Te = e.enum(["SMS", "WHATSAPP"]), E = e.object({
281
- channel: Te,
282
- variables: e.array(e.string()),
283
- content: e.string(),
284
- language: e.string(),
285
- imageUrl: e.string().optional()
286
- }).superRefine((o, s) => {
287
- o.content.length == 0 && s.addIssue({
288
- code: e.ZodIssueCode.custom,
289
- message: "Content is required"
290
- });
291
- const C = /{{(.*?)}}/g, R = [...o.content.matchAll(C)].map((u) => u[1]), M = o.variables, b = R.filter((u) => M.indexOf(u) < 0);
292
- b.length && s.addIssue({
293
- code: e.ZodIssueCode.custom,
294
- message: "Invalid variable(s): " + b.join(", ")
295
- });
296
- });
297
- function Ye(o, s) {
298
- return o.replace(/{{(.*?)}}/g, (C, R) => {
299
- const b = R.trim().split(".").reduce((u, q) => (u != null ? u[q] : null) ?? null, s);
300
- return b !== null ? b : C;
301
- });
302
- }
303
- const h = e.enum(["NO_REWARD", "VOUCHER", "LOYALTY"]), f = e.number().min(0, "Weight need to be at least 0"), x = e.number().int("Must be integer").min(0, "Threshold need to be at least 0"), N = e.object({
304
- type: e.literal(h.enum.NO_REWARD),
305
- collectible: e.null(),
306
- weight: f
307
- }), B = e.object({
308
- type: e.literal(h.enum.VOUCHER),
309
- collectible: n,
310
- collectibleConfig: e.lazy(() => T._def.right.options[0]),
311
- earningOption: e.lazy(() => c)
312
- }), O = e.object({
313
- type: e.literal(h.enum.LOYALTY),
314
- collectible: n,
315
- earningOption: e.lazy(() => c),
316
- validityOption: e.lazy(() => X)
317
- }), U = B.extend({
318
- weight: f
319
- }), j = O.extend({
320
- weight: e.number().min(0, "Weight need to be at least 0")
321
- }), qe = O.extend({
322
- validityOption: Z,
323
- weight: f
324
- }), Le = e.discriminatedUnion("type", [
325
- U,
326
- j,
327
- N
328
- ]), A = e.discriminatedUnion("type", [
329
- U.extend({
330
- collectible: n.nullish(),
331
- business: n.nullish()
332
- }),
333
- j.extend({
334
- collectible: n.nullish(),
335
- business: n.nullish()
336
- }),
337
- N
338
- ]), G = B.extend({
339
- threshold: x
340
- }), z = O.extend({
341
- threshold: x
342
- }), H = e.discriminatedUnion("type", [
343
- G,
344
- z
345
- ]), Pe = e.discriminatedUnion("type", [
346
- G.extend({
347
- collectible: n.nullish(),
348
- business: n.nullish()
349
- }),
350
- z.extend({
351
- collectible: n.nullish(),
352
- collectibleConfig: T.nullish(),
353
- business: n.nullish()
354
- })
355
- ]), Se = {
356
- collectionName: "Locations",
357
- transform: {
358
- _id: "oid",
359
- business: "oid"
360
- }
361
- }, v = e.object({
362
- _id: n,
363
- business: n,
364
- name: e.string(),
365
- code: e.string().nullish(),
366
- otp: e.string().nullish(),
367
- otpExpiredAt: e.coerce.date().nullish(),
368
- apiToken: e.string().nullish()
369
- }).describe(p.describe(Se));
370
- e.object({
371
- _id: n,
372
- name: e.string(),
373
- location: n,
374
- os: e.string(),
375
- apiToken: e.string().nullish()
376
- }).describe(p.describe({
377
- collectionName: "LocationDevices",
378
- transform: {
379
- _id: "oid",
380
- location: "oid"
381
- }
382
- }));
383
- const xe = e.enum(["PROGRESSIVE", "STAMP"]), Ne = e.object({
384
- type: xe,
385
- end: e.number().int().min(0, "Threshold need to be at least 1"),
386
- rewards: e.array(e.lazy(() => H)).nullish()
387
- }).superRefine((o, s) => {
388
- o.type == "STAMP" && o.end > 40 && (s.addIssue({
389
- code: "custom",
390
- path: [],
391
- message: "Stamp mission can have at most 40 threshold"
392
- }), s.addIssue({
393
- code: "custom",
394
- path: ["end"],
395
- message: "Stamp mission can have at most 40 threshold"
396
- }));
397
- }), Be = {
398
- collectionName: "Groups",
399
- transform: {
400
- _id: "oid",
401
- business: "oid"
402
- },
403
- lookups: {
404
- business: {
405
- fromCollection: "Businesses",
406
- as: "pf_business"
407
- },
408
- pf_campaigns: {
409
- fromCollection: "Campaigns",
410
- as: "pf_campaigns",
411
- localField: "_id",
412
- foreignField: "group"
413
- }
414
- }
415
- }, Xe = e.object({
416
- _id: n,
417
- name: e.string().min(1).max(300),
418
- business: n,
419
- pf_campaigns: e.array(e.any()).optional()
420
- }).describe(p.describe(Be)), Ue = e.object({
421
- type: e.literal(S.enum.MEMBERSHIP),
422
- business: n,
423
- name: e.string().min(1).max(50),
424
- image: e.string().nullish(),
425
- url: e.string().nullish(),
426
- tiers: e.array(e.lazy(() => I)),
427
- titles: e.array(n),
428
- tierCycleEnable: e.boolean().optional(),
429
- tierCycle: e.lazy(() => _).nullish(),
430
- welcomeMessage: E.optional(),
431
- advertisements: e.array(e.string()).optional(),
432
- cardEnable: e.boolean().optional(),
433
- design: e.array(
434
- e.object({
435
- _id: n,
436
- image: e.string()
437
- })
438
- ).optional(),
439
- targetLocation: e.array(n).nullish(),
440
- brand: e.string().nullish(),
441
- freeCreditAsDiscount: e.boolean().optional(),
442
- pf_title: e.array(e.lazy(() => d)).optional(),
443
- pf_targetLocation: e.array(e.lazy(() => v)).optional(),
444
- // new structure
445
- group: e.string().nullish(),
446
- templateId: n.nullish()
447
- }), t = S.exclude(["MEMBERSHIP"]), l = e.object({
448
- _id: n.nullish(),
449
- type: t,
450
- // common information
451
- business: n,
452
- name: e.string().min(1).max(50),
453
- image: e.string().nullish(),
454
- description: e.string().max(500).nullish(),
455
- timeframeOptions: Q.superRefine((o, s) => {
456
- o.start && o.end && o.end < o.start && s.addIssue({
457
- code: "custom",
458
- path: [],
459
- params: {
460
- i18n: { key: "timeframe.end_before_start" }
461
- }
462
- });
463
- }).nullish(),
464
- targetLocation: e.array(n).nullish(),
465
- event: be,
466
- config: $.nullish(),
467
- currentReceive: e.coerce.number().optional(),
468
- // new group structure
469
- group: n.nullish(),
470
- templateId: n.nullish(),
471
- pf_targetLocation: e.array(e.lazy(() => v)).optional()
472
- }), r = {
473
- [t.enum.VOUCHER]: [
474
- "BILL_COMPLETED",
475
- "FEEDBACK",
476
- "MEMBERSHIP_JOINED",
477
- "TIER_UPGRADED",
478
- "SCHEDULE",
479
- "SIMPLE_CLAIM"
480
- ],
481
- [t.enum.PROMOTION]: ["MAKING_ORDER"],
482
- [t.enum.POINT]: [
483
- "BILL_COMPLETED",
484
- "FEEDBACK",
485
- "MEMBERSHIP_JOINED",
486
- "TIER_UPGRADED",
487
- "SCHEDULE"
488
- ],
489
- [t.enum.CREDIT]: [
490
- "BILL_COMPLETED",
491
- "FEEDBACK",
492
- "MEMBERSHIP_JOINED",
493
- "TIER_UPGRADED",
494
- "SCHEDULE"
495
- ],
496
- [t.enum.BROADCAST]: [
497
- "SCHEDULE",
498
- "ISSUE_REWARD",
499
- "FEEDBACK"
500
- ],
501
- [t.enum.COIN]: [
502
- "BILL_COMPLETED",
503
- "FEEDBACK",
504
- "MEMBERSHIP_JOINED",
505
- "TIER_UPGRADED",
506
- "SCHEDULE"
507
- ],
508
- [t.enum.REWARD_POOL]: ["GAME_COMPLETED"],
509
- [t.enum.GAME]: [
510
- "BILL_COMPLETED",
511
- "FEEDBACK",
512
- "MEMBERSHIP_JOINED",
513
- "TIER_UPGRADED",
514
- "SCHEDULE",
515
- "SIMPLE_CLAIM"
516
- ],
517
- [t.enum.MISSION]: [
518
- "BILL_COMPLETED",
519
- "FEEDBACK",
520
- "SCHEDULE"
521
- ]
522
- }, w = l.extend({
523
- type: e.literal(t.enum.VOUCHER),
524
- // event
525
- code: e.string().min(0).max(15).optional(),
526
- event: a.merge(
527
- e.object({
528
- type: e.enum(r[t.enum.VOUCHER])
529
- })
530
- ),
531
- earningOption: c.default({
532
- amount: 1,
533
- type: "FIXED"
534
- }),
535
- collectible: n,
536
- hideInApp: e.boolean().optional(),
537
- notify: e.boolean().optional(),
538
- notifyMessage: e.lazy(() => E).optional(),
539
- notifyCampaign: n.nullish(),
540
- pf_collectible: e.lazy(() => d).optional(),
541
- pf_notifyCampaign: e.lazy(() => g).optional()
542
- }), je = e.object({
543
- gameType: e.string()
544
- }), k = l.extend({
545
- type: e.literal(t.enum.PROMOTION),
546
- // event
547
- event: a.merge(
548
- e.object({
549
- type: e.enum(r[t.enum.PROMOTION])
550
- })
551
- ),
552
- effect: e.custom().superRefine((o, s) => {
553
- o || s.addIssue({
554
- code: "custom",
555
- path: [],
556
- params: {
557
- i18n: { key: "zodCustom.campaign.effect_required" }
558
- }
559
- });
560
- }),
561
- gameConfig: je.nullish()
562
- }), W = l.extend({
563
- type: e.literal(t.enum.POINT),
564
- // event
565
- event: a.merge(
566
- e.object({
567
- type: e.enum(r[t.enum.POINT])
568
- })
569
- ),
570
- earningOption: c,
571
- collectible: n,
572
- notify: e.boolean().optional(),
573
- notifyMessage: e.lazy(() => E).optional(),
574
- notifyCampaign: n.nullish(),
575
- pf_collectible: e.lazy(() => d).optional(),
576
- pf_notifyCampaign: e.lazy(() => g).optional()
577
- }), V = l.extend({
578
- type: e.literal(t.enum.CREDIT),
579
- // event
580
- event: a.merge(
581
- e.object({
582
- type: e.enum(r[t.enum.CREDIT])
583
- })
584
- ),
585
- earningOption: c,
586
- collectible: n,
587
- notify: e.boolean().optional(),
588
- notifyMessage: e.lazy(() => E).optional(),
589
- notifyCampaign: n.nullish(),
590
- pf_collectible: e.lazy(() => d).optional(),
591
- pf_notifyCampaign: e.lazy(() => g).optional()
592
- }), g = l.extend({
593
- type: e.literal(t.enum.BROADCAST),
594
- // event
595
- event: a.merge(
596
- e.object({
597
- type: e.enum(r[t.enum.BROADCAST])
598
- })
599
- ),
600
- message: E,
601
- linkedCampaign: n.nullish()
602
- }), K = l.extend({
603
- type: e.literal(t.enum.COIN),
604
- // event
605
- event: a.merge(
606
- e.object({
607
- type: e.enum(r[t.enum.COIN])
608
- })
609
- ),
610
- earningOption: c,
611
- collectible: n,
612
- notify: e.boolean().optional(),
613
- notifyMessage: e.lazy(() => E).optional(),
614
- notifyCampaign: n.nullish(),
615
- pf_collectible: e.lazy(() => d).optional(),
616
- pf_notifyCampaign: e.lazy(() => g).optional()
617
- }), y = l.extend({
618
- type: e.literal(t.enum.REWARD_POOL),
619
- // event
620
- event: a.merge(
621
- e.object({
622
- type: e.enum(r[t.enum.REWARD_POOL])
623
- })
624
- ),
625
- rewards: e.array(e.lazy(() => Le)).min(1, "Requires at least 1 reward")
626
- }), J = l.extend({
627
- type: e.literal(t.enum.GAME),
628
- // event
629
- event: a.merge(
630
- e.object({
631
- type: e.enum(r[t.enum.GAME])
632
- })
633
- ),
634
- earningOption: c,
635
- collectible: n,
636
- game: e.lazy(() => y).optional(),
637
- pf_collectible: e.lazy(() => d).optional(),
638
- rewardPool: n.optional()
639
- }), Y = l.extend({
640
- type: e.literal(t.enum.MISSION),
641
- event: a.merge(
642
- e.object({
643
- type: e.enum(r[t.enum.MISSION])
644
- })
645
- ),
646
- earningOption: c,
647
- collectible: n,
648
- pf_collectible: e.lazy(() => d).optional(),
649
- mission: e.lazy(() => Ne),
650
- rewards: e.array(e.lazy(() => H)).min(1, "Requires at least 1 reward")
651
- }), Ge = {
652
- collectionName: "Campaigns",
653
- transform: {
654
- _id: "oid",
655
- business: "oid",
656
- collectible: "oid",
657
- templateId: "oid",
658
- group: "oid",
659
- notifyCampaign: "oid",
660
- linkedCampaign: "oid",
661
- rewardPool: "oid"
662
- },
663
- lookups: {
664
- business: {
665
- fromCollection: "Businesses",
666
- as: "pf_business"
667
- },
668
- targetLocation: {
669
- fromCollection: "Locations",
670
- as: "pf_targetLocation"
671
- },
672
- collectible: {
673
- fromCollection: "CollectibleConfigs",
674
- as: "pf_collectible"
675
- },
676
- titles: {
677
- fromCollection: "CollectibleConfigs",
678
- as: "pf_title"
679
- },
680
- templateId: {
681
- fromCollection: "Templates",
682
- as: "template"
683
- },
684
- notifyCampaign: {
685
- fromCollection: "Campaigns",
686
- as: "pf_notifyCampaign"
687
- },
688
- rewardPool: {
689
- fromCollection: "Campaigns",
690
- as: "game"
691
- }
692
- }
693
- }, Ze = e.object({ _id: n }).and(
694
- e.discriminatedUnion("type", [
695
- Ue,
696
- w,
697
- k,
698
- W,
699
- V,
700
- g,
701
- K,
702
- y,
703
- J,
704
- Y
705
- ])
706
- ).describe(p.describe(Ge)), Qe = e.discriminatedUnion("type", [
707
- w.extend({
708
- business: n.nullish()
709
- }),
710
- k.extend({
711
- business: n.nullish()
712
- }),
713
- W.extend({
714
- business: n.nullish()
715
- }),
716
- V.extend({
717
- business: n.nullish()
718
- }),
719
- g.extend({
720
- business: n.nullish()
721
- }),
722
- K.extend({
723
- business: n.nullish()
724
- }),
725
- y.extend({
726
- rewards: e.array(e.lazy(() => A)).min(1, "Requires at least 1 reward")
727
- }),
728
- J.extend({
729
- business: n.nullish(),
730
- game: y.extend({
731
- business: n.nullish(),
732
- rewards: e.array(e.lazy(() => A)).min(1, "Requires at least 1 reward")
733
- })
734
- }),
735
- Y.extend({
736
- business: n.nullish(),
737
- rewards: e.array(e.lazy(() => Pe)).min(1, "Requires at least 1 reward")
738
- })
739
- ]);
740
- export {
741
- r as C,
742
- Je as F,
743
- t as a,
744
- Ke as b,
745
- qe as c,
746
- A as d,
747
- xe as e,
748
- Pe as f,
749
- Ne as g,
750
- Ve as h,
751
- S as i,
752
- Xe as j,
753
- Qe as k,
754
- Ze as l,
755
- Ye as r
756
- };