@nehorai/payments-drizzle 0.1.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,1729 @@
1
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
2
+
3
+ /**
4
+ * PaymentOS - Payment Transactions Schema
5
+ *
6
+ * Core table for tracking all payment operations.
7
+ * Implements Two-Phase Commit (J5) pattern with authorize/capture flow.
8
+ *
9
+ * Note: User FK is optional and configured via schema-config.ts
10
+ */
11
+ /**
12
+ * Payment transaction states (strict state machine)
13
+ * @see src/lib/payments/types/state-machine.ts for transition rules
14
+ */
15
+ type PaymentTransactionStatus = 'created' | 'pending_authorization' | 'authorized' | 'capturing' | 'captured' | 'voided' | 'failed' | 'expired' | 'partially_refunded' | 'fully_refunded';
16
+ /**
17
+ * Payment transaction types
18
+ */
19
+ type PaymentTransactionType = 'one_time_purchase' | 'subscription_initial' | 'subscription_renewal' | 'refund';
20
+ /**
21
+ * Tax invoice status (Israeli compliance)
22
+ */
23
+ type PaymentTaxInvoiceStatus = 'pending' | 'generated' | 'sent' | 'failed';
24
+ /**
25
+ * Payment transactions table
26
+ *
27
+ * FK to user table is NOT defined here - it's application-specific.
28
+ * The user_id column stores the UUID, but the FK constraint should be
29
+ * added via migration if needed for your specific user table.
30
+ *
31
+ * To add FK constraint, create a migration:
32
+ * ```sql
33
+ * ALTER TABLE payment_transactions
34
+ * ADD CONSTRAINT payment_transactions_user_id_fkey
35
+ * FOREIGN KEY (user_id) REFERENCES your_users_table(id) ON DELETE CASCADE;
36
+ * ```
37
+ */
38
+ declare const paymentTransactions: drizzle_orm_pg_core.PgTableWithColumns<{
39
+ name: "payment_transactions";
40
+ schema: undefined;
41
+ columns: {
42
+ id: drizzle_orm_pg_core.PgColumn<{
43
+ name: "id";
44
+ tableName: "payment_transactions";
45
+ dataType: "string";
46
+ columnType: "PgUUID";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: true;
50
+ hasDefault: true;
51
+ isPrimaryKey: true;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: undefined;
55
+ baseColumn: never;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }, {}, {}>;
59
+ internal_payment_id: drizzle_orm_pg_core.PgColumn<{
60
+ name: "internal_payment_id";
61
+ tableName: "payment_transactions";
62
+ dataType: "string";
63
+ columnType: "PgText";
64
+ data: string;
65
+ driverParam: string;
66
+ notNull: true;
67
+ hasDefault: false;
68
+ isPrimaryKey: false;
69
+ isAutoincrement: false;
70
+ hasRuntimeDefault: false;
71
+ enumValues: [string, ...string[]];
72
+ baseColumn: never;
73
+ identity: undefined;
74
+ generated: undefined;
75
+ }, {}, {}>;
76
+ idempotency_key: drizzle_orm_pg_core.PgColumn<{
77
+ name: "idempotency_key";
78
+ tableName: "payment_transactions";
79
+ dataType: "string";
80
+ columnType: "PgText";
81
+ data: string;
82
+ driverParam: string;
83
+ notNull: false;
84
+ hasDefault: false;
85
+ isPrimaryKey: false;
86
+ isAutoincrement: false;
87
+ hasRuntimeDefault: false;
88
+ enumValues: [string, ...string[]];
89
+ baseColumn: never;
90
+ identity: undefined;
91
+ generated: undefined;
92
+ }, {}, {}>;
93
+ user_id: drizzle_orm_pg_core.PgColumn<{
94
+ name: "user_id";
95
+ tableName: "payment_transactions";
96
+ dataType: "string";
97
+ columnType: "PgUUID";
98
+ data: string;
99
+ driverParam: string;
100
+ notNull: true;
101
+ hasDefault: false;
102
+ isPrimaryKey: false;
103
+ isAutoincrement: false;
104
+ hasRuntimeDefault: false;
105
+ enumValues: undefined;
106
+ baseColumn: never;
107
+ identity: undefined;
108
+ generated: undefined;
109
+ }, {}, {}>;
110
+ transaction_type: drizzle_orm_pg_core.PgColumn<{
111
+ name: "transaction_type";
112
+ tableName: "payment_transactions";
113
+ dataType: "string";
114
+ columnType: "PgText";
115
+ data: PaymentTransactionType;
116
+ driverParam: string;
117
+ notNull: true;
118
+ hasDefault: false;
119
+ isPrimaryKey: false;
120
+ isAutoincrement: false;
121
+ hasRuntimeDefault: false;
122
+ enumValues: [string, ...string[]];
123
+ baseColumn: never;
124
+ identity: undefined;
125
+ generated: undefined;
126
+ }, {}, {
127
+ $type: PaymentTransactionType;
128
+ }>;
129
+ status: drizzle_orm_pg_core.PgColumn<{
130
+ name: "status";
131
+ tableName: "payment_transactions";
132
+ dataType: "string";
133
+ columnType: "PgText";
134
+ data: PaymentTransactionStatus;
135
+ driverParam: string;
136
+ notNull: true;
137
+ hasDefault: true;
138
+ isPrimaryKey: false;
139
+ isAutoincrement: false;
140
+ hasRuntimeDefault: false;
141
+ enumValues: [string, ...string[]];
142
+ baseColumn: never;
143
+ identity: undefined;
144
+ generated: undefined;
145
+ }, {}, {
146
+ $type: PaymentTransactionStatus;
147
+ }>;
148
+ amount_minor: drizzle_orm_pg_core.PgColumn<{
149
+ name: "amount_minor";
150
+ tableName: "payment_transactions";
151
+ dataType: "string";
152
+ columnType: "PgNumeric";
153
+ data: string;
154
+ driverParam: string;
155
+ notNull: true;
156
+ hasDefault: false;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: false;
160
+ enumValues: undefined;
161
+ baseColumn: never;
162
+ identity: undefined;
163
+ generated: undefined;
164
+ }, {}, {}>;
165
+ currency: drizzle_orm_pg_core.PgColumn<{
166
+ name: "currency";
167
+ tableName: "payment_transactions";
168
+ dataType: "string";
169
+ columnType: "PgText";
170
+ data: string;
171
+ driverParam: string;
172
+ notNull: true;
173
+ hasDefault: true;
174
+ isPrimaryKey: false;
175
+ isAutoincrement: false;
176
+ hasRuntimeDefault: false;
177
+ enumValues: [string, ...string[]];
178
+ baseColumn: never;
179
+ identity: undefined;
180
+ generated: undefined;
181
+ }, {}, {}>;
182
+ original_amount_minor: drizzle_orm_pg_core.PgColumn<{
183
+ name: "original_amount_minor";
184
+ tableName: "payment_transactions";
185
+ dataType: "string";
186
+ columnType: "PgNumeric";
187
+ data: string;
188
+ driverParam: string;
189
+ notNull: false;
190
+ hasDefault: false;
191
+ isPrimaryKey: false;
192
+ isAutoincrement: false;
193
+ hasRuntimeDefault: false;
194
+ enumValues: undefined;
195
+ baseColumn: never;
196
+ identity: undefined;
197
+ generated: undefined;
198
+ }, {}, {}>;
199
+ original_currency: drizzle_orm_pg_core.PgColumn<{
200
+ name: "original_currency";
201
+ tableName: "payment_transactions";
202
+ dataType: "string";
203
+ columnType: "PgText";
204
+ data: string;
205
+ driverParam: string;
206
+ notNull: false;
207
+ hasDefault: false;
208
+ isPrimaryKey: false;
209
+ isAutoincrement: false;
210
+ hasRuntimeDefault: false;
211
+ enumValues: [string, ...string[]];
212
+ baseColumn: never;
213
+ identity: undefined;
214
+ generated: undefined;
215
+ }, {}, {}>;
216
+ currency_conversion_rate: drizzle_orm_pg_core.PgColumn<{
217
+ name: "currency_conversion_rate";
218
+ tableName: "payment_transactions";
219
+ dataType: "string";
220
+ columnType: "PgNumeric";
221
+ data: string;
222
+ driverParam: string;
223
+ notNull: false;
224
+ hasDefault: false;
225
+ isPrimaryKey: false;
226
+ isAutoincrement: false;
227
+ hasRuntimeDefault: false;
228
+ enumValues: undefined;
229
+ baseColumn: never;
230
+ identity: undefined;
231
+ generated: undefined;
232
+ }, {}, {}>;
233
+ provider: drizzle_orm_pg_core.PgColumn<{
234
+ name: "provider";
235
+ tableName: "payment_transactions";
236
+ dataType: "string";
237
+ columnType: "PgText";
238
+ data: string;
239
+ driverParam: string;
240
+ notNull: true;
241
+ hasDefault: false;
242
+ isPrimaryKey: false;
243
+ isAutoincrement: false;
244
+ hasRuntimeDefault: false;
245
+ enumValues: [string, ...string[]];
246
+ baseColumn: never;
247
+ identity: undefined;
248
+ generated: undefined;
249
+ }, {}, {}>;
250
+ provider_transaction_id: drizzle_orm_pg_core.PgColumn<{
251
+ name: "provider_transaction_id";
252
+ tableName: "payment_transactions";
253
+ dataType: "string";
254
+ columnType: "PgText";
255
+ data: string;
256
+ driverParam: string;
257
+ notNull: false;
258
+ hasDefault: false;
259
+ isPrimaryKey: false;
260
+ isAutoincrement: false;
261
+ hasRuntimeDefault: false;
262
+ enumValues: [string, ...string[]];
263
+ baseColumn: never;
264
+ identity: undefined;
265
+ generated: undefined;
266
+ }, {}, {}>;
267
+ provider_authorization_code: drizzle_orm_pg_core.PgColumn<{
268
+ name: "provider_authorization_code";
269
+ tableName: "payment_transactions";
270
+ dataType: "string";
271
+ columnType: "PgText";
272
+ data: string;
273
+ driverParam: string;
274
+ notNull: false;
275
+ hasDefault: false;
276
+ isPrimaryKey: false;
277
+ isAutoincrement: false;
278
+ hasRuntimeDefault: false;
279
+ enumValues: [string, ...string[]];
280
+ baseColumn: never;
281
+ identity: undefined;
282
+ generated: undefined;
283
+ }, {}, {}>;
284
+ provider_metadata: drizzle_orm_pg_core.PgColumn<{
285
+ name: "provider_metadata";
286
+ tableName: "payment_transactions";
287
+ dataType: "json";
288
+ columnType: "PgJsonb";
289
+ data: Record<string, unknown>;
290
+ driverParam: unknown;
291
+ notNull: false;
292
+ hasDefault: false;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: undefined;
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}, {
301
+ $type: Record<string, unknown>;
302
+ }>;
303
+ authorized_at: drizzle_orm_pg_core.PgColumn<{
304
+ name: "authorized_at";
305
+ tableName: "payment_transactions";
306
+ dataType: "date";
307
+ columnType: "PgTimestamp";
308
+ data: Date;
309
+ driverParam: string;
310
+ notNull: false;
311
+ hasDefault: false;
312
+ isPrimaryKey: false;
313
+ isAutoincrement: false;
314
+ hasRuntimeDefault: false;
315
+ enumValues: undefined;
316
+ baseColumn: never;
317
+ identity: undefined;
318
+ generated: undefined;
319
+ }, {}, {}>;
320
+ captured_at: drizzle_orm_pg_core.PgColumn<{
321
+ name: "captured_at";
322
+ tableName: "payment_transactions";
323
+ dataType: "date";
324
+ columnType: "PgTimestamp";
325
+ data: Date;
326
+ driverParam: string;
327
+ notNull: false;
328
+ hasDefault: false;
329
+ isPrimaryKey: false;
330
+ isAutoincrement: false;
331
+ hasRuntimeDefault: false;
332
+ enumValues: undefined;
333
+ baseColumn: never;
334
+ identity: undefined;
335
+ generated: undefined;
336
+ }, {}, {}>;
337
+ voided_at: drizzle_orm_pg_core.PgColumn<{
338
+ name: "voided_at";
339
+ tableName: "payment_transactions";
340
+ dataType: "date";
341
+ columnType: "PgTimestamp";
342
+ data: Date;
343
+ driverParam: string;
344
+ notNull: false;
345
+ hasDefault: false;
346
+ isPrimaryKey: false;
347
+ isAutoincrement: false;
348
+ hasRuntimeDefault: false;
349
+ enumValues: undefined;
350
+ baseColumn: never;
351
+ identity: undefined;
352
+ generated: undefined;
353
+ }, {}, {}>;
354
+ capture_deadline: drizzle_orm_pg_core.PgColumn<{
355
+ name: "capture_deadline";
356
+ tableName: "payment_transactions";
357
+ dataType: "date";
358
+ columnType: "PgTimestamp";
359
+ data: Date;
360
+ driverParam: string;
361
+ notNull: false;
362
+ hasDefault: false;
363
+ isPrimaryKey: false;
364
+ isAutoincrement: false;
365
+ hasRuntimeDefault: false;
366
+ enumValues: undefined;
367
+ baseColumn: never;
368
+ identity: undefined;
369
+ generated: undefined;
370
+ }, {}, {}>;
371
+ refunded_amount_minor: drizzle_orm_pg_core.PgColumn<{
372
+ name: "refunded_amount_minor";
373
+ tableName: "payment_transactions";
374
+ dataType: "string";
375
+ columnType: "PgNumeric";
376
+ data: string;
377
+ driverParam: string;
378
+ notNull: false;
379
+ hasDefault: true;
380
+ isPrimaryKey: false;
381
+ isAutoincrement: false;
382
+ hasRuntimeDefault: false;
383
+ enumValues: undefined;
384
+ baseColumn: never;
385
+ identity: undefined;
386
+ generated: undefined;
387
+ }, {}, {}>;
388
+ last_refund_at: drizzle_orm_pg_core.PgColumn<{
389
+ name: "last_refund_at";
390
+ tableName: "payment_transactions";
391
+ dataType: "date";
392
+ columnType: "PgTimestamp";
393
+ data: Date;
394
+ driverParam: string;
395
+ notNull: false;
396
+ hasDefault: false;
397
+ isPrimaryKey: false;
398
+ isAutoincrement: false;
399
+ hasRuntimeDefault: false;
400
+ enumValues: undefined;
401
+ baseColumn: never;
402
+ identity: undefined;
403
+ generated: undefined;
404
+ }, {}, {}>;
405
+ tax_invoice_status: drizzle_orm_pg_core.PgColumn<{
406
+ name: "tax_invoice_status";
407
+ tableName: "payment_transactions";
408
+ dataType: "string";
409
+ columnType: "PgText";
410
+ data: PaymentTaxInvoiceStatus;
411
+ driverParam: string;
412
+ notNull: false;
413
+ hasDefault: true;
414
+ isPrimaryKey: false;
415
+ isAutoincrement: false;
416
+ hasRuntimeDefault: false;
417
+ enumValues: [string, ...string[]];
418
+ baseColumn: never;
419
+ identity: undefined;
420
+ generated: undefined;
421
+ }, {}, {
422
+ $type: PaymentTaxInvoiceStatus;
423
+ }>;
424
+ tax_invoice_number: drizzle_orm_pg_core.PgColumn<{
425
+ name: "tax_invoice_number";
426
+ tableName: "payment_transactions";
427
+ dataType: "string";
428
+ columnType: "PgText";
429
+ data: string;
430
+ driverParam: string;
431
+ notNull: false;
432
+ hasDefault: false;
433
+ isPrimaryKey: false;
434
+ isAutoincrement: false;
435
+ hasRuntimeDefault: false;
436
+ enumValues: [string, ...string[]];
437
+ baseColumn: never;
438
+ identity: undefined;
439
+ generated: undefined;
440
+ }, {}, {}>;
441
+ tax_invoice_url: drizzle_orm_pg_core.PgColumn<{
442
+ name: "tax_invoice_url";
443
+ tableName: "payment_transactions";
444
+ dataType: "string";
445
+ columnType: "PgText";
446
+ data: string;
447
+ driverParam: string;
448
+ notNull: false;
449
+ hasDefault: false;
450
+ isPrimaryKey: false;
451
+ isAutoincrement: false;
452
+ hasRuntimeDefault: false;
453
+ enumValues: [string, ...string[]];
454
+ baseColumn: never;
455
+ identity: undefined;
456
+ generated: undefined;
457
+ }, {}, {}>;
458
+ failure_code: drizzle_orm_pg_core.PgColumn<{
459
+ name: "failure_code";
460
+ tableName: "payment_transactions";
461
+ dataType: "string";
462
+ columnType: "PgText";
463
+ data: string;
464
+ driverParam: string;
465
+ notNull: false;
466
+ hasDefault: false;
467
+ isPrimaryKey: false;
468
+ isAutoincrement: false;
469
+ hasRuntimeDefault: false;
470
+ enumValues: [string, ...string[]];
471
+ baseColumn: never;
472
+ identity: undefined;
473
+ generated: undefined;
474
+ }, {}, {}>;
475
+ failure_message: drizzle_orm_pg_core.PgColumn<{
476
+ name: "failure_message";
477
+ tableName: "payment_transactions";
478
+ dataType: "string";
479
+ columnType: "PgText";
480
+ data: string;
481
+ driverParam: string;
482
+ notNull: false;
483
+ hasDefault: false;
484
+ isPrimaryKey: false;
485
+ isAutoincrement: false;
486
+ hasRuntimeDefault: false;
487
+ enumValues: [string, ...string[]];
488
+ baseColumn: never;
489
+ identity: undefined;
490
+ generated: undefined;
491
+ }, {}, {}>;
492
+ failure_details: drizzle_orm_pg_core.PgColumn<{
493
+ name: "failure_details";
494
+ tableName: "payment_transactions";
495
+ dataType: "json";
496
+ columnType: "PgJsonb";
497
+ data: unknown;
498
+ driverParam: unknown;
499
+ notNull: false;
500
+ hasDefault: false;
501
+ isPrimaryKey: false;
502
+ isAutoincrement: false;
503
+ hasRuntimeDefault: false;
504
+ enumValues: undefined;
505
+ baseColumn: never;
506
+ identity: undefined;
507
+ generated: undefined;
508
+ }, {}, {}>;
509
+ description: drizzle_orm_pg_core.PgColumn<{
510
+ name: "description";
511
+ tableName: "payment_transactions";
512
+ dataType: "string";
513
+ columnType: "PgText";
514
+ data: string;
515
+ driverParam: string;
516
+ notNull: false;
517
+ hasDefault: false;
518
+ isPrimaryKey: false;
519
+ isAutoincrement: false;
520
+ hasRuntimeDefault: false;
521
+ enumValues: [string, ...string[]];
522
+ baseColumn: never;
523
+ identity: undefined;
524
+ generated: undefined;
525
+ }, {}, {}>;
526
+ metadata: drizzle_orm_pg_core.PgColumn<{
527
+ name: "metadata";
528
+ tableName: "payment_transactions";
529
+ dataType: "json";
530
+ columnType: "PgJsonb";
531
+ data: {
532
+ [key: string]: unknown;
533
+ credit_package_id?: string;
534
+ subscription_plan_id?: string;
535
+ credits_amount?: number;
536
+ };
537
+ driverParam: unknown;
538
+ notNull: false;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: undefined;
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, {}, {
548
+ $type: {
549
+ [key: string]: unknown;
550
+ credit_package_id?: string;
551
+ subscription_plan_id?: string;
552
+ credits_amount?: number;
553
+ };
554
+ }>;
555
+ created_at: drizzle_orm_pg_core.PgColumn<{
556
+ name: "created_at";
557
+ tableName: "payment_transactions";
558
+ dataType: "date";
559
+ columnType: "PgTimestamp";
560
+ data: Date;
561
+ driverParam: string;
562
+ notNull: true;
563
+ hasDefault: true;
564
+ isPrimaryKey: false;
565
+ isAutoincrement: false;
566
+ hasRuntimeDefault: false;
567
+ enumValues: undefined;
568
+ baseColumn: never;
569
+ identity: undefined;
570
+ generated: undefined;
571
+ }, {}, {}>;
572
+ updated_at: drizzle_orm_pg_core.PgColumn<{
573
+ name: "updated_at";
574
+ tableName: "payment_transactions";
575
+ dataType: "date";
576
+ columnType: "PgTimestamp";
577
+ data: Date;
578
+ driverParam: string;
579
+ notNull: true;
580
+ hasDefault: true;
581
+ isPrimaryKey: false;
582
+ isAutoincrement: false;
583
+ hasRuntimeDefault: false;
584
+ enumValues: undefined;
585
+ baseColumn: never;
586
+ identity: undefined;
587
+ generated: undefined;
588
+ }, {}, {}>;
589
+ };
590
+ dialect: "pg";
591
+ }>;
592
+
593
+ /**
594
+ * PaymentOS - Payment Methods Schema
595
+ *
596
+ * Stores tokenized payment methods (PCI-compliant - no full card numbers).
597
+ * Used for saved cards and recurring billing.
598
+ *
599
+ * Note: User FK is optional and configured via schema-config.ts
600
+ */
601
+ /**
602
+ * Payment method types
603
+ */
604
+ type PaymentMethodType = 'card' | 'bank_account' | 'paypal';
605
+ /**
606
+ * Card brands
607
+ */
608
+ type CardBrandType = 'visa' | 'mastercard' | 'amex' | 'discover' | 'isracard' | 'diners' | 'unknown';
609
+ /**
610
+ * Payment methods table
611
+ *
612
+ * FK to user table is NOT defined here - it's application-specific.
613
+ * The user_id column stores the UUID, but the FK constraint should be
614
+ * added via migration if needed for your specific user table.
615
+ *
616
+ * To add FK constraint, create a migration:
617
+ * ```sql
618
+ * ALTER TABLE payment_methods
619
+ * ADD CONSTRAINT payment_methods_user_id_fkey
620
+ * FOREIGN KEY (user_id) REFERENCES your_users_table(id) ON DELETE CASCADE;
621
+ * ```
622
+ */
623
+ declare const paymentMethods: drizzle_orm_pg_core.PgTableWithColumns<{
624
+ name: "payment_methods";
625
+ schema: undefined;
626
+ columns: {
627
+ id: drizzle_orm_pg_core.PgColumn<{
628
+ name: "id";
629
+ tableName: "payment_methods";
630
+ dataType: "string";
631
+ columnType: "PgUUID";
632
+ data: string;
633
+ driverParam: string;
634
+ notNull: true;
635
+ hasDefault: true;
636
+ isPrimaryKey: true;
637
+ isAutoincrement: false;
638
+ hasRuntimeDefault: false;
639
+ enumValues: undefined;
640
+ baseColumn: never;
641
+ identity: undefined;
642
+ generated: undefined;
643
+ }, {}, {}>;
644
+ user_id: drizzle_orm_pg_core.PgColumn<{
645
+ name: "user_id";
646
+ tableName: "payment_methods";
647
+ dataType: "string";
648
+ columnType: "PgUUID";
649
+ data: string;
650
+ driverParam: string;
651
+ notNull: true;
652
+ hasDefault: false;
653
+ isPrimaryKey: false;
654
+ isAutoincrement: false;
655
+ hasRuntimeDefault: false;
656
+ enumValues: undefined;
657
+ baseColumn: never;
658
+ identity: undefined;
659
+ generated: undefined;
660
+ }, {}, {}>;
661
+ type: drizzle_orm_pg_core.PgColumn<{
662
+ name: "type";
663
+ tableName: "payment_methods";
664
+ dataType: "string";
665
+ columnType: "PgText";
666
+ data: PaymentMethodType;
667
+ driverParam: string;
668
+ notNull: true;
669
+ hasDefault: false;
670
+ isPrimaryKey: false;
671
+ isAutoincrement: false;
672
+ hasRuntimeDefault: false;
673
+ enumValues: [string, ...string[]];
674
+ baseColumn: never;
675
+ identity: undefined;
676
+ generated: undefined;
677
+ }, {}, {
678
+ $type: PaymentMethodType;
679
+ }>;
680
+ provider: drizzle_orm_pg_core.PgColumn<{
681
+ name: "provider";
682
+ tableName: "payment_methods";
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
+ provider_payment_method_id: drizzle_orm_pg_core.PgColumn<{
698
+ name: "provider_payment_method_id";
699
+ tableName: "payment_methods";
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
+ card_brand: drizzle_orm_pg_core.PgColumn<{
715
+ name: "card_brand";
716
+ tableName: "payment_methods";
717
+ dataType: "string";
718
+ columnType: "PgText";
719
+ data: CardBrandType;
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
+ $type: CardBrandType;
732
+ }>;
733
+ card_last4: drizzle_orm_pg_core.PgColumn<{
734
+ name: "card_last4";
735
+ tableName: "payment_methods";
736
+ dataType: "string";
737
+ columnType: "PgText";
738
+ data: string;
739
+ driverParam: string;
740
+ notNull: false;
741
+ hasDefault: false;
742
+ isPrimaryKey: false;
743
+ isAutoincrement: false;
744
+ hasRuntimeDefault: false;
745
+ enumValues: [string, ...string[]];
746
+ baseColumn: never;
747
+ identity: undefined;
748
+ generated: undefined;
749
+ }, {}, {}>;
750
+ card_exp_month: drizzle_orm_pg_core.PgColumn<{
751
+ name: "card_exp_month";
752
+ tableName: "payment_methods";
753
+ dataType: "string";
754
+ columnType: "PgText";
755
+ data: string;
756
+ driverParam: string;
757
+ notNull: false;
758
+ hasDefault: false;
759
+ isPrimaryKey: false;
760
+ isAutoincrement: false;
761
+ hasRuntimeDefault: false;
762
+ enumValues: [string, ...string[]];
763
+ baseColumn: never;
764
+ identity: undefined;
765
+ generated: undefined;
766
+ }, {}, {}>;
767
+ card_exp_year: drizzle_orm_pg_core.PgColumn<{
768
+ name: "card_exp_year";
769
+ tableName: "payment_methods";
770
+ dataType: "string";
771
+ columnType: "PgText";
772
+ data: string;
773
+ driverParam: string;
774
+ notNull: false;
775
+ hasDefault: false;
776
+ isPrimaryKey: false;
777
+ isAutoincrement: false;
778
+ hasRuntimeDefault: false;
779
+ enumValues: [string, ...string[]];
780
+ baseColumn: never;
781
+ identity: undefined;
782
+ generated: undefined;
783
+ }, {}, {}>;
784
+ card_bin: drizzle_orm_pg_core.PgColumn<{
785
+ name: "card_bin";
786
+ tableName: "payment_methods";
787
+ dataType: "string";
788
+ columnType: "PgText";
789
+ data: string;
790
+ driverParam: string;
791
+ notNull: false;
792
+ hasDefault: false;
793
+ isPrimaryKey: false;
794
+ isAutoincrement: false;
795
+ hasRuntimeDefault: false;
796
+ enumValues: [string, ...string[]];
797
+ baseColumn: never;
798
+ identity: undefined;
799
+ generated: undefined;
800
+ }, {}, {}>;
801
+ is_default: drizzle_orm_pg_core.PgColumn<{
802
+ name: "is_default";
803
+ tableName: "payment_methods";
804
+ dataType: "boolean";
805
+ columnType: "PgBoolean";
806
+ data: boolean;
807
+ driverParam: boolean;
808
+ notNull: false;
809
+ hasDefault: true;
810
+ isPrimaryKey: false;
811
+ isAutoincrement: false;
812
+ hasRuntimeDefault: false;
813
+ enumValues: undefined;
814
+ baseColumn: never;
815
+ identity: undefined;
816
+ generated: undefined;
817
+ }, {}, {}>;
818
+ is_active: drizzle_orm_pg_core.PgColumn<{
819
+ name: "is_active";
820
+ tableName: "payment_methods";
821
+ dataType: "boolean";
822
+ columnType: "PgBoolean";
823
+ data: boolean;
824
+ driverParam: boolean;
825
+ notNull: false;
826
+ hasDefault: true;
827
+ isPrimaryKey: false;
828
+ isAutoincrement: false;
829
+ hasRuntimeDefault: false;
830
+ enumValues: undefined;
831
+ baseColumn: never;
832
+ identity: undefined;
833
+ generated: undefined;
834
+ }, {}, {}>;
835
+ provider_metadata: drizzle_orm_pg_core.PgColumn<{
836
+ name: "provider_metadata";
837
+ tableName: "payment_methods";
838
+ dataType: "json";
839
+ columnType: "PgJsonb";
840
+ data: Record<string, unknown>;
841
+ driverParam: unknown;
842
+ notNull: false;
843
+ hasDefault: false;
844
+ isPrimaryKey: false;
845
+ isAutoincrement: false;
846
+ hasRuntimeDefault: false;
847
+ enumValues: undefined;
848
+ baseColumn: never;
849
+ identity: undefined;
850
+ generated: undefined;
851
+ }, {}, {
852
+ $type: Record<string, unknown>;
853
+ }>;
854
+ created_at: drizzle_orm_pg_core.PgColumn<{
855
+ name: "created_at";
856
+ tableName: "payment_methods";
857
+ dataType: "date";
858
+ columnType: "PgTimestamp";
859
+ data: Date;
860
+ driverParam: string;
861
+ notNull: true;
862
+ hasDefault: true;
863
+ isPrimaryKey: false;
864
+ isAutoincrement: false;
865
+ hasRuntimeDefault: false;
866
+ enumValues: undefined;
867
+ baseColumn: never;
868
+ identity: undefined;
869
+ generated: undefined;
870
+ }, {}, {}>;
871
+ updated_at: drizzle_orm_pg_core.PgColumn<{
872
+ name: "updated_at";
873
+ tableName: "payment_methods";
874
+ dataType: "date";
875
+ columnType: "PgTimestamp";
876
+ data: Date;
877
+ driverParam: string;
878
+ notNull: true;
879
+ hasDefault: true;
880
+ isPrimaryKey: false;
881
+ isAutoincrement: false;
882
+ hasRuntimeDefault: false;
883
+ enumValues: undefined;
884
+ baseColumn: never;
885
+ identity: undefined;
886
+ generated: undefined;
887
+ }, {}, {}>;
888
+ last_used_at: drizzle_orm_pg_core.PgColumn<{
889
+ name: "last_used_at";
890
+ tableName: "payment_methods";
891
+ dataType: "date";
892
+ columnType: "PgTimestamp";
893
+ data: Date;
894
+ driverParam: string;
895
+ notNull: false;
896
+ hasDefault: false;
897
+ isPrimaryKey: false;
898
+ isAutoincrement: false;
899
+ hasRuntimeDefault: false;
900
+ enumValues: undefined;
901
+ baseColumn: never;
902
+ identity: undefined;
903
+ generated: undefined;
904
+ }, {}, {}>;
905
+ };
906
+ dialect: "pg";
907
+ }>;
908
+
909
+ /**
910
+ * Webhook processing status
911
+ */
912
+ type WebhookEventStatus = 'pending' | 'processing' | 'processed' | 'failed' | 'ignored';
913
+ /**
914
+ * Payment webhook events table
915
+ * Stores all incoming webhooks for idempotent processing.
916
+ * Ensures each provider event is processed exactly once.
917
+ */
918
+ declare const paymentWebhookEvents: drizzle_orm_pg_core.PgTableWithColumns<{
919
+ name: "payment_webhook_events";
920
+ schema: undefined;
921
+ columns: {
922
+ id: drizzle_orm_pg_core.PgColumn<{
923
+ name: "id";
924
+ tableName: "payment_webhook_events";
925
+ dataType: "string";
926
+ columnType: "PgUUID";
927
+ data: string;
928
+ driverParam: string;
929
+ notNull: true;
930
+ hasDefault: true;
931
+ isPrimaryKey: true;
932
+ isAutoincrement: false;
933
+ hasRuntimeDefault: false;
934
+ enumValues: undefined;
935
+ baseColumn: never;
936
+ identity: undefined;
937
+ generated: undefined;
938
+ }, {}, {}>;
939
+ provider: drizzle_orm_pg_core.PgColumn<{
940
+ name: "provider";
941
+ tableName: "payment_webhook_events";
942
+ dataType: "string";
943
+ columnType: "PgText";
944
+ data: string;
945
+ driverParam: string;
946
+ notNull: true;
947
+ hasDefault: false;
948
+ isPrimaryKey: false;
949
+ isAutoincrement: false;
950
+ hasRuntimeDefault: false;
951
+ enumValues: [string, ...string[]];
952
+ baseColumn: never;
953
+ identity: undefined;
954
+ generated: undefined;
955
+ }, {}, {}>;
956
+ provider_event_id: drizzle_orm_pg_core.PgColumn<{
957
+ name: "provider_event_id";
958
+ tableName: "payment_webhook_events";
959
+ dataType: "string";
960
+ columnType: "PgText";
961
+ data: string;
962
+ driverParam: string;
963
+ notNull: true;
964
+ hasDefault: false;
965
+ isPrimaryKey: false;
966
+ isAutoincrement: false;
967
+ hasRuntimeDefault: false;
968
+ enumValues: [string, ...string[]];
969
+ baseColumn: never;
970
+ identity: undefined;
971
+ generated: undefined;
972
+ }, {}, {}>;
973
+ event_type: drizzle_orm_pg_core.PgColumn<{
974
+ name: "event_type";
975
+ tableName: "payment_webhook_events";
976
+ dataType: "string";
977
+ columnType: "PgText";
978
+ data: string;
979
+ driverParam: string;
980
+ notNull: true;
981
+ hasDefault: false;
982
+ isPrimaryKey: false;
983
+ isAutoincrement: false;
984
+ hasRuntimeDefault: false;
985
+ enumValues: [string, ...string[]];
986
+ baseColumn: never;
987
+ identity: undefined;
988
+ generated: undefined;
989
+ }, {}, {}>;
990
+ status: drizzle_orm_pg_core.PgColumn<{
991
+ name: "status";
992
+ tableName: "payment_webhook_events";
993
+ dataType: "string";
994
+ columnType: "PgText";
995
+ data: WebhookEventStatus;
996
+ driverParam: string;
997
+ notNull: true;
998
+ hasDefault: true;
999
+ isPrimaryKey: false;
1000
+ isAutoincrement: false;
1001
+ hasRuntimeDefault: false;
1002
+ enumValues: [string, ...string[]];
1003
+ baseColumn: never;
1004
+ identity: undefined;
1005
+ generated: undefined;
1006
+ }, {}, {
1007
+ $type: WebhookEventStatus;
1008
+ }>;
1009
+ attempts: drizzle_orm_pg_core.PgColumn<{
1010
+ name: "attempts";
1011
+ tableName: "payment_webhook_events";
1012
+ dataType: "string";
1013
+ columnType: "PgText";
1014
+ data: string;
1015
+ driverParam: string;
1016
+ notNull: false;
1017
+ hasDefault: true;
1018
+ isPrimaryKey: false;
1019
+ isAutoincrement: false;
1020
+ hasRuntimeDefault: false;
1021
+ enumValues: [string, ...string[]];
1022
+ baseColumn: never;
1023
+ identity: undefined;
1024
+ generated: undefined;
1025
+ }, {}, {}>;
1026
+ last_attempt_at: drizzle_orm_pg_core.PgColumn<{
1027
+ name: "last_attempt_at";
1028
+ tableName: "payment_webhook_events";
1029
+ dataType: "date";
1030
+ columnType: "PgTimestamp";
1031
+ data: Date;
1032
+ driverParam: string;
1033
+ notNull: false;
1034
+ hasDefault: false;
1035
+ isPrimaryKey: false;
1036
+ isAutoincrement: false;
1037
+ hasRuntimeDefault: false;
1038
+ enumValues: undefined;
1039
+ baseColumn: never;
1040
+ identity: undefined;
1041
+ generated: undefined;
1042
+ }, {}, {}>;
1043
+ transaction_id: drizzle_orm_pg_core.PgColumn<{
1044
+ name: "transaction_id";
1045
+ tableName: "payment_webhook_events";
1046
+ dataType: "string";
1047
+ columnType: "PgUUID";
1048
+ data: string;
1049
+ driverParam: string;
1050
+ notNull: false;
1051
+ hasDefault: false;
1052
+ isPrimaryKey: false;
1053
+ isAutoincrement: false;
1054
+ hasRuntimeDefault: false;
1055
+ enumValues: undefined;
1056
+ baseColumn: never;
1057
+ identity: undefined;
1058
+ generated: undefined;
1059
+ }, {}, {}>;
1060
+ payload: drizzle_orm_pg_core.PgColumn<{
1061
+ name: "payload";
1062
+ tableName: "payment_webhook_events";
1063
+ dataType: "json";
1064
+ columnType: "PgJsonb";
1065
+ data: Record<string, unknown>;
1066
+ driverParam: unknown;
1067
+ notNull: true;
1068
+ hasDefault: false;
1069
+ isPrimaryKey: false;
1070
+ isAutoincrement: false;
1071
+ hasRuntimeDefault: false;
1072
+ enumValues: undefined;
1073
+ baseColumn: never;
1074
+ identity: undefined;
1075
+ generated: undefined;
1076
+ }, {}, {
1077
+ $type: Record<string, unknown>;
1078
+ }>;
1079
+ signature: drizzle_orm_pg_core.PgColumn<{
1080
+ name: "signature";
1081
+ tableName: "payment_webhook_events";
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
+ error_message: drizzle_orm_pg_core.PgColumn<{
1097
+ name: "error_message";
1098
+ tableName: "payment_webhook_events";
1099
+ dataType: "string";
1100
+ columnType: "PgText";
1101
+ data: string;
1102
+ driverParam: string;
1103
+ notNull: false;
1104
+ hasDefault: false;
1105
+ isPrimaryKey: false;
1106
+ isAutoincrement: false;
1107
+ hasRuntimeDefault: false;
1108
+ enumValues: [string, ...string[]];
1109
+ baseColumn: never;
1110
+ identity: undefined;
1111
+ generated: undefined;
1112
+ }, {}, {}>;
1113
+ error_details: drizzle_orm_pg_core.PgColumn<{
1114
+ name: "error_details";
1115
+ tableName: "payment_webhook_events";
1116
+ dataType: "json";
1117
+ columnType: "PgJsonb";
1118
+ data: unknown;
1119
+ driverParam: unknown;
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
+ received_at: drizzle_orm_pg_core.PgColumn<{
1131
+ name: "received_at";
1132
+ tableName: "payment_webhook_events";
1133
+ dataType: "date";
1134
+ columnType: "PgTimestamp";
1135
+ data: Date;
1136
+ driverParam: string;
1137
+ notNull: true;
1138
+ hasDefault: true;
1139
+ isPrimaryKey: false;
1140
+ isAutoincrement: false;
1141
+ hasRuntimeDefault: false;
1142
+ enumValues: undefined;
1143
+ baseColumn: never;
1144
+ identity: undefined;
1145
+ generated: undefined;
1146
+ }, {}, {}>;
1147
+ processed_at: drizzle_orm_pg_core.PgColumn<{
1148
+ name: "processed_at";
1149
+ tableName: "payment_webhook_events";
1150
+ dataType: "date";
1151
+ columnType: "PgTimestamp";
1152
+ data: Date;
1153
+ driverParam: string;
1154
+ notNull: false;
1155
+ hasDefault: false;
1156
+ isPrimaryKey: false;
1157
+ isAutoincrement: false;
1158
+ hasRuntimeDefault: false;
1159
+ enumValues: undefined;
1160
+ baseColumn: never;
1161
+ identity: undefined;
1162
+ generated: undefined;
1163
+ }, {}, {}>;
1164
+ created_at: drizzle_orm_pg_core.PgColumn<{
1165
+ name: "created_at";
1166
+ tableName: "payment_webhook_events";
1167
+ dataType: "date";
1168
+ columnType: "PgTimestamp";
1169
+ data: Date;
1170
+ driverParam: string;
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
+ };
1182
+ dialect: "pg";
1183
+ }>;
1184
+
1185
+ /**
1186
+ * @nehorai/payments-drizzle - Payment Audit Log Schema
1187
+ *
1188
+ * Immutable audit trail for all payment state changes.
1189
+ * Used for debugging, compliance, and dispute resolution.
1190
+ */
1191
+ /**
1192
+ * Audit log action types
1193
+ */
1194
+ type AuditLogAction = 'created' | 'status_changed' | 'authorized' | 'captured' | 'voided' | 'refund_initiated' | 'refund_completed' | 'webhook_received' | 'webhook_processed' | 'error_occurred' | 'retry_attempted' | 'manual_intervention';
1195
+ /**
1196
+ * Who/what triggered the action
1197
+ */
1198
+ type AuditLogTrigger = 'user' | 'webhook' | 'system' | 'admin' | 'cron' | 'api';
1199
+ /**
1200
+ * Payment audit log table
1201
+ * Immutable audit trail for all payment state changes.
1202
+ * Used for debugging, compliance, and dispute resolution.
1203
+ */
1204
+ declare const paymentAuditLog: drizzle_orm_pg_core.PgTableWithColumns<{
1205
+ name: "payment_audit_log";
1206
+ schema: undefined;
1207
+ columns: {
1208
+ id: drizzle_orm_pg_core.PgColumn<{
1209
+ name: "id";
1210
+ tableName: "payment_audit_log";
1211
+ dataType: "string";
1212
+ columnType: "PgUUID";
1213
+ data: string;
1214
+ driverParam: string;
1215
+ notNull: true;
1216
+ hasDefault: true;
1217
+ isPrimaryKey: true;
1218
+ isAutoincrement: false;
1219
+ hasRuntimeDefault: false;
1220
+ enumValues: undefined;
1221
+ baseColumn: never;
1222
+ identity: undefined;
1223
+ generated: undefined;
1224
+ }, {}, {}>;
1225
+ transaction_id: drizzle_orm_pg_core.PgColumn<{
1226
+ name: "transaction_id";
1227
+ tableName: "payment_audit_log";
1228
+ dataType: "string";
1229
+ columnType: "PgUUID";
1230
+ data: string;
1231
+ driverParam: string;
1232
+ notNull: true;
1233
+ hasDefault: false;
1234
+ isPrimaryKey: false;
1235
+ isAutoincrement: false;
1236
+ hasRuntimeDefault: false;
1237
+ enumValues: undefined;
1238
+ baseColumn: never;
1239
+ identity: undefined;
1240
+ generated: undefined;
1241
+ }, {}, {}>;
1242
+ action: drizzle_orm_pg_core.PgColumn<{
1243
+ name: "action";
1244
+ tableName: "payment_audit_log";
1245
+ dataType: "string";
1246
+ columnType: "PgText";
1247
+ data: AuditLogAction;
1248
+ driverParam: string;
1249
+ notNull: true;
1250
+ hasDefault: false;
1251
+ isPrimaryKey: false;
1252
+ isAutoincrement: false;
1253
+ hasRuntimeDefault: false;
1254
+ enumValues: [string, ...string[]];
1255
+ baseColumn: never;
1256
+ identity: undefined;
1257
+ generated: undefined;
1258
+ }, {}, {
1259
+ $type: AuditLogAction;
1260
+ }>;
1261
+ previous_state: drizzle_orm_pg_core.PgColumn<{
1262
+ name: "previous_state";
1263
+ tableName: "payment_audit_log";
1264
+ dataType: "json";
1265
+ columnType: "PgJsonb";
1266
+ data: unknown;
1267
+ driverParam: unknown;
1268
+ notNull: false;
1269
+ hasDefault: false;
1270
+ isPrimaryKey: false;
1271
+ isAutoincrement: false;
1272
+ hasRuntimeDefault: false;
1273
+ enumValues: undefined;
1274
+ baseColumn: never;
1275
+ identity: undefined;
1276
+ generated: undefined;
1277
+ }, {}, {}>;
1278
+ new_state: drizzle_orm_pg_core.PgColumn<{
1279
+ name: "new_state";
1280
+ tableName: "payment_audit_log";
1281
+ dataType: "json";
1282
+ columnType: "PgJsonb";
1283
+ data: unknown;
1284
+ driverParam: unknown;
1285
+ notNull: true;
1286
+ hasDefault: false;
1287
+ isPrimaryKey: false;
1288
+ isAutoincrement: false;
1289
+ hasRuntimeDefault: false;
1290
+ enumValues: undefined;
1291
+ baseColumn: never;
1292
+ identity: undefined;
1293
+ generated: undefined;
1294
+ }, {}, {}>;
1295
+ triggered_by: drizzle_orm_pg_core.PgColumn<{
1296
+ name: "triggered_by";
1297
+ tableName: "payment_audit_log";
1298
+ dataType: "string";
1299
+ columnType: "PgText";
1300
+ data: AuditLogTrigger;
1301
+ driverParam: string;
1302
+ notNull: true;
1303
+ hasDefault: false;
1304
+ isPrimaryKey: false;
1305
+ isAutoincrement: false;
1306
+ hasRuntimeDefault: false;
1307
+ enumValues: [string, ...string[]];
1308
+ baseColumn: never;
1309
+ identity: undefined;
1310
+ generated: undefined;
1311
+ }, {}, {
1312
+ $type: AuditLogTrigger;
1313
+ }>;
1314
+ triggered_by_id: drizzle_orm_pg_core.PgColumn<{
1315
+ name: "triggered_by_id";
1316
+ tableName: "payment_audit_log";
1317
+ dataType: "string";
1318
+ columnType: "PgUUID";
1319
+ data: string;
1320
+ driverParam: string;
1321
+ notNull: false;
1322
+ hasDefault: false;
1323
+ isPrimaryKey: false;
1324
+ isAutoincrement: false;
1325
+ hasRuntimeDefault: false;
1326
+ enumValues: undefined;
1327
+ baseColumn: never;
1328
+ identity: undefined;
1329
+ generated: undefined;
1330
+ }, {}, {}>;
1331
+ ip_address: drizzle_orm_pg_core.PgColumn<{
1332
+ name: "ip_address";
1333
+ tableName: "payment_audit_log";
1334
+ dataType: "string";
1335
+ columnType: "PgText";
1336
+ data: string;
1337
+ driverParam: string;
1338
+ notNull: false;
1339
+ hasDefault: false;
1340
+ isPrimaryKey: false;
1341
+ isAutoincrement: false;
1342
+ hasRuntimeDefault: false;
1343
+ enumValues: [string, ...string[]];
1344
+ baseColumn: never;
1345
+ identity: undefined;
1346
+ generated: undefined;
1347
+ }, {}, {}>;
1348
+ user_agent: drizzle_orm_pg_core.PgColumn<{
1349
+ name: "user_agent";
1350
+ tableName: "payment_audit_log";
1351
+ dataType: "string";
1352
+ columnType: "PgText";
1353
+ data: string;
1354
+ driverParam: string;
1355
+ notNull: false;
1356
+ hasDefault: false;
1357
+ isPrimaryKey: false;
1358
+ isAutoincrement: false;
1359
+ hasRuntimeDefault: false;
1360
+ enumValues: [string, ...string[]];
1361
+ baseColumn: never;
1362
+ identity: undefined;
1363
+ generated: undefined;
1364
+ }, {}, {}>;
1365
+ correlation_id: drizzle_orm_pg_core.PgColumn<{
1366
+ name: "correlation_id";
1367
+ tableName: "payment_audit_log";
1368
+ dataType: "string";
1369
+ columnType: "PgText";
1370
+ data: string;
1371
+ driverParam: string;
1372
+ notNull: false;
1373
+ hasDefault: false;
1374
+ isPrimaryKey: false;
1375
+ isAutoincrement: false;
1376
+ hasRuntimeDefault: false;
1377
+ enumValues: [string, ...string[]];
1378
+ baseColumn: never;
1379
+ identity: undefined;
1380
+ generated: undefined;
1381
+ }, {}, {}>;
1382
+ metadata: drizzle_orm_pg_core.PgColumn<{
1383
+ name: "metadata";
1384
+ tableName: "payment_audit_log";
1385
+ dataType: "json";
1386
+ columnType: "PgJsonb";
1387
+ data: Record<string, unknown>;
1388
+ driverParam: unknown;
1389
+ notNull: false;
1390
+ hasDefault: false;
1391
+ isPrimaryKey: false;
1392
+ isAutoincrement: false;
1393
+ hasRuntimeDefault: false;
1394
+ enumValues: undefined;
1395
+ baseColumn: never;
1396
+ identity: undefined;
1397
+ generated: undefined;
1398
+ }, {}, {
1399
+ $type: Record<string, unknown>;
1400
+ }>;
1401
+ created_at: drizzle_orm_pg_core.PgColumn<{
1402
+ name: "created_at";
1403
+ tableName: "payment_audit_log";
1404
+ dataType: "date";
1405
+ columnType: "PgTimestamp";
1406
+ data: Date;
1407
+ driverParam: string;
1408
+ notNull: true;
1409
+ hasDefault: true;
1410
+ isPrimaryKey: false;
1411
+ isAutoincrement: false;
1412
+ hasRuntimeDefault: false;
1413
+ enumValues: undefined;
1414
+ baseColumn: never;
1415
+ identity: undefined;
1416
+ generated: undefined;
1417
+ }, {}, {}>;
1418
+ };
1419
+ dialect: "pg";
1420
+ }>;
1421
+
1422
+ /**
1423
+ * @nehorai/payments-drizzle - Provider Health Schema
1424
+ *
1425
+ * Tracks payment provider health for circuit breaker pattern.
1426
+ * Used for intelligent failover when providers experience issues.
1427
+ */
1428
+ /**
1429
+ * Circuit breaker states
1430
+ */
1431
+ type CircuitBreakerState = 'closed' | 'open' | 'half_open';
1432
+ /**
1433
+ * Provider health table
1434
+ * Tracks payment provider health for circuit breaker pattern.
1435
+ * Used for intelligent failover when providers experience issues.
1436
+ */
1437
+ declare const providerHealth: drizzle_orm_pg_core.PgTableWithColumns<{
1438
+ name: "payment_provider_health";
1439
+ schema: undefined;
1440
+ columns: {
1441
+ id: drizzle_orm_pg_core.PgColumn<{
1442
+ name: "id";
1443
+ tableName: "payment_provider_health";
1444
+ dataType: "string";
1445
+ columnType: "PgUUID";
1446
+ data: string;
1447
+ driverParam: string;
1448
+ notNull: true;
1449
+ hasDefault: true;
1450
+ isPrimaryKey: true;
1451
+ isAutoincrement: false;
1452
+ hasRuntimeDefault: false;
1453
+ enumValues: undefined;
1454
+ baseColumn: never;
1455
+ identity: undefined;
1456
+ generated: undefined;
1457
+ }, {}, {}>;
1458
+ provider: drizzle_orm_pg_core.PgColumn<{
1459
+ name: "provider";
1460
+ tableName: "payment_provider_health";
1461
+ dataType: "string";
1462
+ columnType: "PgText";
1463
+ data: string;
1464
+ driverParam: string;
1465
+ notNull: true;
1466
+ hasDefault: false;
1467
+ isPrimaryKey: false;
1468
+ isAutoincrement: false;
1469
+ hasRuntimeDefault: false;
1470
+ enumValues: [string, ...string[]];
1471
+ baseColumn: never;
1472
+ identity: undefined;
1473
+ generated: undefined;
1474
+ }, {}, {}>;
1475
+ circuit_state: drizzle_orm_pg_core.PgColumn<{
1476
+ name: "circuit_state";
1477
+ tableName: "payment_provider_health";
1478
+ dataType: "string";
1479
+ columnType: "PgText";
1480
+ data: CircuitBreakerState;
1481
+ driverParam: string;
1482
+ notNull: true;
1483
+ hasDefault: true;
1484
+ isPrimaryKey: false;
1485
+ isAutoincrement: false;
1486
+ hasRuntimeDefault: false;
1487
+ enumValues: [string, ...string[]];
1488
+ baseColumn: never;
1489
+ identity: undefined;
1490
+ generated: undefined;
1491
+ }, {}, {
1492
+ $type: CircuitBreakerState;
1493
+ }>;
1494
+ failure_count: drizzle_orm_pg_core.PgColumn<{
1495
+ name: "failure_count";
1496
+ tableName: "payment_provider_health";
1497
+ dataType: "string";
1498
+ columnType: "PgText";
1499
+ data: string;
1500
+ driverParam: string;
1501
+ notNull: false;
1502
+ hasDefault: true;
1503
+ isPrimaryKey: false;
1504
+ isAutoincrement: false;
1505
+ hasRuntimeDefault: false;
1506
+ enumValues: [string, ...string[]];
1507
+ baseColumn: never;
1508
+ identity: undefined;
1509
+ generated: undefined;
1510
+ }, {}, {}>;
1511
+ success_count: drizzle_orm_pg_core.PgColumn<{
1512
+ name: "success_count";
1513
+ tableName: "payment_provider_health";
1514
+ dataType: "string";
1515
+ columnType: "PgText";
1516
+ data: string;
1517
+ driverParam: string;
1518
+ notNull: false;
1519
+ hasDefault: true;
1520
+ isPrimaryKey: false;
1521
+ isAutoincrement: false;
1522
+ hasRuntimeDefault: false;
1523
+ enumValues: [string, ...string[]];
1524
+ baseColumn: never;
1525
+ identity: undefined;
1526
+ generated: undefined;
1527
+ }, {}, {}>;
1528
+ last_failure_at: drizzle_orm_pg_core.PgColumn<{
1529
+ name: "last_failure_at";
1530
+ tableName: "payment_provider_health";
1531
+ dataType: "date";
1532
+ columnType: "PgTimestamp";
1533
+ data: Date;
1534
+ driverParam: string;
1535
+ notNull: false;
1536
+ hasDefault: false;
1537
+ isPrimaryKey: false;
1538
+ isAutoincrement: false;
1539
+ hasRuntimeDefault: false;
1540
+ enumValues: undefined;
1541
+ baseColumn: never;
1542
+ identity: undefined;
1543
+ generated: undefined;
1544
+ }, {}, {}>;
1545
+ last_success_at: drizzle_orm_pg_core.PgColumn<{
1546
+ name: "last_success_at";
1547
+ tableName: "payment_provider_health";
1548
+ dataType: "date";
1549
+ columnType: "PgTimestamp";
1550
+ data: Date;
1551
+ driverParam: string;
1552
+ notNull: false;
1553
+ hasDefault: false;
1554
+ isPrimaryKey: false;
1555
+ isAutoincrement: false;
1556
+ hasRuntimeDefault: false;
1557
+ enumValues: undefined;
1558
+ baseColumn: never;
1559
+ identity: undefined;
1560
+ generated: undefined;
1561
+ }, {}, {}>;
1562
+ circuit_opened_at: drizzle_orm_pg_core.PgColumn<{
1563
+ name: "circuit_opened_at";
1564
+ tableName: "payment_provider_health";
1565
+ dataType: "date";
1566
+ columnType: "PgTimestamp";
1567
+ data: Date;
1568
+ driverParam: string;
1569
+ notNull: false;
1570
+ hasDefault: false;
1571
+ isPrimaryKey: false;
1572
+ isAutoincrement: false;
1573
+ hasRuntimeDefault: false;
1574
+ enumValues: undefined;
1575
+ baseColumn: never;
1576
+ identity: undefined;
1577
+ generated: undefined;
1578
+ }, {}, {}>;
1579
+ next_retry_at: drizzle_orm_pg_core.PgColumn<{
1580
+ name: "next_retry_at";
1581
+ tableName: "payment_provider_health";
1582
+ dataType: "date";
1583
+ columnType: "PgTimestamp";
1584
+ data: Date;
1585
+ driverParam: string;
1586
+ notNull: false;
1587
+ hasDefault: false;
1588
+ isPrimaryKey: false;
1589
+ isAutoincrement: false;
1590
+ hasRuntimeDefault: false;
1591
+ enumValues: undefined;
1592
+ baseColumn: never;
1593
+ identity: undefined;
1594
+ generated: undefined;
1595
+ }, {}, {}>;
1596
+ avg_latency_ms: drizzle_orm_pg_core.PgColumn<{
1597
+ name: "avg_latency_ms";
1598
+ tableName: "payment_provider_health";
1599
+ dataType: "string";
1600
+ columnType: "PgNumeric";
1601
+ data: string;
1602
+ driverParam: string;
1603
+ notNull: false;
1604
+ hasDefault: false;
1605
+ isPrimaryKey: false;
1606
+ isAutoincrement: false;
1607
+ hasRuntimeDefault: false;
1608
+ enumValues: undefined;
1609
+ baseColumn: never;
1610
+ identity: undefined;
1611
+ generated: undefined;
1612
+ }, {}, {}>;
1613
+ error_rate: drizzle_orm_pg_core.PgColumn<{
1614
+ name: "error_rate";
1615
+ tableName: "payment_provider_health";
1616
+ dataType: "string";
1617
+ columnType: "PgNumeric";
1618
+ data: string;
1619
+ driverParam: string;
1620
+ notNull: false;
1621
+ hasDefault: false;
1622
+ isPrimaryKey: false;
1623
+ isAutoincrement: false;
1624
+ hasRuntimeDefault: false;
1625
+ enumValues: undefined;
1626
+ baseColumn: never;
1627
+ identity: undefined;
1628
+ generated: undefined;
1629
+ }, {}, {}>;
1630
+ request_count_window: drizzle_orm_pg_core.PgColumn<{
1631
+ name: "request_count_window";
1632
+ tableName: "payment_provider_health";
1633
+ dataType: "string";
1634
+ columnType: "PgText";
1635
+ data: string;
1636
+ driverParam: string;
1637
+ notNull: false;
1638
+ hasDefault: true;
1639
+ isPrimaryKey: false;
1640
+ isAutoincrement: false;
1641
+ hasRuntimeDefault: false;
1642
+ enumValues: [string, ...string[]];
1643
+ baseColumn: never;
1644
+ identity: undefined;
1645
+ generated: undefined;
1646
+ }, {}, {}>;
1647
+ last_health_check_at: drizzle_orm_pg_core.PgColumn<{
1648
+ name: "last_health_check_at";
1649
+ tableName: "payment_provider_health";
1650
+ dataType: "date";
1651
+ columnType: "PgTimestamp";
1652
+ data: Date;
1653
+ driverParam: string;
1654
+ notNull: false;
1655
+ hasDefault: false;
1656
+ isPrimaryKey: false;
1657
+ isAutoincrement: false;
1658
+ hasRuntimeDefault: false;
1659
+ enumValues: undefined;
1660
+ baseColumn: never;
1661
+ identity: undefined;
1662
+ generated: undefined;
1663
+ }, {}, {}>;
1664
+ health_check_result: drizzle_orm_pg_core.PgColumn<{
1665
+ name: "health_check_result";
1666
+ tableName: "payment_provider_health";
1667
+ dataType: "json";
1668
+ columnType: "PgJsonb";
1669
+ data: {
1670
+ healthy: boolean;
1671
+ latency_ms?: number;
1672
+ error?: string;
1673
+ };
1674
+ driverParam: unknown;
1675
+ notNull: false;
1676
+ hasDefault: false;
1677
+ isPrimaryKey: false;
1678
+ isAutoincrement: false;
1679
+ hasRuntimeDefault: false;
1680
+ enumValues: undefined;
1681
+ baseColumn: never;
1682
+ identity: undefined;
1683
+ generated: undefined;
1684
+ }, {}, {
1685
+ $type: {
1686
+ healthy: boolean;
1687
+ latency_ms?: number;
1688
+ error?: string;
1689
+ };
1690
+ }>;
1691
+ created_at: drizzle_orm_pg_core.PgColumn<{
1692
+ name: "created_at";
1693
+ tableName: "payment_provider_health";
1694
+ dataType: "date";
1695
+ columnType: "PgTimestamp";
1696
+ data: Date;
1697
+ driverParam: string;
1698
+ notNull: true;
1699
+ hasDefault: true;
1700
+ isPrimaryKey: false;
1701
+ isAutoincrement: false;
1702
+ hasRuntimeDefault: false;
1703
+ enumValues: undefined;
1704
+ baseColumn: never;
1705
+ identity: undefined;
1706
+ generated: undefined;
1707
+ }, {}, {}>;
1708
+ updated_at: drizzle_orm_pg_core.PgColumn<{
1709
+ name: "updated_at";
1710
+ tableName: "payment_provider_health";
1711
+ dataType: "date";
1712
+ columnType: "PgTimestamp";
1713
+ data: Date;
1714
+ driverParam: string;
1715
+ notNull: true;
1716
+ hasDefault: true;
1717
+ isPrimaryKey: false;
1718
+ isAutoincrement: false;
1719
+ hasRuntimeDefault: false;
1720
+ enumValues: undefined;
1721
+ baseColumn: never;
1722
+ identity: undefined;
1723
+ generated: undefined;
1724
+ }, {}, {}>;
1725
+ };
1726
+ dialect: "pg";
1727
+ }>;
1728
+
1729
+ export { type AuditLogAction, type AuditLogTrigger, type CardBrandType, type CircuitBreakerState, type PaymentMethodType, type PaymentTaxInvoiceStatus, type PaymentTransactionStatus, type PaymentTransactionType, type WebhookEventStatus, paymentAuditLog, paymentMethods, paymentTransactions, paymentWebhookEvents, providerHealth };