@saasicat/adapter-drizzle 0.4.0

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.
@@ -0,0 +1,2750 @@
1
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
+ import { PgDatabase, PgQueryResultHKT } from 'drizzle-orm/pg-core';
3
+ import { PersistenceInjectionToken, PasswordHasher, SaasicatPersistenceAdapter, TransactionRunner, TransactionContext, MfaPort, AuditPort, AdminActor, AuditQueryPort, AuditQuery, AuditEntry, AuditStatsPort, RlsBypassPort, SubscriptionRepository, SubscriptionRecord, PlanVersionRepository, PlanVersionRecord, PromoCodeRepository, PromoCodeRecord, PromoCodeFilter, CreatePromoCodeData, UpdatePromoCodeData, PromoCodeRedemptionRepository, PromoCodeRedemptionRecord, PromoCodeRedemptionStatus, PromoCodeRedemptionListItem, PromoCodeValidationLogRepository, PromoSubscriptionLookup, BillingCycle, PromoRevenueDeductionAggregator, SuperAdminProvisioningPort, CreateSuperAdminCliInput, PlatformUserDto, PlanCatalogReadSink, PlanCatalogReadSnapshot, PlanCatalogImportSink, UpsertPlanInput, UpsertResult, UpsertPlanVersionInput, UpsertFeatureCatalogEntryInput } from '@saasicat/types';
4
+ import * as drizzle_orm from 'drizzle-orm';
5
+
6
+ /**
7
+ * DI token to which the consumer binds their Drizzle database instance. With
8
+ * the `drizzlePersistence({ db })` bundle the binding happens implicitly;
9
+ * the token remains for manual wiring:
10
+ *
11
+ * ```ts
12
+ * providers: [
13
+ * { provide: DRIZZLE_DB_TOKEN, useValue: drizzle(pool) },
14
+ * DrizzleMfaAdapter,
15
+ * // ...
16
+ * ];
17
+ * ```
18
+ */
19
+ declare const DRIZZLE_DB_TOKEN: unique symbol;
20
+ /**
21
+ * Any Drizzle PostgreSQL database — driver-independent (node-postgres,
22
+ * postgres.js, …). The adapters only use the pg-core query builder plus
23
+ * `transaction()`, both shared by every driver.
24
+ */
25
+ type DrizzleClient = PgDatabase<PgQueryResultHKT, any, any>;
26
+
27
+ interface DrizzlePersistenceOptions {
28
+ /**
29
+ * The app's Drizzle database: either a ready instance
30
+ * (`drizzle(pool)` — typical, since Drizzle setups rarely wrap the db in
31
+ * a Nest provider) or its injection token when the app registers one.
32
+ */
33
+ db: DrizzleClient | PersistenceInjectionToken;
34
+ /**
35
+ * App `PasswordHasher` (token or instance). Enables
36
+ * `core.superAdminProvisioning` (setup wizard / create-super-admin);
37
+ * without it the slice member stays absent.
38
+ */
39
+ passwordHasher?: PasswordHasher | PersistenceInjectionToken;
40
+ /**
41
+ * Set to true when the app's database layer really lifts RLS
42
+ * (`SET LOCAL row_security = off`) while
43
+ * `AsyncLocalRlsBypassAdapter.isBypassActive()`. Only toggles the
44
+ * declared `rowLevelSecurity` capability. Default false.
45
+ */
46
+ rlsIntegration?: boolean;
47
+ }
48
+ /**
49
+ * Builds the `SaasicatPersistenceAdapter` bundle for Drizzle + PostgreSQL on
50
+ * the canonical schema (`@saasicat/spec` reference SQL):
51
+ *
52
+ * ```ts
53
+ * const db = drizzle(new Pool({ connectionString: process.env.DATABASE_URL }));
54
+ *
55
+ * SaasPlatformModule.forRoot({
56
+ * persistence: drizzlePersistence({ db }),
57
+ * // ...
58
+ * });
59
+ * ```
60
+ *
61
+ * Slices not shipped by this adapter (contracts, bundles, registration,
62
+ * tenant-billing write ports) stay absent — identical to adapter-prisma;
63
+ * both adapters pass the same `@saasicat/persistence-testing` contract.
64
+ */
65
+ declare function drizzlePersistence(options: DrizzlePersistenceOptions): SaasicatPersistenceAdapter;
66
+
67
+ declare const subscriptions: drizzle_orm_pg_core.PgTableWithColumns<{
68
+ name: "subscriptions";
69
+ schema: undefined;
70
+ columns: {
71
+ id: drizzle_orm_pg_core.PgColumn<{
72
+ name: "id";
73
+ tableName: "subscriptions";
74
+ dataType: "string";
75
+ columnType: "PgText";
76
+ data: string;
77
+ driverParam: string;
78
+ notNull: true;
79
+ hasDefault: false;
80
+ isPrimaryKey: true;
81
+ isAutoincrement: false;
82
+ hasRuntimeDefault: false;
83
+ enumValues: [string, ...string[]];
84
+ baseColumn: never;
85
+ identity: undefined;
86
+ generated: undefined;
87
+ }, {}, {}>;
88
+ tenantId: drizzle_orm_pg_core.PgColumn<{
89
+ name: "tenantId";
90
+ tableName: "subscriptions";
91
+ dataType: "string";
92
+ columnType: "PgText";
93
+ data: string;
94
+ driverParam: string;
95
+ notNull: true;
96
+ hasDefault: false;
97
+ isPrimaryKey: false;
98
+ isAutoincrement: false;
99
+ hasRuntimeDefault: false;
100
+ enumValues: [string, ...string[]];
101
+ baseColumn: never;
102
+ identity: undefined;
103
+ generated: undefined;
104
+ }, {}, {}>;
105
+ plan: drizzle_orm_pg_core.PgColumn<{
106
+ name: "plan";
107
+ tableName: "subscriptions";
108
+ dataType: "string";
109
+ columnType: "PgText";
110
+ data: string;
111
+ driverParam: string;
112
+ notNull: true;
113
+ hasDefault: false;
114
+ isPrimaryKey: false;
115
+ isAutoincrement: false;
116
+ hasRuntimeDefault: false;
117
+ enumValues: [string, ...string[]];
118
+ baseColumn: never;
119
+ identity: undefined;
120
+ generated: undefined;
121
+ }, {}, {}>;
122
+ billingCycle: drizzle_orm_pg_core.PgColumn<{
123
+ name: "billingCycle";
124
+ tableName: "subscriptions";
125
+ dataType: "string";
126
+ columnType: "PgText";
127
+ data: string;
128
+ driverParam: string;
129
+ notNull: true;
130
+ hasDefault: true;
131
+ isPrimaryKey: false;
132
+ isAutoincrement: false;
133
+ hasRuntimeDefault: false;
134
+ enumValues: [string, ...string[]];
135
+ baseColumn: never;
136
+ identity: undefined;
137
+ generated: undefined;
138
+ }, {}, {}>;
139
+ status: drizzle_orm_pg_core.PgColumn<{
140
+ name: "status";
141
+ tableName: "subscriptions";
142
+ dataType: "string";
143
+ columnType: "PgText";
144
+ data: string;
145
+ driverParam: string;
146
+ notNull: true;
147
+ hasDefault: true;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: [string, ...string[]];
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}, {}>;
156
+ trialEntitlementPlan: drizzle_orm_pg_core.PgColumn<{
157
+ name: "trialEntitlementPlan";
158
+ tableName: "subscriptions";
159
+ dataType: "string";
160
+ columnType: "PgText";
161
+ data: string;
162
+ driverParam: string;
163
+ notNull: false;
164
+ hasDefault: false;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: [string, ...string[]];
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}, {}>;
173
+ pendingPlan: drizzle_orm_pg_core.PgColumn<{
174
+ name: "pendingPlan";
175
+ tableName: "subscriptions";
176
+ dataType: "string";
177
+ columnType: "PgText";
178
+ data: string;
179
+ driverParam: string;
180
+ notNull: false;
181
+ hasDefault: false;
182
+ isPrimaryKey: false;
183
+ isAutoincrement: false;
184
+ hasRuntimeDefault: false;
185
+ enumValues: [string, ...string[]];
186
+ baseColumn: never;
187
+ identity: undefined;
188
+ generated: undefined;
189
+ }, {}, {}>;
190
+ pendingEffectiveAt: drizzle_orm_pg_core.PgColumn<{
191
+ name: string;
192
+ tableName: "subscriptions";
193
+ dataType: "date";
194
+ columnType: "PgTimestamp";
195
+ data: Date;
196
+ driverParam: string;
197
+ notNull: false;
198
+ hasDefault: false;
199
+ isPrimaryKey: false;
200
+ isAutoincrement: false;
201
+ hasRuntimeDefault: false;
202
+ enumValues: undefined;
203
+ baseColumn: never;
204
+ identity: undefined;
205
+ generated: undefined;
206
+ }, {}, {}>;
207
+ customLimits: drizzle_orm_pg_core.PgColumn<{
208
+ name: "customLimits";
209
+ tableName: "subscriptions";
210
+ dataType: "json";
211
+ columnType: "PgJsonb";
212
+ data: unknown;
213
+ driverParam: unknown;
214
+ notNull: false;
215
+ hasDefault: false;
216
+ isPrimaryKey: false;
217
+ isAutoincrement: false;
218
+ hasRuntimeDefault: false;
219
+ enumValues: undefined;
220
+ baseColumn: never;
221
+ identity: undefined;
222
+ generated: undefined;
223
+ }, {}, {}>;
224
+ planVersionId: drizzle_orm_pg_core.PgColumn<{
225
+ name: "planVersionId";
226
+ tableName: "subscriptions";
227
+ dataType: "string";
228
+ columnType: "PgText";
229
+ data: string;
230
+ driverParam: string;
231
+ notNull: false;
232
+ hasDefault: false;
233
+ isPrimaryKey: false;
234
+ isAutoincrement: false;
235
+ hasRuntimeDefault: false;
236
+ enumValues: [string, ...string[]];
237
+ baseColumn: never;
238
+ identity: undefined;
239
+ generated: undefined;
240
+ }, {}, {}>;
241
+ pendingPlanVersionId: drizzle_orm_pg_core.PgColumn<{
242
+ name: "pendingPlanVersionId";
243
+ tableName: "subscriptions";
244
+ dataType: "string";
245
+ columnType: "PgText";
246
+ data: string;
247
+ driverParam: string;
248
+ notNull: false;
249
+ hasDefault: false;
250
+ isPrimaryKey: false;
251
+ isAutoincrement: false;
252
+ hasRuntimeDefault: false;
253
+ enumValues: [string, ...string[]];
254
+ baseColumn: never;
255
+ identity: undefined;
256
+ generated: undefined;
257
+ }, {}, {}>;
258
+ isPilot: drizzle_orm_pg_core.PgColumn<{
259
+ name: "isPilot";
260
+ tableName: "subscriptions";
261
+ dataType: "boolean";
262
+ columnType: "PgBoolean";
263
+ data: boolean;
264
+ driverParam: boolean;
265
+ notNull: true;
266
+ hasDefault: true;
267
+ isPrimaryKey: false;
268
+ isAutoincrement: false;
269
+ hasRuntimeDefault: false;
270
+ enumValues: undefined;
271
+ baseColumn: never;
272
+ identity: undefined;
273
+ generated: undefined;
274
+ }, {}, {}>;
275
+ startedAt: drizzle_orm_pg_core.PgColumn<{
276
+ name: string;
277
+ tableName: "subscriptions";
278
+ dataType: "date";
279
+ columnType: "PgTimestamp";
280
+ data: Date;
281
+ driverParam: string;
282
+ notNull: false;
283
+ hasDefault: false;
284
+ isPrimaryKey: false;
285
+ isAutoincrement: false;
286
+ hasRuntimeDefault: false;
287
+ enumValues: undefined;
288
+ baseColumn: never;
289
+ identity: undefined;
290
+ generated: undefined;
291
+ }, {}, {}>;
292
+ createdAt: drizzle_orm_pg_core.PgColumn<{
293
+ name: string;
294
+ tableName: "subscriptions";
295
+ dataType: "date";
296
+ columnType: "PgTimestamp";
297
+ data: Date;
298
+ driverParam: string;
299
+ notNull: true;
300
+ hasDefault: true;
301
+ isPrimaryKey: false;
302
+ isAutoincrement: false;
303
+ hasRuntimeDefault: false;
304
+ enumValues: undefined;
305
+ baseColumn: never;
306
+ identity: undefined;
307
+ generated: undefined;
308
+ }, {}, {}>;
309
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
310
+ name: string;
311
+ tableName: "subscriptions";
312
+ dataType: "date";
313
+ columnType: "PgTimestamp";
314
+ data: Date;
315
+ driverParam: string;
316
+ notNull: true;
317
+ hasDefault: false;
318
+ isPrimaryKey: false;
319
+ isAutoincrement: false;
320
+ hasRuntimeDefault: false;
321
+ enumValues: undefined;
322
+ baseColumn: never;
323
+ identity: undefined;
324
+ generated: undefined;
325
+ }, {}, {}>;
326
+ };
327
+ dialect: "pg";
328
+ }>;
329
+ declare const planVersions: drizzle_orm_pg_core.PgTableWithColumns<{
330
+ name: "plan_versions";
331
+ schema: undefined;
332
+ columns: {
333
+ id: drizzle_orm_pg_core.PgColumn<{
334
+ name: "id";
335
+ tableName: "plan_versions";
336
+ dataType: "string";
337
+ columnType: "PgText";
338
+ data: string;
339
+ driverParam: string;
340
+ notNull: true;
341
+ hasDefault: false;
342
+ isPrimaryKey: true;
343
+ isAutoincrement: false;
344
+ hasRuntimeDefault: false;
345
+ enumValues: [string, ...string[]];
346
+ baseColumn: never;
347
+ identity: undefined;
348
+ generated: undefined;
349
+ }, {}, {}>;
350
+ planId: drizzle_orm_pg_core.PgColumn<{
351
+ name: "planId";
352
+ tableName: "plan_versions";
353
+ dataType: "string";
354
+ columnType: "PgText";
355
+ data: string;
356
+ driverParam: string;
357
+ notNull: true;
358
+ hasDefault: false;
359
+ isPrimaryKey: false;
360
+ isAutoincrement: false;
361
+ hasRuntimeDefault: false;
362
+ enumValues: [string, ...string[]];
363
+ baseColumn: never;
364
+ identity: undefined;
365
+ generated: undefined;
366
+ }, {}, {}>;
367
+ version: drizzle_orm_pg_core.PgColumn<{
368
+ name: "version";
369
+ tableName: "plan_versions";
370
+ dataType: "number";
371
+ columnType: "PgInteger";
372
+ data: number;
373
+ driverParam: string | number;
374
+ notNull: true;
375
+ hasDefault: false;
376
+ isPrimaryKey: false;
377
+ isAutoincrement: false;
378
+ hasRuntimeDefault: false;
379
+ enumValues: undefined;
380
+ baseColumn: never;
381
+ identity: undefined;
382
+ generated: undefined;
383
+ }, {}, {}>;
384
+ baseVersionId: drizzle_orm_pg_core.PgColumn<{
385
+ name: "baseVersionId";
386
+ tableName: "plan_versions";
387
+ dataType: "string";
388
+ columnType: "PgText";
389
+ data: string;
390
+ driverParam: string;
391
+ notNull: false;
392
+ hasDefault: false;
393
+ isPrimaryKey: false;
394
+ isAutoincrement: false;
395
+ hasRuntimeDefault: false;
396
+ enumValues: [string, ...string[]];
397
+ baseColumn: never;
398
+ identity: undefined;
399
+ generated: undefined;
400
+ }, {}, {}>;
401
+ features: drizzle_orm_pg_core.PgColumn<{
402
+ name: "features";
403
+ tableName: "plan_versions";
404
+ dataType: "json";
405
+ columnType: "PgJsonb";
406
+ data: unknown;
407
+ driverParam: unknown;
408
+ notNull: true;
409
+ hasDefault: false;
410
+ isPrimaryKey: false;
411
+ isAutoincrement: false;
412
+ hasRuntimeDefault: false;
413
+ enumValues: undefined;
414
+ baseColumn: never;
415
+ identity: undefined;
416
+ generated: undefined;
417
+ }, {}, {}>;
418
+ quotas: drizzle_orm_pg_core.PgColumn<{
419
+ name: "quotas";
420
+ tableName: "plan_versions";
421
+ dataType: "json";
422
+ columnType: "PgJsonb";
423
+ data: unknown;
424
+ driverParam: unknown;
425
+ notNull: true;
426
+ hasDefault: false;
427
+ isPrimaryKey: false;
428
+ isAutoincrement: false;
429
+ hasRuntimeDefault: false;
430
+ enumValues: undefined;
431
+ baseColumn: never;
432
+ identity: undefined;
433
+ generated: undefined;
434
+ }, {}, {}>;
435
+ monthlyNet: drizzle_orm_pg_core.PgColumn<{
436
+ name: "monthlyNet";
437
+ tableName: "plan_versions";
438
+ dataType: "string";
439
+ columnType: "PgNumeric";
440
+ data: string;
441
+ driverParam: string;
442
+ notNull: true;
443
+ hasDefault: false;
444
+ isPrimaryKey: false;
445
+ isAutoincrement: false;
446
+ hasRuntimeDefault: false;
447
+ enumValues: undefined;
448
+ baseColumn: never;
449
+ identity: undefined;
450
+ generated: undefined;
451
+ }, {}, {}>;
452
+ yearlyNet: drizzle_orm_pg_core.PgColumn<{
453
+ name: "yearlyNet";
454
+ tableName: "plan_versions";
455
+ dataType: "string";
456
+ columnType: "PgNumeric";
457
+ data: string;
458
+ driverParam: string;
459
+ notNull: true;
460
+ hasDefault: false;
461
+ isPrimaryKey: false;
462
+ isAutoincrement: false;
463
+ hasRuntimeDefault: false;
464
+ enumValues: undefined;
465
+ baseColumn: never;
466
+ identity: undefined;
467
+ generated: undefined;
468
+ }, {}, {}>;
469
+ marketed: drizzle_orm_pg_core.PgColumn<{
470
+ name: "marketed";
471
+ tableName: "plan_versions";
472
+ dataType: "boolean";
473
+ columnType: "PgBoolean";
474
+ data: boolean;
475
+ driverParam: boolean;
476
+ notNull: true;
477
+ hasDefault: true;
478
+ isPrimaryKey: false;
479
+ isAutoincrement: false;
480
+ hasRuntimeDefault: false;
481
+ enumValues: undefined;
482
+ baseColumn: never;
483
+ identity: undefined;
484
+ generated: undefined;
485
+ }, {}, {}>;
486
+ publishedAt: drizzle_orm_pg_core.PgColumn<{
487
+ name: string;
488
+ tableName: "plan_versions";
489
+ dataType: "date";
490
+ columnType: "PgTimestamp";
491
+ data: Date;
492
+ driverParam: string;
493
+ notNull: false;
494
+ hasDefault: false;
495
+ isPrimaryKey: false;
496
+ isAutoincrement: false;
497
+ hasRuntimeDefault: false;
498
+ enumValues: undefined;
499
+ baseColumn: never;
500
+ identity: undefined;
501
+ generated: undefined;
502
+ }, {}, {}>;
503
+ supersededAt: drizzle_orm_pg_core.PgColumn<{
504
+ name: string;
505
+ tableName: "plan_versions";
506
+ dataType: "date";
507
+ columnType: "PgTimestamp";
508
+ data: Date;
509
+ driverParam: string;
510
+ notNull: false;
511
+ hasDefault: false;
512
+ isPrimaryKey: false;
513
+ isAutoincrement: false;
514
+ hasRuntimeDefault: false;
515
+ enumValues: undefined;
516
+ baseColumn: never;
517
+ identity: undefined;
518
+ generated: undefined;
519
+ }, {}, {}>;
520
+ publishedChanges: drizzle_orm_pg_core.PgColumn<{
521
+ name: "publishedChanges";
522
+ tableName: "plan_versions";
523
+ dataType: "json";
524
+ columnType: "PgJsonb";
525
+ data: unknown;
526
+ driverParam: unknown;
527
+ notNull: false;
528
+ hasDefault: false;
529
+ isPrimaryKey: false;
530
+ isAutoincrement: false;
531
+ hasRuntimeDefault: false;
532
+ enumValues: undefined;
533
+ baseColumn: never;
534
+ identity: undefined;
535
+ generated: undefined;
536
+ }, {}, {}>;
537
+ changeNote: drizzle_orm_pg_core.PgColumn<{
538
+ name: "changeNote";
539
+ tableName: "plan_versions";
540
+ dataType: "string";
541
+ columnType: "PgText";
542
+ data: string;
543
+ driverParam: string;
544
+ notNull: true;
545
+ hasDefault: false;
546
+ isPrimaryKey: false;
547
+ isAutoincrement: false;
548
+ hasRuntimeDefault: false;
549
+ enumValues: [string, ...string[]];
550
+ baseColumn: never;
551
+ identity: undefined;
552
+ generated: undefined;
553
+ }, {}, {}>;
554
+ nonRegressive: drizzle_orm_pg_core.PgColumn<{
555
+ name: "nonRegressive";
556
+ tableName: "plan_versions";
557
+ dataType: "boolean";
558
+ columnType: "PgBoolean";
559
+ data: boolean;
560
+ driverParam: boolean;
561
+ notNull: true;
562
+ hasDefault: true;
563
+ isPrimaryKey: false;
564
+ isAutoincrement: false;
565
+ hasRuntimeDefault: false;
566
+ enumValues: undefined;
567
+ baseColumn: never;
568
+ identity: undefined;
569
+ generated: undefined;
570
+ }, {}, {}>;
571
+ createdByUserId: drizzle_orm_pg_core.PgColumn<{
572
+ name: "createdByUserId";
573
+ tableName: "plan_versions";
574
+ dataType: "string";
575
+ columnType: "PgText";
576
+ data: string;
577
+ driverParam: string;
578
+ notNull: false;
579
+ hasDefault: false;
580
+ isPrimaryKey: false;
581
+ isAutoincrement: false;
582
+ hasRuntimeDefault: false;
583
+ enumValues: [string, ...string[]];
584
+ baseColumn: never;
585
+ identity: undefined;
586
+ generated: undefined;
587
+ }, {}, {}>;
588
+ publishedByUserId: drizzle_orm_pg_core.PgColumn<{
589
+ name: "publishedByUserId";
590
+ tableName: "plan_versions";
591
+ dataType: "string";
592
+ columnType: "PgText";
593
+ data: string;
594
+ driverParam: string;
595
+ notNull: false;
596
+ hasDefault: false;
597
+ isPrimaryKey: false;
598
+ isAutoincrement: false;
599
+ hasRuntimeDefault: false;
600
+ enumValues: [string, ...string[]];
601
+ baseColumn: never;
602
+ identity: undefined;
603
+ generated: undefined;
604
+ }, {}, {}>;
605
+ createdAt: drizzle_orm_pg_core.PgColumn<{
606
+ name: string;
607
+ tableName: "plan_versions";
608
+ dataType: "date";
609
+ columnType: "PgTimestamp";
610
+ data: Date;
611
+ driverParam: string;
612
+ notNull: true;
613
+ hasDefault: true;
614
+ isPrimaryKey: false;
615
+ isAutoincrement: false;
616
+ hasRuntimeDefault: false;
617
+ enumValues: undefined;
618
+ baseColumn: never;
619
+ identity: undefined;
620
+ generated: undefined;
621
+ }, {}, {}>;
622
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
623
+ name: string;
624
+ tableName: "plan_versions";
625
+ dataType: "date";
626
+ columnType: "PgTimestamp";
627
+ data: Date;
628
+ driverParam: string;
629
+ notNull: true;
630
+ hasDefault: false;
631
+ isPrimaryKey: false;
632
+ isAutoincrement: false;
633
+ hasRuntimeDefault: false;
634
+ enumValues: undefined;
635
+ baseColumn: never;
636
+ identity: undefined;
637
+ generated: undefined;
638
+ }, {}, {}>;
639
+ };
640
+ dialect: "pg";
641
+ }>;
642
+ declare const plans: drizzle_orm_pg_core.PgTableWithColumns<{
643
+ name: "plans";
644
+ schema: undefined;
645
+ columns: {
646
+ id: drizzle_orm_pg_core.PgColumn<{
647
+ name: "id";
648
+ tableName: "plans";
649
+ dataType: "string";
650
+ columnType: "PgText";
651
+ data: string;
652
+ driverParam: string;
653
+ notNull: true;
654
+ hasDefault: false;
655
+ isPrimaryKey: true;
656
+ isAutoincrement: false;
657
+ hasRuntimeDefault: false;
658
+ enumValues: [string, ...string[]];
659
+ baseColumn: never;
660
+ identity: undefined;
661
+ generated: undefined;
662
+ }, {}, {}>;
663
+ projectKey: drizzle_orm_pg_core.PgColumn<{
664
+ name: "projectKey";
665
+ tableName: "plans";
666
+ dataType: "string";
667
+ columnType: "PgText";
668
+ data: string;
669
+ driverParam: string;
670
+ notNull: true;
671
+ hasDefault: false;
672
+ isPrimaryKey: false;
673
+ isAutoincrement: false;
674
+ hasRuntimeDefault: false;
675
+ enumValues: [string, ...string[]];
676
+ baseColumn: never;
677
+ identity: undefined;
678
+ generated: undefined;
679
+ }, {}, {}>;
680
+ planKey: drizzle_orm_pg_core.PgColumn<{
681
+ name: "planKey";
682
+ tableName: "plans";
683
+ dataType: "string";
684
+ columnType: "PgText";
685
+ data: string;
686
+ driverParam: string;
687
+ notNull: true;
688
+ hasDefault: false;
689
+ isPrimaryKey: false;
690
+ isAutoincrement: false;
691
+ hasRuntimeDefault: false;
692
+ enumValues: [string, ...string[]];
693
+ baseColumn: never;
694
+ identity: undefined;
695
+ generated: undefined;
696
+ }, {}, {}>;
697
+ label: drizzle_orm_pg_core.PgColumn<{
698
+ name: "label";
699
+ tableName: "plans";
700
+ dataType: "string";
701
+ columnType: "PgText";
702
+ data: string;
703
+ driverParam: string;
704
+ notNull: true;
705
+ hasDefault: false;
706
+ isPrimaryKey: false;
707
+ isAutoincrement: false;
708
+ hasRuntimeDefault: false;
709
+ enumValues: [string, ...string[]];
710
+ baseColumn: never;
711
+ identity: undefined;
712
+ generated: undefined;
713
+ }, {}, {}>;
714
+ description: drizzle_orm_pg_core.PgColumn<{
715
+ name: "description";
716
+ tableName: "plans";
717
+ dataType: "string";
718
+ columnType: "PgText";
719
+ data: string;
720
+ driverParam: string;
721
+ notNull: false;
722
+ hasDefault: false;
723
+ isPrimaryKey: false;
724
+ isAutoincrement: false;
725
+ hasRuntimeDefault: false;
726
+ enumValues: [string, ...string[]];
727
+ baseColumn: never;
728
+ identity: undefined;
729
+ generated: undefined;
730
+ }, {}, {}>;
731
+ icon: drizzle_orm_pg_core.PgColumn<{
732
+ name: "icon";
733
+ tableName: "plans";
734
+ dataType: "string";
735
+ columnType: "PgText";
736
+ data: string;
737
+ driverParam: string;
738
+ notNull: false;
739
+ hasDefault: false;
740
+ isPrimaryKey: false;
741
+ isAutoincrement: false;
742
+ hasRuntimeDefault: false;
743
+ enumValues: [string, ...string[]];
744
+ baseColumn: never;
745
+ identity: undefined;
746
+ generated: undefined;
747
+ }, {}, {}>;
748
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
749
+ name: "sortOrder";
750
+ tableName: "plans";
751
+ dataType: "number";
752
+ columnType: "PgInteger";
753
+ data: number;
754
+ driverParam: string | number;
755
+ notNull: true;
756
+ hasDefault: true;
757
+ isPrimaryKey: false;
758
+ isAutoincrement: false;
759
+ hasRuntimeDefault: false;
760
+ enumValues: undefined;
761
+ baseColumn: never;
762
+ identity: undefined;
763
+ generated: undefined;
764
+ }, {}, {}>;
765
+ createdAt: drizzle_orm_pg_core.PgColumn<{
766
+ name: string;
767
+ tableName: "plans";
768
+ dataType: "date";
769
+ columnType: "PgTimestamp";
770
+ data: Date;
771
+ driverParam: string;
772
+ notNull: true;
773
+ hasDefault: true;
774
+ isPrimaryKey: false;
775
+ isAutoincrement: false;
776
+ hasRuntimeDefault: false;
777
+ enumValues: undefined;
778
+ baseColumn: never;
779
+ identity: undefined;
780
+ generated: undefined;
781
+ }, {}, {}>;
782
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
783
+ name: string;
784
+ tableName: "plans";
785
+ dataType: "date";
786
+ columnType: "PgTimestamp";
787
+ data: Date;
788
+ driverParam: string;
789
+ notNull: true;
790
+ hasDefault: false;
791
+ isPrimaryKey: false;
792
+ isAutoincrement: false;
793
+ hasRuntimeDefault: false;
794
+ enumValues: undefined;
795
+ baseColumn: never;
796
+ identity: undefined;
797
+ generated: undefined;
798
+ }, {}, {}>;
799
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
800
+ name: string;
801
+ tableName: "plans";
802
+ dataType: "date";
803
+ columnType: "PgTimestamp";
804
+ data: Date;
805
+ driverParam: string;
806
+ notNull: false;
807
+ hasDefault: false;
808
+ isPrimaryKey: false;
809
+ isAutoincrement: false;
810
+ hasRuntimeDefault: false;
811
+ enumValues: undefined;
812
+ baseColumn: never;
813
+ identity: undefined;
814
+ generated: undefined;
815
+ }, {}, {}>;
816
+ };
817
+ dialect: "pg";
818
+ }>;
819
+ declare const featureCatalogEntries: drizzle_orm_pg_core.PgTableWithColumns<{
820
+ name: "feature_catalog_entries";
821
+ schema: undefined;
822
+ columns: {
823
+ id: drizzle_orm_pg_core.PgColumn<{
824
+ name: "id";
825
+ tableName: "feature_catalog_entries";
826
+ dataType: "string";
827
+ columnType: "PgText";
828
+ data: string;
829
+ driverParam: string;
830
+ notNull: true;
831
+ hasDefault: false;
832
+ isPrimaryKey: true;
833
+ isAutoincrement: false;
834
+ hasRuntimeDefault: false;
835
+ enumValues: [string, ...string[]];
836
+ baseColumn: never;
837
+ identity: undefined;
838
+ generated: undefined;
839
+ }, {}, {}>;
840
+ projectKey: drizzle_orm_pg_core.PgColumn<{
841
+ name: "projectKey";
842
+ tableName: "feature_catalog_entries";
843
+ dataType: "string";
844
+ columnType: "PgText";
845
+ data: string;
846
+ driverParam: string;
847
+ notNull: true;
848
+ hasDefault: false;
849
+ isPrimaryKey: false;
850
+ isAutoincrement: false;
851
+ hasRuntimeDefault: false;
852
+ enumValues: [string, ...string[]];
853
+ baseColumn: never;
854
+ identity: undefined;
855
+ generated: undefined;
856
+ }, {}, {}>;
857
+ featureKey: drizzle_orm_pg_core.PgColumn<{
858
+ name: "featureKey";
859
+ tableName: "feature_catalog_entries";
860
+ dataType: "string";
861
+ columnType: "PgText";
862
+ data: string;
863
+ driverParam: string;
864
+ notNull: true;
865
+ hasDefault: false;
866
+ isPrimaryKey: false;
867
+ isAutoincrement: false;
868
+ hasRuntimeDefault: false;
869
+ enumValues: [string, ...string[]];
870
+ baseColumn: never;
871
+ identity: undefined;
872
+ generated: undefined;
873
+ }, {}, {}>;
874
+ label: drizzle_orm_pg_core.PgColumn<{
875
+ name: "label";
876
+ tableName: "feature_catalog_entries";
877
+ dataType: "string";
878
+ columnType: "PgText";
879
+ data: string;
880
+ driverParam: string;
881
+ notNull: true;
882
+ hasDefault: false;
883
+ isPrimaryKey: false;
884
+ isAutoincrement: false;
885
+ hasRuntimeDefault: false;
886
+ enumValues: [string, ...string[]];
887
+ baseColumn: never;
888
+ identity: undefined;
889
+ generated: undefined;
890
+ }, {}, {}>;
891
+ description: drizzle_orm_pg_core.PgColumn<{
892
+ name: "description";
893
+ tableName: "feature_catalog_entries";
894
+ dataType: "string";
895
+ columnType: "PgText";
896
+ data: string;
897
+ driverParam: string;
898
+ notNull: false;
899
+ hasDefault: false;
900
+ isPrimaryKey: false;
901
+ isAutoincrement: false;
902
+ hasRuntimeDefault: false;
903
+ enumValues: [string, ...string[]];
904
+ baseColumn: never;
905
+ identity: undefined;
906
+ generated: undefined;
907
+ }, {}, {}>;
908
+ marketingLabel: drizzle_orm_pg_core.PgColumn<{
909
+ name: "marketingLabel";
910
+ tableName: "feature_catalog_entries";
911
+ dataType: "string";
912
+ columnType: "PgText";
913
+ data: string;
914
+ driverParam: string;
915
+ notNull: false;
916
+ hasDefault: false;
917
+ isPrimaryKey: false;
918
+ isAutoincrement: false;
919
+ hasRuntimeDefault: false;
920
+ enumValues: [string, ...string[]];
921
+ baseColumn: never;
922
+ identity: undefined;
923
+ generated: undefined;
924
+ }, {}, {}>;
925
+ marketingDescription: drizzle_orm_pg_core.PgColumn<{
926
+ name: "marketingDescription";
927
+ tableName: "feature_catalog_entries";
928
+ dataType: "string";
929
+ columnType: "PgText";
930
+ data: string;
931
+ driverParam: string;
932
+ notNull: false;
933
+ hasDefault: false;
934
+ isPrimaryKey: false;
935
+ isAutoincrement: false;
936
+ hasRuntimeDefault: false;
937
+ enumValues: [string, ...string[]];
938
+ baseColumn: never;
939
+ identity: undefined;
940
+ generated: undefined;
941
+ }, {}, {}>;
942
+ icon: drizzle_orm_pg_core.PgColumn<{
943
+ name: "icon";
944
+ tableName: "feature_catalog_entries";
945
+ dataType: "string";
946
+ columnType: "PgText";
947
+ data: string;
948
+ driverParam: string;
949
+ notNull: false;
950
+ hasDefault: false;
951
+ isPrimaryKey: false;
952
+ isAutoincrement: false;
953
+ hasRuntimeDefault: false;
954
+ enumValues: [string, ...string[]];
955
+ baseColumn: never;
956
+ identity: undefined;
957
+ generated: undefined;
958
+ }, {}, {}>;
959
+ tier: drizzle_orm_pg_core.PgColumn<{
960
+ name: "tier";
961
+ tableName: "feature_catalog_entries";
962
+ dataType: "string";
963
+ columnType: "PgText";
964
+ data: string;
965
+ driverParam: string;
966
+ notNull: false;
967
+ hasDefault: false;
968
+ isPrimaryKey: false;
969
+ isAutoincrement: false;
970
+ hasRuntimeDefault: false;
971
+ enumValues: [string, ...string[]];
972
+ baseColumn: never;
973
+ identity: undefined;
974
+ generated: undefined;
975
+ }, {}, {}>;
976
+ core: drizzle_orm_pg_core.PgColumn<{
977
+ name: "core";
978
+ tableName: "feature_catalog_entries";
979
+ dataType: "boolean";
980
+ columnType: "PgBoolean";
981
+ data: boolean;
982
+ driverParam: boolean;
983
+ notNull: true;
984
+ hasDefault: true;
985
+ isPrimaryKey: false;
986
+ isAutoincrement: false;
987
+ hasRuntimeDefault: false;
988
+ enumValues: undefined;
989
+ baseColumn: never;
990
+ identity: undefined;
991
+ generated: undefined;
992
+ }, {}, {}>;
993
+ requires: drizzle_orm_pg_core.PgColumn<{
994
+ name: "requires";
995
+ tableName: "feature_catalog_entries";
996
+ dataType: "array";
997
+ columnType: "PgArray";
998
+ data: string[];
999
+ driverParam: string | string[];
1000
+ notNull: false;
1001
+ hasDefault: false;
1002
+ isPrimaryKey: false;
1003
+ isAutoincrement: false;
1004
+ hasRuntimeDefault: false;
1005
+ enumValues: [string, ...string[]];
1006
+ baseColumn: drizzle_orm.Column<{
1007
+ name: "requires";
1008
+ tableName: "feature_catalog_entries";
1009
+ dataType: "string";
1010
+ columnType: "PgText";
1011
+ data: string;
1012
+ driverParam: string;
1013
+ notNull: false;
1014
+ hasDefault: false;
1015
+ isPrimaryKey: false;
1016
+ isAutoincrement: false;
1017
+ hasRuntimeDefault: false;
1018
+ enumValues: [string, ...string[]];
1019
+ baseColumn: never;
1020
+ identity: undefined;
1021
+ generated: undefined;
1022
+ }, {}, {}>;
1023
+ identity: undefined;
1024
+ generated: undefined;
1025
+ }, {}, {
1026
+ baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{
1027
+ name: "requires";
1028
+ dataType: "string";
1029
+ columnType: "PgText";
1030
+ data: string;
1031
+ enumValues: [string, ...string[]];
1032
+ driverParam: string;
1033
+ }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>;
1034
+ size: undefined;
1035
+ }>;
1036
+ replaces: drizzle_orm_pg_core.PgColumn<{
1037
+ name: "replaces";
1038
+ tableName: "feature_catalog_entries";
1039
+ dataType: "array";
1040
+ columnType: "PgArray";
1041
+ data: string[];
1042
+ driverParam: string | string[];
1043
+ notNull: false;
1044
+ hasDefault: false;
1045
+ isPrimaryKey: false;
1046
+ isAutoincrement: false;
1047
+ hasRuntimeDefault: false;
1048
+ enumValues: [string, ...string[]];
1049
+ baseColumn: drizzle_orm.Column<{
1050
+ name: "replaces";
1051
+ tableName: "feature_catalog_entries";
1052
+ dataType: "string";
1053
+ columnType: "PgText";
1054
+ data: string;
1055
+ driverParam: string;
1056
+ notNull: false;
1057
+ hasDefault: false;
1058
+ isPrimaryKey: false;
1059
+ isAutoincrement: false;
1060
+ hasRuntimeDefault: false;
1061
+ enumValues: [string, ...string[]];
1062
+ baseColumn: never;
1063
+ identity: undefined;
1064
+ generated: undefined;
1065
+ }, {}, {}>;
1066
+ identity: undefined;
1067
+ generated: undefined;
1068
+ }, {}, {
1069
+ baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{
1070
+ name: "replaces";
1071
+ dataType: "string";
1072
+ columnType: "PgText";
1073
+ data: string;
1074
+ enumValues: [string, ...string[]];
1075
+ driverParam: string;
1076
+ }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>;
1077
+ size: undefined;
1078
+ }>;
1079
+ successorKey: drizzle_orm_pg_core.PgColumn<{
1080
+ name: "successorKey";
1081
+ tableName: "feature_catalog_entries";
1082
+ dataType: "string";
1083
+ columnType: "PgText";
1084
+ data: string;
1085
+ driverParam: string;
1086
+ notNull: false;
1087
+ hasDefault: false;
1088
+ isPrimaryKey: false;
1089
+ isAutoincrement: false;
1090
+ hasRuntimeDefault: false;
1091
+ enumValues: [string, ...string[]];
1092
+ baseColumn: never;
1093
+ identity: undefined;
1094
+ generated: undefined;
1095
+ }, {}, {}>;
1096
+ discoveryStatus: drizzle_orm_pg_core.PgColumn<{
1097
+ name: "discoveryStatus";
1098
+ tableName: "feature_catalog_entries";
1099
+ dataType: "string";
1100
+ columnType: "PgText";
1101
+ data: string;
1102
+ driverParam: string;
1103
+ notNull: true;
1104
+ hasDefault: true;
1105
+ isPrimaryKey: false;
1106
+ isAutoincrement: false;
1107
+ hasRuntimeDefault: false;
1108
+ enumValues: [string, ...string[]];
1109
+ baseColumn: never;
1110
+ identity: undefined;
1111
+ generated: undefined;
1112
+ }, {}, {}>;
1113
+ approvedAt: drizzle_orm_pg_core.PgColumn<{
1114
+ name: string;
1115
+ tableName: "feature_catalog_entries";
1116
+ dataType: "date";
1117
+ columnType: "PgTimestamp";
1118
+ data: Date;
1119
+ driverParam: string;
1120
+ notNull: false;
1121
+ hasDefault: false;
1122
+ isPrimaryKey: false;
1123
+ isAutoincrement: false;
1124
+ hasRuntimeDefault: false;
1125
+ enumValues: undefined;
1126
+ baseColumn: never;
1127
+ identity: undefined;
1128
+ generated: undefined;
1129
+ }, {}, {}>;
1130
+ approvedBy: drizzle_orm_pg_core.PgColumn<{
1131
+ name: "approvedBy";
1132
+ tableName: "feature_catalog_entries";
1133
+ dataType: "string";
1134
+ columnType: "PgText";
1135
+ data: string;
1136
+ driverParam: string;
1137
+ notNull: false;
1138
+ hasDefault: false;
1139
+ isPrimaryKey: false;
1140
+ isAutoincrement: false;
1141
+ hasRuntimeDefault: false;
1142
+ enumValues: [string, ...string[]];
1143
+ baseColumn: never;
1144
+ identity: undefined;
1145
+ generated: undefined;
1146
+ }, {}, {}>;
1147
+ approvedSignature: drizzle_orm_pg_core.PgColumn<{
1148
+ name: "approvedSignature";
1149
+ tableName: "feature_catalog_entries";
1150
+ dataType: "string";
1151
+ columnType: "PgText";
1152
+ data: string;
1153
+ driverParam: string;
1154
+ notNull: false;
1155
+ hasDefault: false;
1156
+ isPrimaryKey: false;
1157
+ isAutoincrement: false;
1158
+ hasRuntimeDefault: false;
1159
+ enumValues: [string, ...string[]];
1160
+ baseColumn: never;
1161
+ identity: undefined;
1162
+ generated: undefined;
1163
+ }, {}, {}>;
1164
+ plannedOnly: drizzle_orm_pg_core.PgColumn<{
1165
+ name: "plannedOnly";
1166
+ tableName: "feature_catalog_entries";
1167
+ dataType: "boolean";
1168
+ columnType: "PgBoolean";
1169
+ data: boolean;
1170
+ driverParam: boolean;
1171
+ notNull: true;
1172
+ hasDefault: true;
1173
+ isPrimaryKey: false;
1174
+ isAutoincrement: false;
1175
+ hasRuntimeDefault: false;
1176
+ enumValues: undefined;
1177
+ baseColumn: never;
1178
+ identity: undefined;
1179
+ generated: undefined;
1180
+ }, {}, {}>;
1181
+ i18n: drizzle_orm_pg_core.PgColumn<{
1182
+ name: "i18n";
1183
+ tableName: "feature_catalog_entries";
1184
+ dataType: "json";
1185
+ columnType: "PgJsonb";
1186
+ data: unknown;
1187
+ driverParam: unknown;
1188
+ notNull: true;
1189
+ hasDefault: true;
1190
+ isPrimaryKey: false;
1191
+ isAutoincrement: false;
1192
+ hasRuntimeDefault: false;
1193
+ enumValues: undefined;
1194
+ baseColumn: never;
1195
+ identity: undefined;
1196
+ generated: undefined;
1197
+ }, {}, {}>;
1198
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
1199
+ name: "sortOrder";
1200
+ tableName: "feature_catalog_entries";
1201
+ dataType: "number";
1202
+ columnType: "PgInteger";
1203
+ data: number;
1204
+ driverParam: string | number;
1205
+ notNull: true;
1206
+ hasDefault: true;
1207
+ isPrimaryKey: false;
1208
+ isAutoincrement: false;
1209
+ hasRuntimeDefault: false;
1210
+ enumValues: undefined;
1211
+ baseColumn: never;
1212
+ identity: undefined;
1213
+ generated: undefined;
1214
+ }, {}, {}>;
1215
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1216
+ name: string;
1217
+ tableName: "feature_catalog_entries";
1218
+ dataType: "date";
1219
+ columnType: "PgTimestamp";
1220
+ data: Date;
1221
+ driverParam: string;
1222
+ notNull: true;
1223
+ hasDefault: true;
1224
+ isPrimaryKey: false;
1225
+ isAutoincrement: false;
1226
+ hasRuntimeDefault: false;
1227
+ enumValues: undefined;
1228
+ baseColumn: never;
1229
+ identity: undefined;
1230
+ generated: undefined;
1231
+ }, {}, {}>;
1232
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1233
+ name: string;
1234
+ tableName: "feature_catalog_entries";
1235
+ dataType: "date";
1236
+ columnType: "PgTimestamp";
1237
+ data: Date;
1238
+ driverParam: string;
1239
+ notNull: true;
1240
+ hasDefault: false;
1241
+ isPrimaryKey: false;
1242
+ isAutoincrement: false;
1243
+ hasRuntimeDefault: false;
1244
+ enumValues: undefined;
1245
+ baseColumn: never;
1246
+ identity: undefined;
1247
+ generated: undefined;
1248
+ }, {}, {}>;
1249
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
1250
+ name: string;
1251
+ tableName: "feature_catalog_entries";
1252
+ dataType: "date";
1253
+ columnType: "PgTimestamp";
1254
+ data: Date;
1255
+ driverParam: string;
1256
+ notNull: false;
1257
+ hasDefault: false;
1258
+ isPrimaryKey: false;
1259
+ isAutoincrement: false;
1260
+ hasRuntimeDefault: false;
1261
+ enumValues: undefined;
1262
+ baseColumn: never;
1263
+ identity: undefined;
1264
+ generated: undefined;
1265
+ }, {}, {}>;
1266
+ };
1267
+ dialect: "pg";
1268
+ }>;
1269
+ declare const promoCodes: drizzle_orm_pg_core.PgTableWithColumns<{
1270
+ name: "promo_codes";
1271
+ schema: undefined;
1272
+ columns: {
1273
+ id: drizzle_orm_pg_core.PgColumn<{
1274
+ name: "id";
1275
+ tableName: "promo_codes";
1276
+ dataType: "string";
1277
+ columnType: "PgText";
1278
+ data: string;
1279
+ driverParam: string;
1280
+ notNull: true;
1281
+ hasDefault: false;
1282
+ isPrimaryKey: true;
1283
+ isAutoincrement: false;
1284
+ hasRuntimeDefault: false;
1285
+ enumValues: [string, ...string[]];
1286
+ baseColumn: never;
1287
+ identity: undefined;
1288
+ generated: undefined;
1289
+ }, {}, {}>;
1290
+ code: drizzle_orm_pg_core.PgColumn<{
1291
+ name: "code";
1292
+ tableName: "promo_codes";
1293
+ dataType: "string";
1294
+ columnType: "PgText";
1295
+ data: string;
1296
+ driverParam: string;
1297
+ notNull: true;
1298
+ hasDefault: false;
1299
+ isPrimaryKey: false;
1300
+ isAutoincrement: false;
1301
+ hasRuntimeDefault: false;
1302
+ enumValues: [string, ...string[]];
1303
+ baseColumn: never;
1304
+ identity: undefined;
1305
+ generated: undefined;
1306
+ }, {}, {}>;
1307
+ valueType: drizzle_orm_pg_core.PgColumn<{
1308
+ name: "valueType";
1309
+ tableName: "promo_codes";
1310
+ dataType: "string";
1311
+ columnType: "PgText";
1312
+ data: string;
1313
+ driverParam: string;
1314
+ notNull: true;
1315
+ hasDefault: false;
1316
+ isPrimaryKey: false;
1317
+ isAutoincrement: false;
1318
+ hasRuntimeDefault: false;
1319
+ enumValues: [string, ...string[]];
1320
+ baseColumn: never;
1321
+ identity: undefined;
1322
+ generated: undefined;
1323
+ }, {}, {}>;
1324
+ value: drizzle_orm_pg_core.PgColumn<{
1325
+ name: "value";
1326
+ tableName: "promo_codes";
1327
+ dataType: "string";
1328
+ columnType: "PgNumeric";
1329
+ data: string;
1330
+ driverParam: string;
1331
+ notNull: true;
1332
+ hasDefault: false;
1333
+ isPrimaryKey: false;
1334
+ isAutoincrement: false;
1335
+ hasRuntimeDefault: false;
1336
+ enumValues: undefined;
1337
+ baseColumn: never;
1338
+ identity: undefined;
1339
+ generated: undefined;
1340
+ }, {}, {}>;
1341
+ durationType: drizzle_orm_pg_core.PgColumn<{
1342
+ name: "durationType";
1343
+ tableName: "promo_codes";
1344
+ dataType: "string";
1345
+ columnType: "PgText";
1346
+ data: string;
1347
+ driverParam: string;
1348
+ notNull: true;
1349
+ hasDefault: true;
1350
+ isPrimaryKey: false;
1351
+ isAutoincrement: false;
1352
+ hasRuntimeDefault: false;
1353
+ enumValues: [string, ...string[]];
1354
+ baseColumn: never;
1355
+ identity: undefined;
1356
+ generated: undefined;
1357
+ }, {}, {}>;
1358
+ durationValue: drizzle_orm_pg_core.PgColumn<{
1359
+ name: "durationValue";
1360
+ tableName: "promo_codes";
1361
+ dataType: "number";
1362
+ columnType: "PgInteger";
1363
+ data: number;
1364
+ driverParam: string | number;
1365
+ notNull: false;
1366
+ hasDefault: false;
1367
+ isPrimaryKey: false;
1368
+ isAutoincrement: false;
1369
+ hasRuntimeDefault: false;
1370
+ enumValues: undefined;
1371
+ baseColumn: never;
1372
+ identity: undefined;
1373
+ generated: undefined;
1374
+ }, {}, {}>;
1375
+ validFrom: drizzle_orm_pg_core.PgColumn<{
1376
+ name: string;
1377
+ tableName: "promo_codes";
1378
+ dataType: "date";
1379
+ columnType: "PgTimestamp";
1380
+ data: Date;
1381
+ driverParam: string;
1382
+ notNull: false;
1383
+ hasDefault: false;
1384
+ isPrimaryKey: false;
1385
+ isAutoincrement: false;
1386
+ hasRuntimeDefault: false;
1387
+ enumValues: undefined;
1388
+ baseColumn: never;
1389
+ identity: undefined;
1390
+ generated: undefined;
1391
+ }, {}, {}>;
1392
+ validUntil: drizzle_orm_pg_core.PgColumn<{
1393
+ name: string;
1394
+ tableName: "promo_codes";
1395
+ dataType: "date";
1396
+ columnType: "PgTimestamp";
1397
+ data: Date;
1398
+ driverParam: string;
1399
+ notNull: false;
1400
+ hasDefault: false;
1401
+ isPrimaryKey: false;
1402
+ isAutoincrement: false;
1403
+ hasRuntimeDefault: false;
1404
+ enumValues: undefined;
1405
+ baseColumn: never;
1406
+ identity: undefined;
1407
+ generated: undefined;
1408
+ }, {}, {}>;
1409
+ maxRedemptions: drizzle_orm_pg_core.PgColumn<{
1410
+ name: "maxRedemptions";
1411
+ tableName: "promo_codes";
1412
+ dataType: "number";
1413
+ columnType: "PgInteger";
1414
+ data: number;
1415
+ driverParam: string | number;
1416
+ notNull: false;
1417
+ hasDefault: false;
1418
+ isPrimaryKey: false;
1419
+ isAutoincrement: false;
1420
+ hasRuntimeDefault: false;
1421
+ enumValues: undefined;
1422
+ baseColumn: never;
1423
+ identity: undefined;
1424
+ generated: undefined;
1425
+ }, {}, {}>;
1426
+ redemptionsCount: drizzle_orm_pg_core.PgColumn<{
1427
+ name: "redemptionsCount";
1428
+ tableName: "promo_codes";
1429
+ dataType: "number";
1430
+ columnType: "PgInteger";
1431
+ data: number;
1432
+ driverParam: string | number;
1433
+ notNull: true;
1434
+ hasDefault: true;
1435
+ isPrimaryKey: false;
1436
+ isAutoincrement: false;
1437
+ hasRuntimeDefault: false;
1438
+ enumValues: undefined;
1439
+ baseColumn: never;
1440
+ identity: undefined;
1441
+ generated: undefined;
1442
+ }, {}, {}>;
1443
+ appliesToPlans: drizzle_orm_pg_core.PgColumn<{
1444
+ name: "appliesToPlans";
1445
+ tableName: "promo_codes";
1446
+ dataType: "array";
1447
+ columnType: "PgArray";
1448
+ data: string[];
1449
+ driverParam: string | string[];
1450
+ notNull: false;
1451
+ hasDefault: false;
1452
+ isPrimaryKey: false;
1453
+ isAutoincrement: false;
1454
+ hasRuntimeDefault: false;
1455
+ enumValues: [string, ...string[]];
1456
+ baseColumn: drizzle_orm.Column<{
1457
+ name: "appliesToPlans";
1458
+ tableName: "promo_codes";
1459
+ dataType: "string";
1460
+ columnType: "PgText";
1461
+ data: string;
1462
+ driverParam: string;
1463
+ notNull: false;
1464
+ hasDefault: false;
1465
+ isPrimaryKey: false;
1466
+ isAutoincrement: false;
1467
+ hasRuntimeDefault: false;
1468
+ enumValues: [string, ...string[]];
1469
+ baseColumn: never;
1470
+ identity: undefined;
1471
+ generated: undefined;
1472
+ }, {}, {}>;
1473
+ identity: undefined;
1474
+ generated: undefined;
1475
+ }, {}, {
1476
+ baseBuilder: drizzle_orm_pg_core.PgColumnBuilder<{
1477
+ name: "appliesToPlans";
1478
+ dataType: "string";
1479
+ columnType: "PgText";
1480
+ data: string;
1481
+ enumValues: [string, ...string[]];
1482
+ driverParam: string;
1483
+ }, {}, {}, drizzle_orm.ColumnBuilderExtraConfig>;
1484
+ size: undefined;
1485
+ }>;
1486
+ appliesToBilling: drizzle_orm_pg_core.PgColumn<{
1487
+ name: "appliesToBilling";
1488
+ tableName: "promo_codes";
1489
+ dataType: "string";
1490
+ columnType: "PgText";
1491
+ data: string;
1492
+ driverParam: string;
1493
+ notNull: false;
1494
+ hasDefault: false;
1495
+ isPrimaryKey: false;
1496
+ isAutoincrement: false;
1497
+ hasRuntimeDefault: false;
1498
+ enumValues: [string, ...string[]];
1499
+ baseColumn: never;
1500
+ identity: undefined;
1501
+ generated: undefined;
1502
+ }, {}, {}>;
1503
+ firstTimeCustomersOnly: drizzle_orm_pg_core.PgColumn<{
1504
+ name: "firstTimeCustomersOnly";
1505
+ tableName: "promo_codes";
1506
+ dataType: "boolean";
1507
+ columnType: "PgBoolean";
1508
+ data: boolean;
1509
+ driverParam: boolean;
1510
+ notNull: true;
1511
+ hasDefault: true;
1512
+ isPrimaryKey: false;
1513
+ isAutoincrement: false;
1514
+ hasRuntimeDefault: false;
1515
+ enumValues: undefined;
1516
+ baseColumn: never;
1517
+ identity: undefined;
1518
+ generated: undefined;
1519
+ }, {}, {}>;
1520
+ minimumPlanAmountGross: drizzle_orm_pg_core.PgColumn<{
1521
+ name: "minimumPlanAmountGross";
1522
+ tableName: "promo_codes";
1523
+ dataType: "string";
1524
+ columnType: "PgNumeric";
1525
+ data: string;
1526
+ driverParam: string;
1527
+ notNull: false;
1528
+ hasDefault: false;
1529
+ isPrimaryKey: false;
1530
+ isAutoincrement: false;
1531
+ hasRuntimeDefault: false;
1532
+ enumValues: undefined;
1533
+ baseColumn: never;
1534
+ identity: undefined;
1535
+ generated: undefined;
1536
+ }, {}, {}>;
1537
+ allowZeroInvoice: drizzle_orm_pg_core.PgColumn<{
1538
+ name: "allowZeroInvoice";
1539
+ tableName: "promo_codes";
1540
+ dataType: "boolean";
1541
+ columnType: "PgBoolean";
1542
+ data: boolean;
1543
+ driverParam: boolean;
1544
+ notNull: true;
1545
+ hasDefault: true;
1546
+ isPrimaryKey: false;
1547
+ isAutoincrement: false;
1548
+ hasRuntimeDefault: false;
1549
+ enumValues: undefined;
1550
+ baseColumn: never;
1551
+ identity: undefined;
1552
+ generated: undefined;
1553
+ }, {}, {}>;
1554
+ status: drizzle_orm_pg_core.PgColumn<{
1555
+ name: "status";
1556
+ tableName: "promo_codes";
1557
+ dataType: "string";
1558
+ columnType: "PgText";
1559
+ data: string;
1560
+ driverParam: string;
1561
+ notNull: true;
1562
+ hasDefault: true;
1563
+ isPrimaryKey: false;
1564
+ isAutoincrement: false;
1565
+ hasRuntimeDefault: false;
1566
+ enumValues: [string, ...string[]];
1567
+ baseColumn: never;
1568
+ identity: undefined;
1569
+ generated: undefined;
1570
+ }, {}, {}>;
1571
+ description: drizzle_orm_pg_core.PgColumn<{
1572
+ name: "description";
1573
+ tableName: "promo_codes";
1574
+ dataType: "string";
1575
+ columnType: "PgText";
1576
+ data: string;
1577
+ driverParam: string;
1578
+ notNull: false;
1579
+ hasDefault: false;
1580
+ isPrimaryKey: false;
1581
+ isAutoincrement: false;
1582
+ hasRuntimeDefault: false;
1583
+ enumValues: [string, ...string[]];
1584
+ baseColumn: never;
1585
+ identity: undefined;
1586
+ generated: undefined;
1587
+ }, {}, {}>;
1588
+ campaignTag: drizzle_orm_pg_core.PgColumn<{
1589
+ name: "campaignTag";
1590
+ tableName: "promo_codes";
1591
+ dataType: "string";
1592
+ columnType: "PgText";
1593
+ data: string;
1594
+ driverParam: string;
1595
+ notNull: false;
1596
+ hasDefault: false;
1597
+ isPrimaryKey: false;
1598
+ isAutoincrement: false;
1599
+ hasRuntimeDefault: false;
1600
+ enumValues: [string, ...string[]];
1601
+ baseColumn: never;
1602
+ identity: undefined;
1603
+ generated: undefined;
1604
+ }, {}, {}>;
1605
+ revenueDeductionAccount: drizzle_orm_pg_core.PgColumn<{
1606
+ name: "revenueDeductionAccount";
1607
+ tableName: "promo_codes";
1608
+ dataType: "string";
1609
+ columnType: "PgText";
1610
+ data: string;
1611
+ driverParam: string;
1612
+ notNull: false;
1613
+ hasDefault: false;
1614
+ isPrimaryKey: false;
1615
+ isAutoincrement: false;
1616
+ hasRuntimeDefault: false;
1617
+ enumValues: [string, ...string[]];
1618
+ baseColumn: never;
1619
+ identity: undefined;
1620
+ generated: undefined;
1621
+ }, {}, {}>;
1622
+ createdById: drizzle_orm_pg_core.PgColumn<{
1623
+ name: "createdById";
1624
+ tableName: "promo_codes";
1625
+ dataType: "string";
1626
+ columnType: "PgText";
1627
+ data: string;
1628
+ driverParam: string;
1629
+ notNull: true;
1630
+ hasDefault: false;
1631
+ isPrimaryKey: false;
1632
+ isAutoincrement: false;
1633
+ hasRuntimeDefault: false;
1634
+ enumValues: [string, ...string[]];
1635
+ baseColumn: never;
1636
+ identity: undefined;
1637
+ generated: undefined;
1638
+ }, {}, {}>;
1639
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1640
+ name: string;
1641
+ tableName: "promo_codes";
1642
+ dataType: "date";
1643
+ columnType: "PgTimestamp";
1644
+ data: Date;
1645
+ driverParam: string;
1646
+ notNull: true;
1647
+ hasDefault: true;
1648
+ isPrimaryKey: false;
1649
+ isAutoincrement: false;
1650
+ hasRuntimeDefault: false;
1651
+ enumValues: undefined;
1652
+ baseColumn: never;
1653
+ identity: undefined;
1654
+ generated: undefined;
1655
+ }, {}, {}>;
1656
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1657
+ name: string;
1658
+ tableName: "promo_codes";
1659
+ dataType: "date";
1660
+ columnType: "PgTimestamp";
1661
+ data: Date;
1662
+ driverParam: string;
1663
+ notNull: true;
1664
+ hasDefault: false;
1665
+ isPrimaryKey: false;
1666
+ isAutoincrement: false;
1667
+ hasRuntimeDefault: false;
1668
+ enumValues: undefined;
1669
+ baseColumn: never;
1670
+ identity: undefined;
1671
+ generated: undefined;
1672
+ }, {}, {}>;
1673
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
1674
+ name: string;
1675
+ tableName: "promo_codes";
1676
+ dataType: "date";
1677
+ columnType: "PgTimestamp";
1678
+ data: Date;
1679
+ driverParam: string;
1680
+ notNull: false;
1681
+ hasDefault: false;
1682
+ isPrimaryKey: false;
1683
+ isAutoincrement: false;
1684
+ hasRuntimeDefault: false;
1685
+ enumValues: undefined;
1686
+ baseColumn: never;
1687
+ identity: undefined;
1688
+ generated: undefined;
1689
+ }, {}, {}>;
1690
+ };
1691
+ dialect: "pg";
1692
+ }>;
1693
+ declare const promoCodeRedemptions: drizzle_orm_pg_core.PgTableWithColumns<{
1694
+ name: "promo_code_redemptions";
1695
+ schema: undefined;
1696
+ columns: {
1697
+ id: drizzle_orm_pg_core.PgColumn<{
1698
+ name: "id";
1699
+ tableName: "promo_code_redemptions";
1700
+ dataType: "string";
1701
+ columnType: "PgText";
1702
+ data: string;
1703
+ driverParam: string;
1704
+ notNull: true;
1705
+ hasDefault: false;
1706
+ isPrimaryKey: true;
1707
+ isAutoincrement: false;
1708
+ hasRuntimeDefault: false;
1709
+ enumValues: [string, ...string[]];
1710
+ baseColumn: never;
1711
+ identity: undefined;
1712
+ generated: undefined;
1713
+ }, {}, {}>;
1714
+ promoCodeId: drizzle_orm_pg_core.PgColumn<{
1715
+ name: "promoCodeId";
1716
+ tableName: "promo_code_redemptions";
1717
+ dataType: "string";
1718
+ columnType: "PgText";
1719
+ data: string;
1720
+ driverParam: string;
1721
+ notNull: true;
1722
+ hasDefault: false;
1723
+ isPrimaryKey: false;
1724
+ isAutoincrement: false;
1725
+ hasRuntimeDefault: false;
1726
+ enumValues: [string, ...string[]];
1727
+ baseColumn: never;
1728
+ identity: undefined;
1729
+ generated: undefined;
1730
+ }, {}, {}>;
1731
+ subscriptionId: drizzle_orm_pg_core.PgColumn<{
1732
+ name: "subscriptionId";
1733
+ tableName: "promo_code_redemptions";
1734
+ dataType: "string";
1735
+ columnType: "PgText";
1736
+ data: string;
1737
+ driverParam: string;
1738
+ notNull: true;
1739
+ hasDefault: false;
1740
+ isPrimaryKey: false;
1741
+ isAutoincrement: false;
1742
+ hasRuntimeDefault: false;
1743
+ enumValues: [string, ...string[]];
1744
+ baseColumn: never;
1745
+ identity: undefined;
1746
+ generated: undefined;
1747
+ }, {}, {}>;
1748
+ tenantId: drizzle_orm_pg_core.PgColumn<{
1749
+ name: "tenantId";
1750
+ tableName: "promo_code_redemptions";
1751
+ dataType: "string";
1752
+ columnType: "PgText";
1753
+ data: string;
1754
+ driverParam: string;
1755
+ notNull: true;
1756
+ hasDefault: false;
1757
+ isPrimaryKey: false;
1758
+ isAutoincrement: false;
1759
+ hasRuntimeDefault: false;
1760
+ enumValues: [string, ...string[]];
1761
+ baseColumn: never;
1762
+ identity: undefined;
1763
+ generated: undefined;
1764
+ }, {}, {}>;
1765
+ appliedValueType: drizzle_orm_pg_core.PgColumn<{
1766
+ name: "appliedValueType";
1767
+ tableName: "promo_code_redemptions";
1768
+ dataType: "string";
1769
+ columnType: "PgText";
1770
+ data: string;
1771
+ driverParam: string;
1772
+ notNull: true;
1773
+ hasDefault: false;
1774
+ isPrimaryKey: false;
1775
+ isAutoincrement: false;
1776
+ hasRuntimeDefault: false;
1777
+ enumValues: [string, ...string[]];
1778
+ baseColumn: never;
1779
+ identity: undefined;
1780
+ generated: undefined;
1781
+ }, {}, {}>;
1782
+ appliedValue: drizzle_orm_pg_core.PgColumn<{
1783
+ name: "appliedValue";
1784
+ tableName: "promo_code_redemptions";
1785
+ dataType: "string";
1786
+ columnType: "PgNumeric";
1787
+ data: string;
1788
+ driverParam: string;
1789
+ notNull: true;
1790
+ hasDefault: false;
1791
+ isPrimaryKey: false;
1792
+ isAutoincrement: false;
1793
+ hasRuntimeDefault: false;
1794
+ enumValues: undefined;
1795
+ baseColumn: never;
1796
+ identity: undefined;
1797
+ generated: undefined;
1798
+ }, {}, {}>;
1799
+ appliedDurationType: drizzle_orm_pg_core.PgColumn<{
1800
+ name: "appliedDurationType";
1801
+ tableName: "promo_code_redemptions";
1802
+ dataType: "string";
1803
+ columnType: "PgText";
1804
+ data: string;
1805
+ driverParam: string;
1806
+ notNull: true;
1807
+ hasDefault: false;
1808
+ isPrimaryKey: false;
1809
+ isAutoincrement: false;
1810
+ hasRuntimeDefault: false;
1811
+ enumValues: [string, ...string[]];
1812
+ baseColumn: never;
1813
+ identity: undefined;
1814
+ generated: undefined;
1815
+ }, {}, {}>;
1816
+ appliedDurationValue: drizzle_orm_pg_core.PgColumn<{
1817
+ name: "appliedDurationValue";
1818
+ tableName: "promo_code_redemptions";
1819
+ dataType: "number";
1820
+ columnType: "PgInteger";
1821
+ data: number;
1822
+ driverParam: string | number;
1823
+ notNull: false;
1824
+ hasDefault: false;
1825
+ isPrimaryKey: false;
1826
+ isAutoincrement: false;
1827
+ hasRuntimeDefault: false;
1828
+ enumValues: undefined;
1829
+ baseColumn: never;
1830
+ identity: undefined;
1831
+ generated: undefined;
1832
+ }, {}, {}>;
1833
+ startsAt: drizzle_orm_pg_core.PgColumn<{
1834
+ name: string;
1835
+ tableName: "promo_code_redemptions";
1836
+ dataType: "date";
1837
+ columnType: "PgTimestamp";
1838
+ data: Date;
1839
+ driverParam: string;
1840
+ notNull: true;
1841
+ hasDefault: false;
1842
+ isPrimaryKey: false;
1843
+ isAutoincrement: false;
1844
+ hasRuntimeDefault: false;
1845
+ enumValues: undefined;
1846
+ baseColumn: never;
1847
+ identity: undefined;
1848
+ generated: undefined;
1849
+ }, {}, {}>;
1850
+ endsAt: drizzle_orm_pg_core.PgColumn<{
1851
+ name: string;
1852
+ tableName: "promo_code_redemptions";
1853
+ dataType: "date";
1854
+ columnType: "PgTimestamp";
1855
+ data: Date;
1856
+ driverParam: string;
1857
+ notNull: false;
1858
+ hasDefault: false;
1859
+ isPrimaryKey: false;
1860
+ isAutoincrement: false;
1861
+ hasRuntimeDefault: false;
1862
+ enumValues: undefined;
1863
+ baseColumn: never;
1864
+ identity: undefined;
1865
+ generated: undefined;
1866
+ }, {}, {}>;
1867
+ status: drizzle_orm_pg_core.PgColumn<{
1868
+ name: "status";
1869
+ tableName: "promo_code_redemptions";
1870
+ dataType: "string";
1871
+ columnType: "PgText";
1872
+ data: string;
1873
+ driverParam: string;
1874
+ notNull: true;
1875
+ hasDefault: true;
1876
+ isPrimaryKey: false;
1877
+ isAutoincrement: false;
1878
+ hasRuntimeDefault: false;
1879
+ enumValues: [string, ...string[]];
1880
+ baseColumn: never;
1881
+ identity: undefined;
1882
+ generated: undefined;
1883
+ }, {}, {}>;
1884
+ redeemedAt: drizzle_orm_pg_core.PgColumn<{
1885
+ name: string;
1886
+ tableName: "promo_code_redemptions";
1887
+ dataType: "date";
1888
+ columnType: "PgTimestamp";
1889
+ data: Date;
1890
+ driverParam: string;
1891
+ notNull: true;
1892
+ hasDefault: true;
1893
+ isPrimaryKey: false;
1894
+ isAutoincrement: false;
1895
+ hasRuntimeDefault: false;
1896
+ enumValues: undefined;
1897
+ baseColumn: never;
1898
+ identity: undefined;
1899
+ generated: undefined;
1900
+ }, {}, {}>;
1901
+ reversedAt: drizzle_orm_pg_core.PgColumn<{
1902
+ name: string;
1903
+ tableName: "promo_code_redemptions";
1904
+ dataType: "date";
1905
+ columnType: "PgTimestamp";
1906
+ data: Date;
1907
+ driverParam: string;
1908
+ notNull: false;
1909
+ hasDefault: false;
1910
+ isPrimaryKey: false;
1911
+ isAutoincrement: false;
1912
+ hasRuntimeDefault: false;
1913
+ enumValues: undefined;
1914
+ baseColumn: never;
1915
+ identity: undefined;
1916
+ generated: undefined;
1917
+ }, {}, {}>;
1918
+ };
1919
+ dialect: "pg";
1920
+ }>;
1921
+ declare const promoCodeValidationLogs: drizzle_orm_pg_core.PgTableWithColumns<{
1922
+ name: "promo_code_validation_logs";
1923
+ schema: undefined;
1924
+ columns: {
1925
+ id: drizzle_orm_pg_core.PgColumn<{
1926
+ name: "id";
1927
+ tableName: "promo_code_validation_logs";
1928
+ dataType: "string";
1929
+ columnType: "PgText";
1930
+ data: string;
1931
+ driverParam: string;
1932
+ notNull: true;
1933
+ hasDefault: false;
1934
+ isPrimaryKey: true;
1935
+ isAutoincrement: false;
1936
+ hasRuntimeDefault: false;
1937
+ enumValues: [string, ...string[]];
1938
+ baseColumn: never;
1939
+ identity: undefined;
1940
+ generated: undefined;
1941
+ }, {}, {}>;
1942
+ promoCodeId: drizzle_orm_pg_core.PgColumn<{
1943
+ name: "promoCodeId";
1944
+ tableName: "promo_code_validation_logs";
1945
+ dataType: "string";
1946
+ columnType: "PgText";
1947
+ data: string;
1948
+ driverParam: string;
1949
+ notNull: false;
1950
+ hasDefault: false;
1951
+ isPrimaryKey: false;
1952
+ isAutoincrement: false;
1953
+ hasRuntimeDefault: false;
1954
+ enumValues: [string, ...string[]];
1955
+ baseColumn: never;
1956
+ identity: undefined;
1957
+ generated: undefined;
1958
+ }, {}, {}>;
1959
+ codeAttempt: drizzle_orm_pg_core.PgColumn<{
1960
+ name: "codeAttempt";
1961
+ tableName: "promo_code_validation_logs";
1962
+ dataType: "string";
1963
+ columnType: "PgText";
1964
+ data: string;
1965
+ driverParam: string;
1966
+ notNull: true;
1967
+ hasDefault: false;
1968
+ isPrimaryKey: false;
1969
+ isAutoincrement: false;
1970
+ hasRuntimeDefault: false;
1971
+ enumValues: [string, ...string[]];
1972
+ baseColumn: never;
1973
+ identity: undefined;
1974
+ generated: undefined;
1975
+ }, {}, {}>;
1976
+ ipHash: drizzle_orm_pg_core.PgColumn<{
1977
+ name: "ipHash";
1978
+ tableName: "promo_code_validation_logs";
1979
+ dataType: "string";
1980
+ columnType: "PgText";
1981
+ data: string;
1982
+ driverParam: string;
1983
+ notNull: false;
1984
+ hasDefault: false;
1985
+ isPrimaryKey: false;
1986
+ isAutoincrement: false;
1987
+ hasRuntimeDefault: false;
1988
+ enumValues: [string, ...string[]];
1989
+ baseColumn: never;
1990
+ identity: undefined;
1991
+ generated: undefined;
1992
+ }, {}, {}>;
1993
+ sessionId: drizzle_orm_pg_core.PgColumn<{
1994
+ name: "sessionId";
1995
+ tableName: "promo_code_validation_logs";
1996
+ dataType: "string";
1997
+ columnType: "PgText";
1998
+ data: string;
1999
+ driverParam: string;
2000
+ notNull: false;
2001
+ hasDefault: false;
2002
+ isPrimaryKey: false;
2003
+ isAutoincrement: false;
2004
+ hasRuntimeDefault: false;
2005
+ enumValues: [string, ...string[]];
2006
+ baseColumn: never;
2007
+ identity: undefined;
2008
+ generated: undefined;
2009
+ }, {}, {}>;
2010
+ result: drizzle_orm_pg_core.PgColumn<{
2011
+ name: "result";
2012
+ tableName: "promo_code_validation_logs";
2013
+ dataType: "string";
2014
+ columnType: "PgText";
2015
+ data: string;
2016
+ driverParam: string;
2017
+ notNull: true;
2018
+ hasDefault: false;
2019
+ isPrimaryKey: false;
2020
+ isAutoincrement: false;
2021
+ hasRuntimeDefault: false;
2022
+ enumValues: [string, ...string[]];
2023
+ baseColumn: never;
2024
+ identity: undefined;
2025
+ generated: undefined;
2026
+ }, {}, {}>;
2027
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2028
+ name: string;
2029
+ tableName: "promo_code_validation_logs";
2030
+ dataType: "date";
2031
+ columnType: "PgTimestamp";
2032
+ data: Date;
2033
+ driverParam: string;
2034
+ notNull: true;
2035
+ hasDefault: true;
2036
+ isPrimaryKey: false;
2037
+ isAutoincrement: false;
2038
+ hasRuntimeDefault: false;
2039
+ enumValues: undefined;
2040
+ baseColumn: never;
2041
+ identity: undefined;
2042
+ generated: undefined;
2043
+ }, {}, {}>;
2044
+ };
2045
+ dialect: "pg";
2046
+ }>;
2047
+ declare const auditLogs: drizzle_orm_pg_core.PgTableWithColumns<{
2048
+ name: "audit_logs";
2049
+ schema: undefined;
2050
+ columns: {
2051
+ id: drizzle_orm_pg_core.PgColumn<{
2052
+ name: "id";
2053
+ tableName: "audit_logs";
2054
+ dataType: "string";
2055
+ columnType: "PgText";
2056
+ data: string;
2057
+ driverParam: string;
2058
+ notNull: true;
2059
+ hasDefault: false;
2060
+ isPrimaryKey: true;
2061
+ isAutoincrement: false;
2062
+ hasRuntimeDefault: false;
2063
+ enumValues: [string, ...string[]];
2064
+ baseColumn: never;
2065
+ identity: undefined;
2066
+ generated: undefined;
2067
+ }, {}, {}>;
2068
+ tenantId: drizzle_orm_pg_core.PgColumn<{
2069
+ name: "tenantId";
2070
+ tableName: "audit_logs";
2071
+ dataType: "string";
2072
+ columnType: "PgText";
2073
+ data: string;
2074
+ driverParam: string;
2075
+ notNull: false;
2076
+ hasDefault: false;
2077
+ isPrimaryKey: false;
2078
+ isAutoincrement: false;
2079
+ hasRuntimeDefault: false;
2080
+ enumValues: [string, ...string[]];
2081
+ baseColumn: never;
2082
+ identity: undefined;
2083
+ generated: undefined;
2084
+ }, {}, {}>;
2085
+ userId: drizzle_orm_pg_core.PgColumn<{
2086
+ name: "userId";
2087
+ tableName: "audit_logs";
2088
+ dataType: "string";
2089
+ columnType: "PgText";
2090
+ data: string;
2091
+ driverParam: string;
2092
+ notNull: false;
2093
+ hasDefault: false;
2094
+ isPrimaryKey: false;
2095
+ isAutoincrement: false;
2096
+ hasRuntimeDefault: false;
2097
+ enumValues: [string, ...string[]];
2098
+ baseColumn: never;
2099
+ identity: undefined;
2100
+ generated: undefined;
2101
+ }, {}, {}>;
2102
+ entity: drizzle_orm_pg_core.PgColumn<{
2103
+ name: "entity";
2104
+ tableName: "audit_logs";
2105
+ dataType: "string";
2106
+ columnType: "PgText";
2107
+ data: string;
2108
+ driverParam: string;
2109
+ notNull: true;
2110
+ hasDefault: false;
2111
+ isPrimaryKey: false;
2112
+ isAutoincrement: false;
2113
+ hasRuntimeDefault: false;
2114
+ enumValues: [string, ...string[]];
2115
+ baseColumn: never;
2116
+ identity: undefined;
2117
+ generated: undefined;
2118
+ }, {}, {}>;
2119
+ entityId: drizzle_orm_pg_core.PgColumn<{
2120
+ name: "entityId";
2121
+ tableName: "audit_logs";
2122
+ dataType: "string";
2123
+ columnType: "PgText";
2124
+ data: string;
2125
+ driverParam: string;
2126
+ notNull: true;
2127
+ hasDefault: false;
2128
+ isPrimaryKey: false;
2129
+ isAutoincrement: false;
2130
+ hasRuntimeDefault: false;
2131
+ enumValues: [string, ...string[]];
2132
+ baseColumn: never;
2133
+ identity: undefined;
2134
+ generated: undefined;
2135
+ }, {}, {}>;
2136
+ action: drizzle_orm_pg_core.PgColumn<{
2137
+ name: "action";
2138
+ tableName: "audit_logs";
2139
+ dataType: "string";
2140
+ columnType: "PgText";
2141
+ data: string;
2142
+ driverParam: string;
2143
+ notNull: true;
2144
+ hasDefault: false;
2145
+ isPrimaryKey: false;
2146
+ isAutoincrement: false;
2147
+ hasRuntimeDefault: false;
2148
+ enumValues: [string, ...string[]];
2149
+ baseColumn: never;
2150
+ identity: undefined;
2151
+ generated: undefined;
2152
+ }, {}, {}>;
2153
+ changes: drizzle_orm_pg_core.PgColumn<{
2154
+ name: "changes";
2155
+ tableName: "audit_logs";
2156
+ dataType: "json";
2157
+ columnType: "PgJsonb";
2158
+ data: unknown;
2159
+ driverParam: unknown;
2160
+ notNull: false;
2161
+ hasDefault: false;
2162
+ isPrimaryKey: false;
2163
+ isAutoincrement: false;
2164
+ hasRuntimeDefault: false;
2165
+ enumValues: undefined;
2166
+ baseColumn: never;
2167
+ identity: undefined;
2168
+ generated: undefined;
2169
+ }, {}, {}>;
2170
+ actorTag: drizzle_orm_pg_core.PgColumn<{
2171
+ name: "actorTag";
2172
+ tableName: "audit_logs";
2173
+ dataType: "string";
2174
+ columnType: "PgText";
2175
+ data: string;
2176
+ driverParam: string;
2177
+ notNull: false;
2178
+ hasDefault: false;
2179
+ isPrimaryKey: false;
2180
+ isAutoincrement: false;
2181
+ hasRuntimeDefault: false;
2182
+ enumValues: [string, ...string[]];
2183
+ baseColumn: never;
2184
+ identity: undefined;
2185
+ generated: undefined;
2186
+ }, {}, {}>;
2187
+ ipAddress: drizzle_orm_pg_core.PgColumn<{
2188
+ name: "ipAddress";
2189
+ tableName: "audit_logs";
2190
+ dataType: "string";
2191
+ columnType: "PgText";
2192
+ data: string;
2193
+ driverParam: string;
2194
+ notNull: false;
2195
+ hasDefault: false;
2196
+ isPrimaryKey: false;
2197
+ isAutoincrement: false;
2198
+ hasRuntimeDefault: false;
2199
+ enumValues: [string, ...string[]];
2200
+ baseColumn: never;
2201
+ identity: undefined;
2202
+ generated: undefined;
2203
+ }, {}, {}>;
2204
+ userAgent: drizzle_orm_pg_core.PgColumn<{
2205
+ name: "userAgent";
2206
+ tableName: "audit_logs";
2207
+ dataType: "string";
2208
+ columnType: "PgText";
2209
+ data: string;
2210
+ driverParam: string;
2211
+ notNull: false;
2212
+ hasDefault: false;
2213
+ isPrimaryKey: false;
2214
+ isAutoincrement: false;
2215
+ hasRuntimeDefault: false;
2216
+ enumValues: [string, ...string[]];
2217
+ baseColumn: never;
2218
+ identity: undefined;
2219
+ generated: undefined;
2220
+ }, {}, {}>;
2221
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2222
+ name: string;
2223
+ tableName: "audit_logs";
2224
+ dataType: "date";
2225
+ columnType: "PgTimestamp";
2226
+ data: Date;
2227
+ driverParam: string;
2228
+ notNull: true;
2229
+ hasDefault: true;
2230
+ isPrimaryKey: false;
2231
+ isAutoincrement: false;
2232
+ hasRuntimeDefault: false;
2233
+ enumValues: undefined;
2234
+ baseColumn: never;
2235
+ identity: undefined;
2236
+ generated: undefined;
2237
+ }, {}, {}>;
2238
+ };
2239
+ dialect: "pg";
2240
+ }>;
2241
+ declare const superAdminUsers: drizzle_orm_pg_core.PgTableWithColumns<{
2242
+ name: "super_admin_users";
2243
+ schema: undefined;
2244
+ columns: {
2245
+ id: drizzle_orm_pg_core.PgColumn<{
2246
+ name: "id";
2247
+ tableName: "super_admin_users";
2248
+ dataType: "string";
2249
+ columnType: "PgText";
2250
+ data: string;
2251
+ driverParam: string;
2252
+ notNull: true;
2253
+ hasDefault: false;
2254
+ isPrimaryKey: true;
2255
+ isAutoincrement: false;
2256
+ hasRuntimeDefault: false;
2257
+ enumValues: [string, ...string[]];
2258
+ baseColumn: never;
2259
+ identity: undefined;
2260
+ generated: undefined;
2261
+ }, {}, {}>;
2262
+ email: drizzle_orm_pg_core.PgColumn<{
2263
+ name: "email";
2264
+ tableName: "super_admin_users";
2265
+ dataType: "string";
2266
+ columnType: "PgText";
2267
+ data: string;
2268
+ driverParam: string;
2269
+ notNull: true;
2270
+ hasDefault: false;
2271
+ isPrimaryKey: false;
2272
+ isAutoincrement: false;
2273
+ hasRuntimeDefault: false;
2274
+ enumValues: [string, ...string[]];
2275
+ baseColumn: never;
2276
+ identity: undefined;
2277
+ generated: undefined;
2278
+ }, {}, {}>;
2279
+ passwordHash: drizzle_orm_pg_core.PgColumn<{
2280
+ name: "passwordHash";
2281
+ tableName: "super_admin_users";
2282
+ dataType: "string";
2283
+ columnType: "PgText";
2284
+ data: string;
2285
+ driverParam: string;
2286
+ notNull: true;
2287
+ hasDefault: false;
2288
+ isPrimaryKey: false;
2289
+ isAutoincrement: false;
2290
+ hasRuntimeDefault: false;
2291
+ enumValues: [string, ...string[]];
2292
+ baseColumn: never;
2293
+ identity: undefined;
2294
+ generated: undefined;
2295
+ }, {}, {}>;
2296
+ firstName: drizzle_orm_pg_core.PgColumn<{
2297
+ name: "firstName";
2298
+ tableName: "super_admin_users";
2299
+ dataType: "string";
2300
+ columnType: "PgText";
2301
+ data: string;
2302
+ driverParam: string;
2303
+ notNull: false;
2304
+ hasDefault: false;
2305
+ isPrimaryKey: false;
2306
+ isAutoincrement: false;
2307
+ hasRuntimeDefault: false;
2308
+ enumValues: [string, ...string[]];
2309
+ baseColumn: never;
2310
+ identity: undefined;
2311
+ generated: undefined;
2312
+ }, {}, {}>;
2313
+ lastName: drizzle_orm_pg_core.PgColumn<{
2314
+ name: "lastName";
2315
+ tableName: "super_admin_users";
2316
+ dataType: "string";
2317
+ columnType: "PgText";
2318
+ data: string;
2319
+ driverParam: string;
2320
+ notNull: false;
2321
+ hasDefault: false;
2322
+ isPrimaryKey: false;
2323
+ isAutoincrement: false;
2324
+ hasRuntimeDefault: false;
2325
+ enumValues: [string, ...string[]];
2326
+ baseColumn: never;
2327
+ identity: undefined;
2328
+ generated: undefined;
2329
+ }, {}, {}>;
2330
+ platformRole: drizzle_orm_pg_core.PgColumn<{
2331
+ name: "platformRole";
2332
+ tableName: "super_admin_users";
2333
+ dataType: "string";
2334
+ columnType: "PgText";
2335
+ data: string;
2336
+ driverParam: string;
2337
+ notNull: true;
2338
+ hasDefault: true;
2339
+ isPrimaryKey: false;
2340
+ isAutoincrement: false;
2341
+ hasRuntimeDefault: false;
2342
+ enumValues: [string, ...string[]];
2343
+ baseColumn: never;
2344
+ identity: undefined;
2345
+ generated: undefined;
2346
+ }, {}, {}>;
2347
+ isActive: drizzle_orm_pg_core.PgColumn<{
2348
+ name: "isActive";
2349
+ tableName: "super_admin_users";
2350
+ dataType: "boolean";
2351
+ columnType: "PgBoolean";
2352
+ data: boolean;
2353
+ driverParam: boolean;
2354
+ notNull: true;
2355
+ hasDefault: true;
2356
+ isPrimaryKey: false;
2357
+ isAutoincrement: false;
2358
+ hasRuntimeDefault: false;
2359
+ enumValues: undefined;
2360
+ baseColumn: never;
2361
+ identity: undefined;
2362
+ generated: undefined;
2363
+ }, {}, {}>;
2364
+ lastLoginAt: drizzle_orm_pg_core.PgColumn<{
2365
+ name: string;
2366
+ tableName: "super_admin_users";
2367
+ dataType: "date";
2368
+ columnType: "PgTimestamp";
2369
+ data: Date;
2370
+ driverParam: string;
2371
+ notNull: false;
2372
+ hasDefault: false;
2373
+ isPrimaryKey: false;
2374
+ isAutoincrement: false;
2375
+ hasRuntimeDefault: false;
2376
+ enumValues: undefined;
2377
+ baseColumn: never;
2378
+ identity: undefined;
2379
+ generated: undefined;
2380
+ }, {}, {}>;
2381
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
2382
+ name: string;
2383
+ tableName: "super_admin_users";
2384
+ dataType: "date";
2385
+ columnType: "PgTimestamp";
2386
+ data: Date;
2387
+ driverParam: string;
2388
+ notNull: false;
2389
+ hasDefault: false;
2390
+ isPrimaryKey: false;
2391
+ isAutoincrement: false;
2392
+ hasRuntimeDefault: false;
2393
+ enumValues: undefined;
2394
+ baseColumn: never;
2395
+ identity: undefined;
2396
+ generated: undefined;
2397
+ }, {}, {}>;
2398
+ createdAt: drizzle_orm_pg_core.PgColumn<{
2399
+ name: string;
2400
+ tableName: "super_admin_users";
2401
+ dataType: "date";
2402
+ columnType: "PgTimestamp";
2403
+ data: Date;
2404
+ driverParam: string;
2405
+ notNull: true;
2406
+ hasDefault: true;
2407
+ isPrimaryKey: false;
2408
+ isAutoincrement: false;
2409
+ hasRuntimeDefault: false;
2410
+ enumValues: undefined;
2411
+ baseColumn: never;
2412
+ identity: undefined;
2413
+ generated: undefined;
2414
+ }, {}, {}>;
2415
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2416
+ name: string;
2417
+ tableName: "super_admin_users";
2418
+ dataType: "date";
2419
+ columnType: "PgTimestamp";
2420
+ data: Date;
2421
+ driverParam: string;
2422
+ notNull: true;
2423
+ hasDefault: false;
2424
+ isPrimaryKey: false;
2425
+ isAutoincrement: false;
2426
+ hasRuntimeDefault: false;
2427
+ enumValues: undefined;
2428
+ baseColumn: never;
2429
+ identity: undefined;
2430
+ generated: undefined;
2431
+ }, {}, {}>;
2432
+ };
2433
+ dialect: "pg";
2434
+ }>;
2435
+ declare const superAdminMfa: drizzle_orm_pg_core.PgTableWithColumns<{
2436
+ name: "super_admin_mfa";
2437
+ schema: undefined;
2438
+ columns: {
2439
+ userId: drizzle_orm_pg_core.PgColumn<{
2440
+ name: "userId";
2441
+ tableName: "super_admin_mfa";
2442
+ dataType: "string";
2443
+ columnType: "PgText";
2444
+ data: string;
2445
+ driverParam: string;
2446
+ notNull: true;
2447
+ hasDefault: false;
2448
+ isPrimaryKey: true;
2449
+ isAutoincrement: false;
2450
+ hasRuntimeDefault: false;
2451
+ enumValues: [string, ...string[]];
2452
+ baseColumn: never;
2453
+ identity: undefined;
2454
+ generated: undefined;
2455
+ }, {}, {}>;
2456
+ secret: drizzle_orm_pg_core.PgColumn<{
2457
+ name: "secret";
2458
+ tableName: "super_admin_mfa";
2459
+ dataType: "string";
2460
+ columnType: "PgText";
2461
+ data: string;
2462
+ driverParam: string;
2463
+ notNull: false;
2464
+ hasDefault: false;
2465
+ isPrimaryKey: false;
2466
+ isAutoincrement: false;
2467
+ hasRuntimeDefault: false;
2468
+ enumValues: [string, ...string[]];
2469
+ baseColumn: never;
2470
+ identity: undefined;
2471
+ generated: undefined;
2472
+ }, {}, {}>;
2473
+ enabledAt: drizzle_orm_pg_core.PgColumn<{
2474
+ name: string;
2475
+ tableName: "super_admin_mfa";
2476
+ dataType: "date";
2477
+ columnType: "PgTimestamp";
2478
+ data: Date;
2479
+ driverParam: string;
2480
+ notNull: false;
2481
+ hasDefault: false;
2482
+ isPrimaryKey: false;
2483
+ isAutoincrement: false;
2484
+ hasRuntimeDefault: false;
2485
+ enumValues: undefined;
2486
+ baseColumn: never;
2487
+ identity: undefined;
2488
+ generated: undefined;
2489
+ }, {}, {}>;
2490
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
2491
+ name: string;
2492
+ tableName: "super_admin_mfa";
2493
+ dataType: "date";
2494
+ columnType: "PgTimestamp";
2495
+ data: Date;
2496
+ driverParam: string;
2497
+ notNull: true;
2498
+ hasDefault: false;
2499
+ isPrimaryKey: false;
2500
+ isAutoincrement: false;
2501
+ hasRuntimeDefault: false;
2502
+ enumValues: undefined;
2503
+ baseColumn: never;
2504
+ identity: undefined;
2505
+ generated: undefined;
2506
+ }, {}, {}>;
2507
+ };
2508
+ dialect: "pg";
2509
+ }>;
2510
+
2511
+ declare const schema_auditLogs: typeof auditLogs;
2512
+ declare const schema_featureCatalogEntries: typeof featureCatalogEntries;
2513
+ declare const schema_planVersions: typeof planVersions;
2514
+ declare const schema_plans: typeof plans;
2515
+ declare const schema_promoCodeRedemptions: typeof promoCodeRedemptions;
2516
+ declare const schema_promoCodeValidationLogs: typeof promoCodeValidationLogs;
2517
+ declare const schema_promoCodes: typeof promoCodes;
2518
+ declare const schema_subscriptions: typeof subscriptions;
2519
+ declare const schema_superAdminMfa: typeof superAdminMfa;
2520
+ declare const schema_superAdminUsers: typeof superAdminUsers;
2521
+ declare namespace schema {
2522
+ export { schema_auditLogs as auditLogs, schema_featureCatalogEntries as featureCatalogEntries, schema_planVersions as planVersions, schema_plans as plans, schema_promoCodeRedemptions as promoCodeRedemptions, schema_promoCodeValidationLogs as promoCodeValidationLogs, schema_promoCodes as promoCodes, schema_subscriptions as subscriptions, schema_superAdminMfa as superAdminMfa, schema_superAdminUsers as superAdminUsers };
2523
+ }
2524
+
2525
+ /**
2526
+ * `TransactionRunner` over `db.transaction`. The Drizzle transaction handle
2527
+ * is passed through as the opaque `TransactionContext`; every repository in
2528
+ * this package resolves it back via `resolveDb`.
2529
+ */
2530
+ declare class DrizzleTransactionRunner implements TransactionRunner {
2531
+ private readonly db;
2532
+ constructor(db: DrizzleClient);
2533
+ run<T>(fn: (tx: TransactionContext) => Promise<T>): Promise<T>;
2534
+ }
2535
+
2536
+ /**
2537
+ * Default implementation of `MfaPort` against the canonical
2538
+ * `super_admin_mfa` table (prisma-fragments/10-super-admin.prisma).
2539
+ */
2540
+ declare class DrizzleMfaAdapter implements MfaPort {
2541
+ private readonly db;
2542
+ constructor(db: DrizzleClient);
2543
+ getSecret(userId: string): Promise<string | null>;
2544
+ setSecret(userId: string, secret: string | null): Promise<void>;
2545
+ isEnabled(userId: string): Promise<boolean>;
2546
+ }
2547
+
2548
+ /** `'web:<email>:<sessionId>'` / `'cli:<email>:<host>'` — audit-event.schema.json ActorTagPattern. */
2549
+ declare function buildActorTag(actor: AdminActor): string;
2550
+ /**
2551
+ * Default implementation of `AuditPort` against the canonical `audit_logs`
2552
+ * table. SuperAdmin actions are platform-global, so `tenantId` stays null;
2553
+ * the actor lands as `userId` + `actorTag`.
2554
+ */
2555
+ declare class DrizzleAuditAdapter implements AuditPort {
2556
+ private readonly db;
2557
+ constructor(db: DrizzleClient);
2558
+ write(input: {
2559
+ actor: AdminActor;
2560
+ entity: string;
2561
+ entityId: string;
2562
+ action: string;
2563
+ changes?: Record<string, unknown>;
2564
+ }): Promise<void>;
2565
+ }
2566
+
2567
+ /**
2568
+ * `AuditQueryPort` against the canonical `audit_logs` table. Powers
2569
+ * `<app> audit tail` and the admin audit pages.
2570
+ */
2571
+ declare class DrizzleAuditQueryAdapter implements AuditQueryPort {
2572
+ private readonly db;
2573
+ constructor(db: DrizzleClient);
2574
+ list(filter: AuditQuery): Promise<AuditEntry[]>;
2575
+ }
2576
+
2577
+ /** `AuditStatsPort` against the canonical `audit_logs` table. */
2578
+ declare class DrizzleAuditStatsAdapter implements AuditStatsPort {
2579
+ private readonly db;
2580
+ constructor(db: DrizzleClient);
2581
+ countSince(since: Date): Promise<number>;
2582
+ }
2583
+
2584
+ /**
2585
+ * Default implementation of `RlsBypassPort` via `node:async_hooks` — sets
2586
+ * `bypass: true` for the duration of the given callback in the current
2587
+ * async context. Your database layer reads `isBypassActive()` and issues
2588
+ * `SET LOCAL row_security = off` in the current transaction when active.
2589
+ *
2590
+ * Identical to the adapter-prisma implementation — kept per-adapter instead
2591
+ * of a shared package because 15 stable, dependency-free lines do not
2592
+ * justify a cross-adapter dependency.
2593
+ */
2594
+ declare class AsyncLocalRlsBypassAdapter implements RlsBypassPort {
2595
+ private readonly storage;
2596
+ runWithBypass<T>(fn: () => Promise<T>): Promise<T>;
2597
+ /** `true` during the execution of a `runWithBypass(...)` callback. */
2598
+ isBypassActive(): boolean;
2599
+ }
2600
+
2601
+ /**
2602
+ * `SubscriptionRepository` against the canonical `subscriptions` +
2603
+ * `plan_versions` tables. Same limitations as the Prisma adapter:
2604
+ * businessType-only subscriptions raise a descriptive error, and
2605
+ * `countByBundleVersionId` is not implemented (fail-closed).
2606
+ */
2607
+ declare class DrizzleSubscriptionRepository implements SubscriptionRepository {
2608
+ private readonly db;
2609
+ constructor(db: DrizzleClient);
2610
+ findByTenantId(tenantId: string): Promise<SubscriptionRecord | null>;
2611
+ findByTenantIdLocked(tenantId: string, tx: TransactionContext): Promise<SubscriptionRecord | null>;
2612
+ countByPlanVersionId(planVersionId: string): Promise<number>;
2613
+ countActiveByPlanKey(_projectKey: string): Promise<Record<string, number>>;
2614
+ private loadByTenantId;
2615
+ private toRecord;
2616
+ }
2617
+
2618
+ /**
2619
+ * `PlanVersionRepository` against the canonical `plan_versions` table.
2620
+ * `findActive` is deliberately not implemented — the canonical schema has no
2621
+ * `validFrom`/`validUntil` columns yet (see docs/data-model.md, Known gaps).
2622
+ */
2623
+ declare class DrizzlePlanVersionRepository implements PlanVersionRepository {
2624
+ private readonly db;
2625
+ constructor(db: DrizzleClient);
2626
+ findLatestLive(planId: string, tx?: TransactionContext): Promise<PlanVersionRecord | null>;
2627
+ }
2628
+
2629
+ /**
2630
+ * `PromoCodeRepository` against the canonical `promo_codes` table.
2631
+ *
2632
+ * The availability-critical mutations (`claimSlot`, `releaseSlot`,
2633
+ * `markExhaustedIfFull`) run as single guarded UPDATE statements — the
2634
+ * column-to-column comparison and the conditional status flip are SQL
2635
+ * fragments inside the query builder. Row counts come from `RETURNING`,
2636
+ * which is uniform across every Drizzle pg driver.
2637
+ */
2638
+ declare class DrizzlePromoCodeRepository implements PromoCodeRepository {
2639
+ private readonly db;
2640
+ constructor(db: DrizzleClient);
2641
+ findById(id: string): Promise<PromoCodeRecord | null>;
2642
+ findByCode(code: string, tx?: TransactionContext): Promise<PromoCodeRecord | null>;
2643
+ findMany(filter: PromoCodeFilter): Promise<PromoCodeRecord[]>;
2644
+ create(data: CreatePromoCodeData): Promise<PromoCodeRecord>;
2645
+ update(id: string, data: UpdatePromoCodeData): Promise<PromoCodeRecord>;
2646
+ softDelete(id: string): Promise<void>;
2647
+ claimSlot(id: string, tx?: TransactionContext): Promise<boolean>;
2648
+ markExhaustedIfFull(id: string, tx?: TransactionContext): Promise<void>;
2649
+ releaseSlot(id: string, tx?: TransactionContext): Promise<void>;
2650
+ expireDueCodes(now: Date): Promise<number>;
2651
+ }
2652
+
2653
+ /**
2654
+ * `PromoCodeRedemptionRepository` against the canonical
2655
+ * `promo_code_redemptions` table. Double redemption per subscription is
2656
+ * excluded by the `subscriptionId` unique constraint — a concurrent second
2657
+ * `create` fails at the database.
2658
+ */
2659
+ declare class DrizzlePromoCodeRedemptionRepository implements PromoCodeRedemptionRepository {
2660
+ private readonly db;
2661
+ constructor(db: DrizzleClient);
2662
+ findBySubscription(subscriptionId: string, tx?: TransactionContext): Promise<PromoCodeRedemptionRecord | null>;
2663
+ create(data: Omit<PromoCodeRedemptionRecord, 'id' | 'redeemedAt' | 'status' | 'reversedAt'>, tx?: TransactionContext): Promise<PromoCodeRedemptionRecord>;
2664
+ setReversed(id: string, tx?: TransactionContext): Promise<PromoCodeRedemptionRecord>;
2665
+ countByPromoCode(promoCodeId: string, status?: PromoCodeRedemptionStatus): Promise<number>;
2666
+ listByPromoCode(promoCodeId: string): Promise<PromoCodeRedemptionListItem[]>;
2667
+ expireDueRedemptions(now: Date): Promise<number>;
2668
+ }
2669
+
2670
+ /** `PromoCodeValidationLogRepository` against `promo_code_validation_logs`. */
2671
+ declare class DrizzlePromoCodeValidationLogRepository implements PromoCodeValidationLogRepository {
2672
+ private readonly db;
2673
+ constructor(db: DrizzleClient);
2674
+ log(args: {
2675
+ promoCodeId: string | null;
2676
+ codeAttempt: string;
2677
+ result: string;
2678
+ ipHash?: string;
2679
+ sessionId?: string;
2680
+ }): Promise<void>;
2681
+ countValid(promoCodeId: string): Promise<number>;
2682
+ }
2683
+
2684
+ /** `PromoSubscriptionLookup` against the canonical `subscriptions` table. */
2685
+ declare class DrizzlePromoSubscriptionLookup implements PromoSubscriptionLookup {
2686
+ private readonly db;
2687
+ constructor(db: DrizzleClient);
2688
+ findById(subscriptionId: string, tx?: TransactionContext): Promise<{
2689
+ id: string;
2690
+ tenantId: string;
2691
+ plan: string;
2692
+ billingCycle: BillingCycle;
2693
+ startedAt: Date | null;
2694
+ } | null>;
2695
+ }
2696
+
2697
+ /**
2698
+ * Default `PromoRevenueDeductionAggregator` for apps without an
2699
+ * `InvoiceDiscount` table: always reports `'0.00'` (the documented port
2700
+ * fallback). Mirrors the adapter-prisma default — kept per-adapter instead
2701
+ * of a shared package because 10 stable lines do not justify a dependency.
2702
+ */
2703
+ declare class ZeroPromoRevenueDeductionAggregator implements PromoRevenueDeductionAggregator {
2704
+ sumGrossForPromoCode(_promoCodeId: string): Promise<string>;
2705
+ }
2706
+
2707
+ /**
2708
+ * DI token for the app's `PasswordHasher` implementation (argon2/bcrypt —
2709
+ * the algorithm stays app-specific). `drizzlePersistence({ passwordHasher })`
2710
+ * wires it automatically; manual setups bind it themselves.
2711
+ */
2712
+ declare const PASSWORD_HASHER_TOKEN: unique symbol;
2713
+ /**
2714
+ * `SuperAdminProvisioningPort` against the canonical `super_admin_users`
2715
+ * table. Backs the first-run setup wizard and `<app> user create-super-admin`.
2716
+ */
2717
+ declare class DrizzleSuperAdminBootstrapAdapter implements SuperAdminProvisioningPort {
2718
+ private readonly db;
2719
+ private readonly passwordHasher;
2720
+ constructor(db: DrizzleClient, passwordHasher: PasswordHasher);
2721
+ countSuperAdmins(): Promise<number>;
2722
+ createSuperAdmin(input: CreateSuperAdminCliInput): Promise<PlatformUserDto>;
2723
+ }
2724
+
2725
+ /**
2726
+ * `PlanCatalogReadSink` against the canonical `plans`, `plan_versions` and
2727
+ * `feature_catalog_entries` tables — DB hydration of the plan catalog at
2728
+ * boot. `validFrom`/`validUntil` are reported as null: the canonical schema
2729
+ * does not persist booking windows yet (see docs/data-model.md, Known gaps).
2730
+ */
2731
+ declare class DrizzlePlanCatalogReadSink implements PlanCatalogReadSink {
2732
+ private readonly db;
2733
+ constructor(db: DrizzleClient);
2734
+ loadSnapshot(projectKey: string): Promise<PlanCatalogReadSnapshot>;
2735
+ }
2736
+
2737
+ /**
2738
+ * `PlanCatalogImportSink` against the canonical catalog tables — the
2739
+ * one-shot `saas.yaml → DB` import at boot. Idempotency per the port
2740
+ * contract: existing rows (identity match) are skipped without error.
2741
+ */
2742
+ declare class DrizzlePlanCatalogImportSink implements PlanCatalogImportSink {
2743
+ private readonly db;
2744
+ constructor(db: DrizzleClient);
2745
+ upsertPlan(input: UpsertPlanInput): Promise<UpsertResult>;
2746
+ upsertPlanVersion(input: UpsertPlanVersionInput): Promise<UpsertResult>;
2747
+ upsertFeatureCatalogEntry(input: UpsertFeatureCatalogEntryInput): Promise<UpsertResult>;
2748
+ }
2749
+
2750
+ export { AsyncLocalRlsBypassAdapter, DRIZZLE_DB_TOKEN, DrizzleAuditAdapter, DrizzleAuditQueryAdapter, DrizzleAuditStatsAdapter, type DrizzleClient, DrizzleMfaAdapter, type DrizzlePersistenceOptions, DrizzlePlanCatalogImportSink, DrizzlePlanCatalogReadSink, DrizzlePlanVersionRepository, DrizzlePromoCodeRedemptionRepository, DrizzlePromoCodeRepository, DrizzlePromoCodeValidationLogRepository, DrizzlePromoSubscriptionLookup, DrizzleSubscriptionRepository, DrizzleSuperAdminBootstrapAdapter, DrizzleTransactionRunner, PASSWORD_HASHER_TOKEN, ZeroPromoRevenueDeductionAggregator, buildActorTag, drizzlePersistence, schema as saasicatSchema };