@voyantjs/promotions 0.28.3

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 (44) hide show
  1. package/README.md +38 -0
  2. package/dist/events.d.ts +38 -0
  3. package/dist/events.d.ts.map +1 -0
  4. package/dist/events.js +25 -0
  5. package/dist/index.d.ts +11 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +16 -0
  8. package/dist/routes-shared.d.ts +14 -0
  9. package/dist/routes-shared.d.ts.map +1 -0
  10. package/dist/routes-shared.js +3 -0
  11. package/dist/routes.d.ts +345 -0
  12. package/dist/routes.d.ts.map +1 -0
  13. package/dist/routes.js +55 -0
  14. package/dist/schema.d.ts +655 -0
  15. package/dist/schema.d.ts.map +1 -0
  16. package/dist/schema.js +126 -0
  17. package/dist/service-booking-confirmed.d.ts +77 -0
  18. package/dist/service-booking-confirmed.d.ts.map +1 -0
  19. package/dist/service-booking-confirmed.js +134 -0
  20. package/dist/service-boundary-scheduler.d.ts +85 -0
  21. package/dist/service-boundary-scheduler.d.ts.map +1 -0
  22. package/dist/service-boundary-scheduler.js +141 -0
  23. package/dist/service-catalog-evaluator.d.ts +22 -0
  24. package/dist/service-catalog-evaluator.d.ts.map +1 -0
  25. package/dist/service-catalog-evaluator.js +33 -0
  26. package/dist/service-catalog-plane-promotions.d.ts +72 -0
  27. package/dist/service-catalog-plane-promotions.d.ts.map +1 -0
  28. package/dist/service-catalog-plane-promotions.js +119 -0
  29. package/dist/service-evaluator.d.ts +111 -0
  30. package/dist/service-evaluator.d.ts.map +1 -0
  31. package/dist/service-evaluator.js +264 -0
  32. package/dist/service-storefront.d.ts +40 -0
  33. package/dist/service-storefront.d.ts.map +1 -0
  34. package/dist/service-storefront.js +146 -0
  35. package/dist/service.d.ts +120 -0
  36. package/dist/service.d.ts.map +1 -0
  37. package/dist/service.js +296 -0
  38. package/dist/validation.d.ts +140 -0
  39. package/dist/validation.d.ts.map +1 -0
  40. package/dist/validation.js +134 -0
  41. package/dist/workflow-bulk-reindex.d.ts +55 -0
  42. package/dist/workflow-bulk-reindex.d.ts.map +1 -0
  43. package/dist/workflow-bulk-reindex.js +58 -0
  44. package/package.json +120 -0
@@ -0,0 +1,655 @@
1
+ /**
2
+ * Promotional offers schema — three tables backing the promotions module.
3
+ *
4
+ * Per docs/architecture/promotions-architecture.md §4:
5
+ * - `promotional_offers` (root): the offer header (name, discount type/value,
6
+ * scope JSONB, conditions JSONB, validity window, optional code).
7
+ * - `promotional_offer_products` (link): denormalized materialization of the
8
+ * offer's product set for the product-shaped scopes (`products`,
9
+ * `categories`, `destinations`). Slice-shaped scopes (`global`, `markets`,
10
+ * `audiences`) leave this table empty for that offer.
11
+ * - `promotional_offer_redemptions` (audit): one row per (offer, booking).
12
+ * Aggregated by the redemption recorder when a booking spans multiple
13
+ * line-item snapshots that share an applied offer.
14
+ *
15
+ * Cross-module FK rules: `product_id` and `booking_id` are plain `text`
16
+ * columns with no `.references()` per the cross-module decoupling rule
17
+ * (see docs/architecture/schema-discipline.md). Cross-module integrity is
18
+ * enforced at the service layer.
19
+ */
20
+ export declare const promotionalOfferDiscountTypeEnum: import("drizzle-orm/pg-core").PgEnum<["percentage", "fixed_amount"]>;
21
+ export type PromotionalOfferDiscountType = (typeof promotionalOfferDiscountTypeEnum.enumValues)[number];
22
+ export declare const promotionalOffers: import("drizzle-orm/pg-core").PgTableWithColumns<{
23
+ name: "promotional_offers";
24
+ schema: undefined;
25
+ columns: {
26
+ id: import("drizzle-orm/pg-core").PgColumn<{
27
+ name: string;
28
+ tableName: "promotional_offers";
29
+ dataType: "string";
30
+ columnType: "PgText";
31
+ data: string;
32
+ driverParam: string;
33
+ notNull: true;
34
+ hasDefault: true;
35
+ isPrimaryKey: true;
36
+ isAutoincrement: false;
37
+ hasRuntimeDefault: true;
38
+ enumValues: [string, ...string[]];
39
+ baseColumn: never;
40
+ identity: undefined;
41
+ generated: undefined;
42
+ }, {}, {}>;
43
+ name: import("drizzle-orm/pg-core").PgColumn<{
44
+ name: "name";
45
+ tableName: "promotional_offers";
46
+ dataType: "string";
47
+ columnType: "PgText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {}>;
60
+ slug: import("drizzle-orm/pg-core").PgColumn<{
61
+ name: "slug";
62
+ tableName: "promotional_offers";
63
+ dataType: "string";
64
+ columnType: "PgText";
65
+ data: string;
66
+ driverParam: string;
67
+ notNull: true;
68
+ hasDefault: false;
69
+ isPrimaryKey: false;
70
+ isAutoincrement: false;
71
+ hasRuntimeDefault: false;
72
+ enumValues: [string, ...string[]];
73
+ baseColumn: never;
74
+ identity: undefined;
75
+ generated: undefined;
76
+ }, {}, {}>;
77
+ description: import("drizzle-orm/pg-core").PgColumn<{
78
+ name: "description";
79
+ tableName: "promotional_offers";
80
+ dataType: "string";
81
+ columnType: "PgText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: false;
85
+ hasDefault: false;
86
+ isPrimaryKey: false;
87
+ isAutoincrement: false;
88
+ hasRuntimeDefault: false;
89
+ enumValues: [string, ...string[]];
90
+ baseColumn: never;
91
+ identity: undefined;
92
+ generated: undefined;
93
+ }, {}, {}>;
94
+ discountType: import("drizzle-orm/pg-core").PgColumn<{
95
+ name: "discount_type";
96
+ tableName: "promotional_offers";
97
+ dataType: "string";
98
+ columnType: "PgEnumColumn";
99
+ data: "percentage" | "fixed_amount";
100
+ driverParam: string;
101
+ notNull: true;
102
+ hasDefault: false;
103
+ isPrimaryKey: false;
104
+ isAutoincrement: false;
105
+ hasRuntimeDefault: false;
106
+ enumValues: ["percentage", "fixed_amount"];
107
+ baseColumn: never;
108
+ identity: undefined;
109
+ generated: undefined;
110
+ }, {}, {}>;
111
+ discountPercent: import("drizzle-orm/pg-core").PgColumn<{
112
+ name: "discount_percent";
113
+ tableName: "promotional_offers";
114
+ dataType: "string";
115
+ columnType: "PgNumeric";
116
+ data: string;
117
+ driverParam: string;
118
+ notNull: false;
119
+ hasDefault: false;
120
+ isPrimaryKey: false;
121
+ isAutoincrement: false;
122
+ hasRuntimeDefault: false;
123
+ enumValues: undefined;
124
+ baseColumn: never;
125
+ identity: undefined;
126
+ generated: undefined;
127
+ }, {}, {}>;
128
+ discountAmountCents: import("drizzle-orm/pg-core").PgColumn<{
129
+ name: "discount_amount_cents";
130
+ tableName: "promotional_offers";
131
+ dataType: "number";
132
+ columnType: "PgInteger";
133
+ data: number;
134
+ driverParam: string | number;
135
+ notNull: false;
136
+ hasDefault: false;
137
+ isPrimaryKey: false;
138
+ isAutoincrement: false;
139
+ hasRuntimeDefault: false;
140
+ enumValues: undefined;
141
+ baseColumn: never;
142
+ identity: undefined;
143
+ generated: undefined;
144
+ }, {}, {}>;
145
+ currency: import("drizzle-orm/pg-core").PgColumn<{
146
+ name: "currency";
147
+ tableName: "promotional_offers";
148
+ dataType: "string";
149
+ columnType: "PgText";
150
+ data: string;
151
+ driverParam: string;
152
+ notNull: false;
153
+ hasDefault: false;
154
+ isPrimaryKey: false;
155
+ isAutoincrement: false;
156
+ hasRuntimeDefault: false;
157
+ enumValues: [string, ...string[]];
158
+ baseColumn: never;
159
+ identity: undefined;
160
+ generated: undefined;
161
+ }, {}, {}>;
162
+ scope: import("drizzle-orm/pg-core").PgColumn<{
163
+ name: "scope";
164
+ tableName: "promotional_offers";
165
+ dataType: "json";
166
+ columnType: "PgJsonb";
167
+ data: {
168
+ kind: "global";
169
+ } | {
170
+ kind: "products";
171
+ productIds: string[];
172
+ } | {
173
+ kind: "categories";
174
+ categoryIds: string[];
175
+ } | {
176
+ kind: "destinations";
177
+ destinationIds: string[];
178
+ } | {
179
+ kind: "markets";
180
+ marketIds: string[];
181
+ } | {
182
+ kind: "audiences";
183
+ audiences: ("staff" | "customer" | "partner" | "supplier")[];
184
+ };
185
+ driverParam: unknown;
186
+ notNull: true;
187
+ hasDefault: false;
188
+ isPrimaryKey: false;
189
+ isAutoincrement: false;
190
+ hasRuntimeDefault: false;
191
+ enumValues: undefined;
192
+ baseColumn: never;
193
+ identity: undefined;
194
+ generated: undefined;
195
+ }, {}, {
196
+ $type: {
197
+ kind: "global";
198
+ } | {
199
+ kind: "products";
200
+ productIds: string[];
201
+ } | {
202
+ kind: "categories";
203
+ categoryIds: string[];
204
+ } | {
205
+ kind: "destinations";
206
+ destinationIds: string[];
207
+ } | {
208
+ kind: "markets";
209
+ marketIds: string[];
210
+ } | {
211
+ kind: "audiences";
212
+ audiences: ("staff" | "customer" | "partner" | "supplier")[];
213
+ };
214
+ }>;
215
+ conditions: import("drizzle-orm/pg-core").PgColumn<{
216
+ name: "conditions";
217
+ tableName: "promotional_offers";
218
+ dataType: "json";
219
+ columnType: "PgJsonb";
220
+ data: {
221
+ minPax?: number | undefined;
222
+ };
223
+ driverParam: unknown;
224
+ notNull: true;
225
+ hasDefault: true;
226
+ isPrimaryKey: false;
227
+ isAutoincrement: false;
228
+ hasRuntimeDefault: false;
229
+ enumValues: undefined;
230
+ baseColumn: never;
231
+ identity: undefined;
232
+ generated: undefined;
233
+ }, {}, {
234
+ $type: {
235
+ minPax?: number | undefined;
236
+ };
237
+ }>;
238
+ validFrom: import("drizzle-orm/pg-core").PgColumn<{
239
+ name: "valid_from";
240
+ tableName: "promotional_offers";
241
+ dataType: "date";
242
+ columnType: "PgTimestamp";
243
+ data: Date;
244
+ driverParam: string;
245
+ notNull: false;
246
+ hasDefault: false;
247
+ isPrimaryKey: false;
248
+ isAutoincrement: false;
249
+ hasRuntimeDefault: false;
250
+ enumValues: undefined;
251
+ baseColumn: never;
252
+ identity: undefined;
253
+ generated: undefined;
254
+ }, {}, {}>;
255
+ validUntil: import("drizzle-orm/pg-core").PgColumn<{
256
+ name: "valid_until";
257
+ tableName: "promotional_offers";
258
+ dataType: "date";
259
+ columnType: "PgTimestamp";
260
+ data: Date;
261
+ driverParam: string;
262
+ notNull: false;
263
+ hasDefault: false;
264
+ isPrimaryKey: false;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: false;
267
+ enumValues: undefined;
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ code: import("drizzle-orm/pg-core").PgColumn<{
273
+ name: "code";
274
+ tableName: "promotional_offers";
275
+ dataType: "string";
276
+ columnType: "PgText";
277
+ data: string;
278
+ driverParam: string;
279
+ notNull: false;
280
+ hasDefault: false;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: [string, ...string[]];
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ stackable: import("drizzle-orm/pg-core").PgColumn<{
290
+ name: "stackable";
291
+ tableName: "promotional_offers";
292
+ dataType: "boolean";
293
+ columnType: "PgBoolean";
294
+ data: boolean;
295
+ driverParam: boolean;
296
+ notNull: true;
297
+ hasDefault: true;
298
+ isPrimaryKey: false;
299
+ isAutoincrement: false;
300
+ hasRuntimeDefault: false;
301
+ enumValues: undefined;
302
+ baseColumn: never;
303
+ identity: undefined;
304
+ generated: undefined;
305
+ }, {}, {}>;
306
+ active: import("drizzle-orm/pg-core").PgColumn<{
307
+ name: "active";
308
+ tableName: "promotional_offers";
309
+ dataType: "boolean";
310
+ columnType: "PgBoolean";
311
+ data: boolean;
312
+ driverParam: boolean;
313
+ notNull: true;
314
+ hasDefault: true;
315
+ isPrimaryKey: false;
316
+ isAutoincrement: false;
317
+ hasRuntimeDefault: false;
318
+ enumValues: undefined;
319
+ baseColumn: never;
320
+ identity: undefined;
321
+ generated: undefined;
322
+ }, {}, {}>;
323
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
324
+ name: "metadata";
325
+ tableName: "promotional_offers";
326
+ dataType: "json";
327
+ columnType: "PgJsonb";
328
+ data: unknown;
329
+ driverParam: unknown;
330
+ notNull: false;
331
+ hasDefault: false;
332
+ isPrimaryKey: false;
333
+ isAutoincrement: false;
334
+ hasRuntimeDefault: false;
335
+ enumValues: undefined;
336
+ baseColumn: never;
337
+ identity: undefined;
338
+ generated: undefined;
339
+ }, {}, {}>;
340
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
341
+ name: "created_at";
342
+ tableName: "promotional_offers";
343
+ dataType: "date";
344
+ columnType: "PgTimestamp";
345
+ data: Date;
346
+ driverParam: string;
347
+ notNull: true;
348
+ hasDefault: true;
349
+ isPrimaryKey: false;
350
+ isAutoincrement: false;
351
+ hasRuntimeDefault: false;
352
+ enumValues: undefined;
353
+ baseColumn: never;
354
+ identity: undefined;
355
+ generated: undefined;
356
+ }, {}, {}>;
357
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
358
+ name: "updated_at";
359
+ tableName: "promotional_offers";
360
+ dataType: "date";
361
+ columnType: "PgTimestamp";
362
+ data: Date;
363
+ driverParam: string;
364
+ notNull: true;
365
+ hasDefault: true;
366
+ isPrimaryKey: false;
367
+ isAutoincrement: false;
368
+ hasRuntimeDefault: false;
369
+ enumValues: undefined;
370
+ baseColumn: never;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }, {}, {}>;
374
+ };
375
+ dialect: "pg";
376
+ }>;
377
+ /**
378
+ * Denormalized scope materialization. Populated by the service layer on
379
+ * offer create/update for `scope.kind ∈ {products, categories, destinations}`.
380
+ * The catalog projection joins against this table on the hot path.
381
+ *
382
+ * `product_id` is a plain text column — no Drizzle `.references()` per the
383
+ * cross-module decoupling rule.
384
+ */
385
+ export declare const promotionalOfferProducts: import("drizzle-orm/pg-core").PgTableWithColumns<{
386
+ name: "promotional_offer_products";
387
+ schema: undefined;
388
+ columns: {
389
+ offerId: import("drizzle-orm/pg-core").PgColumn<{
390
+ name: "offer_id";
391
+ tableName: "promotional_offer_products";
392
+ dataType: "string";
393
+ columnType: "PgText";
394
+ data: string;
395
+ driverParam: string;
396
+ notNull: true;
397
+ hasDefault: false;
398
+ isPrimaryKey: false;
399
+ isAutoincrement: false;
400
+ hasRuntimeDefault: false;
401
+ enumValues: [string, ...string[]];
402
+ baseColumn: never;
403
+ identity: undefined;
404
+ generated: undefined;
405
+ }, {}, {}>;
406
+ productId: import("drizzle-orm/pg-core").PgColumn<{
407
+ name: "product_id";
408
+ tableName: "promotional_offer_products";
409
+ dataType: "string";
410
+ columnType: "PgText";
411
+ data: string;
412
+ driverParam: string;
413
+ notNull: true;
414
+ hasDefault: false;
415
+ isPrimaryKey: false;
416
+ isAutoincrement: false;
417
+ hasRuntimeDefault: false;
418
+ enumValues: [string, ...string[]];
419
+ baseColumn: never;
420
+ identity: undefined;
421
+ generated: undefined;
422
+ }, {}, {}>;
423
+ };
424
+ dialect: "pg";
425
+ }>;
426
+ /**
427
+ * Per-booking redemption record. ON DELETE RESTRICT on `offer_id` so an
428
+ * offer with redemptions cannot be deleted (operators must archive instead).
429
+ *
430
+ * The `(offer_id, booking_id)` unique constraint enforces "one row per
431
+ * (offer, booking)" — the redemption recorder aggregates `discount_applied_cents`
432
+ * across multiple line-item snapshots that share an offer before inserting,
433
+ * and the recorder upsert (`ON CONFLICT … DO UPDATE`) is idempotent against
434
+ * subscriber retries.
435
+ */
436
+ export declare const promotionalOfferRedemptions: import("drizzle-orm/pg-core").PgTableWithColumns<{
437
+ name: "promotional_offer_redemptions";
438
+ schema: undefined;
439
+ columns: {
440
+ id: import("drizzle-orm/pg-core").PgColumn<{
441
+ name: string;
442
+ tableName: "promotional_offer_redemptions";
443
+ dataType: "string";
444
+ columnType: "PgText";
445
+ data: string;
446
+ driverParam: string;
447
+ notNull: true;
448
+ hasDefault: true;
449
+ isPrimaryKey: true;
450
+ isAutoincrement: false;
451
+ hasRuntimeDefault: true;
452
+ enumValues: [string, ...string[]];
453
+ baseColumn: never;
454
+ identity: undefined;
455
+ generated: undefined;
456
+ }, {}, {}>;
457
+ offerId: import("drizzle-orm/pg-core").PgColumn<{
458
+ name: "offer_id";
459
+ tableName: "promotional_offer_redemptions";
460
+ dataType: "string";
461
+ columnType: "PgText";
462
+ data: string;
463
+ driverParam: string;
464
+ notNull: true;
465
+ hasDefault: false;
466
+ isPrimaryKey: false;
467
+ isAutoincrement: false;
468
+ hasRuntimeDefault: false;
469
+ enumValues: [string, ...string[]];
470
+ baseColumn: never;
471
+ identity: undefined;
472
+ generated: undefined;
473
+ }, {}, {}>;
474
+ bookingId: import("drizzle-orm/pg-core").PgColumn<{
475
+ name: "booking_id";
476
+ tableName: "promotional_offer_redemptions";
477
+ dataType: "string";
478
+ columnType: "PgText";
479
+ data: string;
480
+ driverParam: string;
481
+ notNull: true;
482
+ hasDefault: false;
483
+ isPrimaryKey: false;
484
+ isAutoincrement: false;
485
+ hasRuntimeDefault: false;
486
+ enumValues: [string, ...string[]];
487
+ baseColumn: never;
488
+ identity: undefined;
489
+ generated: undefined;
490
+ }, {}, {}>;
491
+ codeUsed: import("drizzle-orm/pg-core").PgColumn<{
492
+ name: "code_used";
493
+ tableName: "promotional_offer_redemptions";
494
+ dataType: "string";
495
+ columnType: "PgText";
496
+ data: string;
497
+ driverParam: string;
498
+ notNull: false;
499
+ hasDefault: false;
500
+ isPrimaryKey: false;
501
+ isAutoincrement: false;
502
+ hasRuntimeDefault: false;
503
+ enumValues: [string, ...string[]];
504
+ baseColumn: never;
505
+ identity: undefined;
506
+ generated: undefined;
507
+ }, {}, {}>;
508
+ discountAppliedCents: import("drizzle-orm/pg-core").PgColumn<{
509
+ name: "discount_applied_cents";
510
+ tableName: "promotional_offer_redemptions";
511
+ dataType: "number";
512
+ columnType: "PgInteger";
513
+ data: number;
514
+ driverParam: string | number;
515
+ notNull: true;
516
+ hasDefault: false;
517
+ isPrimaryKey: false;
518
+ isAutoincrement: false;
519
+ hasRuntimeDefault: false;
520
+ enumValues: undefined;
521
+ baseColumn: never;
522
+ identity: undefined;
523
+ generated: undefined;
524
+ }, {}, {}>;
525
+ currency: import("drizzle-orm/pg-core").PgColumn<{
526
+ name: "currency";
527
+ tableName: "promotional_offer_redemptions";
528
+ dataType: "string";
529
+ columnType: "PgText";
530
+ data: string;
531
+ driverParam: string;
532
+ notNull: true;
533
+ hasDefault: false;
534
+ isPrimaryKey: false;
535
+ isAutoincrement: false;
536
+ hasRuntimeDefault: false;
537
+ enumValues: [string, ...string[]];
538
+ baseColumn: never;
539
+ identity: undefined;
540
+ generated: undefined;
541
+ }, {}, {}>;
542
+ redeemedAt: import("drizzle-orm/pg-core").PgColumn<{
543
+ name: "redeemed_at";
544
+ tableName: "promotional_offer_redemptions";
545
+ dataType: "date";
546
+ columnType: "PgTimestamp";
547
+ data: Date;
548
+ driverParam: string;
549
+ notNull: true;
550
+ hasDefault: true;
551
+ isPrimaryKey: false;
552
+ isAutoincrement: false;
553
+ hasRuntimeDefault: false;
554
+ enumValues: undefined;
555
+ baseColumn: never;
556
+ identity: undefined;
557
+ generated: undefined;
558
+ }, {}, {}>;
559
+ };
560
+ dialect: "pg";
561
+ }>;
562
+ export type PromotionalOffer = typeof promotionalOffers.$inferSelect;
563
+ export type NewPromotionalOffer = typeof promotionalOffers.$inferInsert;
564
+ export type PromotionalOfferProduct = typeof promotionalOfferProducts.$inferSelect;
565
+ export type NewPromotionalOfferProduct = typeof promotionalOfferProducts.$inferInsert;
566
+ export type PromotionalOfferRedemption = typeof promotionalOfferRedemptions.$inferSelect;
567
+ export type NewPromotionalOfferRedemption = typeof promotionalOfferRedemptions.$inferInsert;
568
+ /**
569
+ * Boundary-scheduler watermark — a single row tracking the last_tick the
570
+ * boundary scheduler observed. Per §9.2 of the architecture doc, the
571
+ * scheduler queries offers whose `valid_from` / `valid_until` falls
572
+ * BETWEEN `last_tick` and `now()` to detect lifecycle transitions.
573
+ *
574
+ * Single-row convention: rows are upserted with id = `BOUNDARY_SCHEDULER_STATE_ID`
575
+ * (typeid `pofs_default`). The unique constraint on `singleton_key` enforces
576
+ * "at most one row" defensively even if a future caller forgot the convention.
577
+ */
578
+ export declare const promotionalOfferSchedulerState: import("drizzle-orm/pg-core").PgTableWithColumns<{
579
+ name: "promotional_offer_scheduler_state";
580
+ schema: undefined;
581
+ columns: {
582
+ id: import("drizzle-orm/pg-core").PgColumn<{
583
+ name: string;
584
+ tableName: "promotional_offer_scheduler_state";
585
+ dataType: "string";
586
+ columnType: "PgText";
587
+ data: string;
588
+ driverParam: string;
589
+ notNull: true;
590
+ hasDefault: true;
591
+ isPrimaryKey: true;
592
+ isAutoincrement: false;
593
+ hasRuntimeDefault: true;
594
+ enumValues: [string, ...string[]];
595
+ baseColumn: never;
596
+ identity: undefined;
597
+ generated: undefined;
598
+ }, {}, {}>;
599
+ singletonKey: import("drizzle-orm/pg-core").PgColumn<{
600
+ name: "singleton_key";
601
+ tableName: "promotional_offer_scheduler_state";
602
+ dataType: "string";
603
+ columnType: "PgText";
604
+ data: string;
605
+ driverParam: string;
606
+ notNull: true;
607
+ hasDefault: true;
608
+ isPrimaryKey: false;
609
+ isAutoincrement: false;
610
+ hasRuntimeDefault: false;
611
+ enumValues: [string, ...string[]];
612
+ baseColumn: never;
613
+ identity: undefined;
614
+ generated: undefined;
615
+ }, {}, {}>;
616
+ lastTick: import("drizzle-orm/pg-core").PgColumn<{
617
+ name: "last_tick";
618
+ tableName: "promotional_offer_scheduler_state";
619
+ dataType: "date";
620
+ columnType: "PgTimestamp";
621
+ data: Date;
622
+ driverParam: string;
623
+ notNull: true;
624
+ hasDefault: false;
625
+ isPrimaryKey: false;
626
+ isAutoincrement: false;
627
+ hasRuntimeDefault: false;
628
+ enumValues: undefined;
629
+ baseColumn: never;
630
+ identity: undefined;
631
+ generated: undefined;
632
+ }, {}, {}>;
633
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
634
+ name: "updated_at";
635
+ tableName: "promotional_offer_scheduler_state";
636
+ dataType: "date";
637
+ columnType: "PgTimestamp";
638
+ data: Date;
639
+ driverParam: string;
640
+ notNull: true;
641
+ hasDefault: true;
642
+ isPrimaryKey: false;
643
+ isAutoincrement: false;
644
+ hasRuntimeDefault: false;
645
+ enumValues: undefined;
646
+ baseColumn: never;
647
+ identity: undefined;
648
+ generated: undefined;
649
+ }, {}, {}>;
650
+ };
651
+ dialect: "pg";
652
+ }>;
653
+ export type PromotionalOfferSchedulerState = typeof promotionalOfferSchedulerState.$inferSelect;
654
+ export type NewPromotionalOfferSchedulerState = typeof promotionalOfferSchedulerState.$inferInsert;
655
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAoBH,eAAO,MAAM,gCAAgC,sEAG3C,CAAA;AAEF,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,gCAAgC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2C7B,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYpC,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBvC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACpE,MAAM,MAAM,mBAAmB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAA;AACvE,MAAM,MAAM,uBAAuB,GAAG,OAAO,wBAAwB,CAAC,YAAY,CAAA;AAClF,MAAM,MAAM,0BAA0B,GAAG,OAAO,wBAAwB,CAAC,YAAY,CAAA;AACrF,MAAM,MAAM,0BAA0B,GAAG,OAAO,2BAA2B,CAAC,YAAY,CAAA;AACxF,MAAM,MAAM,6BAA6B,GAAG,OAAO,2BAA2B,CAAC,YAAY,CAAA;AAE3F;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc1C,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAC,YAAY,CAAA;AAC/F,MAAM,MAAM,iCAAiC,GAAG,OAAO,8BAA8B,CAAC,YAAY,CAAA"}