@arcforgelabs/flow 2026.10.18 → 2026.10.19-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +3 -0
  2. package/SECURITY.md +4 -1
  3. package/npm-shrinkwrap.json +32 -3
  4. package/package.json +3 -2
  5. package/server/app.js +26 -3
  6. package/server/auth/routes.js +27 -12
  7. package/server/auth/session.js +6 -3
  8. package/server/auth/settings.js +26 -7
  9. package/server/auth/sign-in.html +17 -6
  10. package/server/core/invoices.js +6 -3
  11. package/server/core/ledger.js +420 -0
  12. package/server/db/migrations/0003_billing_ledger.sql +84 -0
  13. package/server/db/migrations/0004_ledger_events_append_only.sql +5 -0
  14. package/server/db/migrations/meta/0003_snapshot.json +1327 -0
  15. package/server/db/migrations/meta/0004_snapshot.json +1327 -0
  16. package/server/db/migrations/meta/_journal.json +14 -0
  17. package/server/db/schema.js +137 -0
  18. package/server/import/earlier-flow.js +230 -0
  19. package/server/import-earlier-flow.js +66 -0
  20. package/server/index.js +16 -4
  21. package/server/integrations/adapters.js +6 -0
  22. package/server/integrations/health.js +21 -0
  23. package/server/integrations/index.js +26 -0
  24. package/server/integrations/port.js +154 -6
  25. package/server/integrations/remove-tables.js +31 -0
  26. package/server/integrations/schema.js +62 -0
  27. package/server/integrations/seazona/client.js +196 -0
  28. package/server/integrations/seazona/drizzle.config.js +9 -0
  29. package/server/integrations/seazona/feed.js +104 -0
  30. package/server/integrations/seazona/governor.js +174 -0
  31. package/server/integrations/seazona/index.js +84 -0
  32. package/server/integrations/seazona/lanes.js +431 -0
  33. package/server/integrations/seazona/ledger.js +66 -0
  34. package/server/integrations/seazona/map.js +229 -0
  35. package/server/integrations/seazona/migrations/0000_api_governor.sql +20 -0
  36. package/server/integrations/seazona/migrations/0001_mirror.sql +106 -0
  37. package/server/integrations/seazona/migrations/meta/0000_snapshot.json +149 -0
  38. package/server/integrations/seazona/migrations/meta/0001_snapshot.json +793 -0
  39. package/server/integrations/seazona/migrations/meta/_journal.json +20 -0
  40. package/server/integrations/seazona/replay.js +79 -0
  41. package/server/integrations/seazona/scheduler.js +78 -0
  42. package/server/integrations/seazona/schema.js +157 -0
  43. package/server/integrations/seazona/settings.js +161 -0
  44. package/server/integrations/seazona/store.js +219 -0
  45. package/server/integrations/seazona/sync-once.js +44 -0
  46. package/server/integrations/seazona/tables.js +17 -0
  47. package/server/integrations/xero/catalogue.js +184 -0
  48. package/server/integrations/xero/client.js +253 -0
  49. package/server/integrations/xero/connections.js +104 -0
  50. package/server/integrations/xero/drafts.js +525 -0
  51. package/server/integrations/xero/fixtures/replay.json +45 -0
  52. package/server/integrations/xero/governor.js +275 -0
  53. package/server/integrations/xero/index.js +56 -0
  54. package/server/integrations/xero/ledger.js +269 -0
  55. package/server/integrations/xero/migrations/0000_xero_connections.sql +17 -0
  56. package/server/integrations/xero/migrations/0001_xero_catalogue.sql +49 -0
  57. package/server/integrations/xero/migrations/0002_xero_invoice_pushes.sql +32 -0
  58. package/server/integrations/xero/migrations/0003_xero_payment_cursors.sql +7 -0
  59. package/server/integrations/xero/migrations/meta/_journal.json +34 -0
  60. package/server/integrations/xero/oauth.js +143 -0
  61. package/server/integrations/xero/replay.js +83 -0
  62. package/server/integrations/xero/routes.js +234 -0
  63. package/server/integrations/xero/runtime.js +135 -0
  64. package/server/integrations/xero/settings.js +170 -0
  65. package/server/rate-limit.js +13 -19
@@ -0,0 +1,793 @@
1
+ {
2
+ "id": "f26b4da6-ad36-452a-8288-02d33bb7a5a3",
3
+ "prevId": "3bb4b809-5730-4ae9-8127-2766cac649c6",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.seazona_api_governor": {
8
+ "name": "seazona_api_governor",
9
+ "schema": "",
10
+ "columns": {
11
+ "client_key": {
12
+ "name": "client_key",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "next_eligible_at": {
18
+ "name": "next_eligible_at",
19
+ "type": "timestamp with time zone",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "default": "'epoch'"
23
+ },
24
+ "cooldown_until": {
25
+ "name": "cooldown_until",
26
+ "type": "timestamp with time zone",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "default": "'epoch'"
30
+ },
31
+ "updated_at": {
32
+ "name": "updated_at",
33
+ "type": "timestamp with time zone",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "default": "now()"
37
+ }
38
+ },
39
+ "indexes": {},
40
+ "foreignKeys": {},
41
+ "compositePrimaryKeys": {},
42
+ "uniqueConstraints": {},
43
+ "policies": {},
44
+ "checkConstraints": {},
45
+ "isRLSEnabled": false
46
+ },
47
+ "public.seazona_api_requests": {
48
+ "name": "seazona_api_requests",
49
+ "schema": "",
50
+ "columns": {
51
+ "id": {
52
+ "name": "id",
53
+ "type": "bigserial",
54
+ "primaryKey": true,
55
+ "notNull": true
56
+ },
57
+ "client_key": {
58
+ "name": "client_key",
59
+ "type": "text",
60
+ "primaryKey": false,
61
+ "notNull": true
62
+ },
63
+ "workflow": {
64
+ "name": "workflow",
65
+ "type": "text",
66
+ "primaryKey": false,
67
+ "notNull": true
68
+ },
69
+ "admitted_at": {
70
+ "name": "admitted_at",
71
+ "type": "timestamp with time zone",
72
+ "primaryKey": false,
73
+ "notNull": true
74
+ },
75
+ "request_path": {
76
+ "name": "request_path",
77
+ "type": "text",
78
+ "primaryKey": false,
79
+ "notNull": false
80
+ },
81
+ "status_code": {
82
+ "name": "status_code",
83
+ "type": "integer",
84
+ "primaryKey": false,
85
+ "notNull": false
86
+ },
87
+ "failure_kind": {
88
+ "name": "failure_kind",
89
+ "type": "text",
90
+ "primaryKey": false,
91
+ "notNull": false
92
+ },
93
+ "duration_ms": {
94
+ "name": "duration_ms",
95
+ "type": "integer",
96
+ "primaryKey": false,
97
+ "notNull": false
98
+ },
99
+ "is_retry": {
100
+ "name": "is_retry",
101
+ "type": "boolean",
102
+ "primaryKey": false,
103
+ "notNull": true,
104
+ "default": false
105
+ }
106
+ },
107
+ "indexes": {
108
+ "seazona_api_requests_window": {
109
+ "name": "seazona_api_requests_window",
110
+ "columns": [
111
+ {
112
+ "expression": "client_key",
113
+ "isExpression": false,
114
+ "asc": true,
115
+ "nulls": "last"
116
+ },
117
+ {
118
+ "expression": "admitted_at",
119
+ "isExpression": false,
120
+ "asc": true,
121
+ "nulls": "last"
122
+ }
123
+ ],
124
+ "isUnique": false,
125
+ "concurrently": false,
126
+ "method": "btree",
127
+ "with": {}
128
+ }
129
+ },
130
+ "foreignKeys": {},
131
+ "compositePrimaryKeys": {},
132
+ "uniqueConstraints": {},
133
+ "policies": {},
134
+ "checkConstraints": {},
135
+ "isRLSEnabled": false
136
+ },
137
+ "public.seazona_clients": {
138
+ "name": "seazona_clients",
139
+ "schema": "",
140
+ "columns": {
141
+ "id": {
142
+ "name": "id",
143
+ "type": "text",
144
+ "primaryKey": true,
145
+ "notNull": true
146
+ },
147
+ "account_number": {
148
+ "name": "account_number",
149
+ "type": "text",
150
+ "primaryKey": false,
151
+ "notNull": false
152
+ },
153
+ "company": {
154
+ "name": "company",
155
+ "type": "text",
156
+ "primaryKey": false,
157
+ "notNull": false
158
+ },
159
+ "full_name": {
160
+ "name": "full_name",
161
+ "type": "text",
162
+ "primaryKey": false,
163
+ "notNull": false
164
+ },
165
+ "email": {
166
+ "name": "email",
167
+ "type": "text",
168
+ "primaryKey": false,
169
+ "notNull": false
170
+ },
171
+ "phone": {
172
+ "name": "phone",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": false
176
+ },
177
+ "address": {
178
+ "name": "address",
179
+ "type": "jsonb",
180
+ "primaryKey": false,
181
+ "notNull": false
182
+ },
183
+ "tax_rate": {
184
+ "name": "tax_rate",
185
+ "type": "text",
186
+ "primaryKey": false,
187
+ "notNull": false
188
+ },
189
+ "active": {
190
+ "name": "active",
191
+ "type": "boolean",
192
+ "primaryKey": false,
193
+ "notNull": false
194
+ },
195
+ "doctors": {
196
+ "name": "doctors",
197
+ "type": "jsonb",
198
+ "primaryKey": false,
199
+ "notNull": true,
200
+ "default": "'[]'::jsonb"
201
+ },
202
+ "last_modified_text": {
203
+ "name": "last_modified_text",
204
+ "type": "text",
205
+ "primaryKey": false,
206
+ "notNull": false
207
+ },
208
+ "list_signature": {
209
+ "name": "list_signature",
210
+ "type": "text",
211
+ "primaryKey": false,
212
+ "notNull": false
213
+ },
214
+ "record_hash": {
215
+ "name": "record_hash",
216
+ "type": "text",
217
+ "primaryKey": false,
218
+ "notNull": true
219
+ },
220
+ "first_seen_at": {
221
+ "name": "first_seen_at",
222
+ "type": "timestamp with time zone",
223
+ "primaryKey": false,
224
+ "notNull": true
225
+ },
226
+ "last_synced_at": {
227
+ "name": "last_synced_at",
228
+ "type": "timestamp with time zone",
229
+ "primaryKey": false,
230
+ "notNull": true
231
+ },
232
+ "last_changed_at": {
233
+ "name": "last_changed_at",
234
+ "type": "timestamp with time zone",
235
+ "primaryKey": false,
236
+ "notNull": true
237
+ }
238
+ },
239
+ "indexes": {},
240
+ "foreignKeys": {},
241
+ "compositePrimaryKeys": {},
242
+ "uniqueConstraints": {},
243
+ "policies": {},
244
+ "checkConstraints": {},
245
+ "isRLSEnabled": false
246
+ },
247
+ "public.seazona_invoices": {
248
+ "name": "seazona_invoices",
249
+ "schema": "",
250
+ "columns": {
251
+ "invoice_number": {
252
+ "name": "invoice_number",
253
+ "type": "text",
254
+ "primaryKey": true,
255
+ "notNull": true
256
+ },
257
+ "seazona_id": {
258
+ "name": "seazona_id",
259
+ "type": "text",
260
+ "primaryKey": false,
261
+ "notNull": false
262
+ },
263
+ "client_id": {
264
+ "name": "client_id",
265
+ "type": "text",
266
+ "primaryKey": false,
267
+ "notNull": false
268
+ },
269
+ "account_number": {
270
+ "name": "account_number",
271
+ "type": "text",
272
+ "primaryKey": false,
273
+ "notNull": false
274
+ },
275
+ "company": {
276
+ "name": "company",
277
+ "type": "text",
278
+ "primaryKey": false,
279
+ "notNull": false
280
+ },
281
+ "doctor_name": {
282
+ "name": "doctor_name",
283
+ "type": "text",
284
+ "primaryKey": false,
285
+ "notNull": false
286
+ },
287
+ "status": {
288
+ "name": "status",
289
+ "type": "text",
290
+ "primaryKey": false,
291
+ "notNull": false
292
+ },
293
+ "invoice_date_text": {
294
+ "name": "invoice_date_text",
295
+ "type": "text",
296
+ "primaryKey": false,
297
+ "notNull": false
298
+ },
299
+ "due_text": {
300
+ "name": "due_text",
301
+ "type": "text",
302
+ "primaryKey": false,
303
+ "notNull": false
304
+ },
305
+ "last_modified_text": {
306
+ "name": "last_modified_text",
307
+ "type": "text",
308
+ "primaryKey": false,
309
+ "notNull": false
310
+ },
311
+ "lines": {
312
+ "name": "lines",
313
+ "type": "jsonb",
314
+ "primaryKey": false,
315
+ "notNull": true,
316
+ "default": "'[]'::jsonb"
317
+ },
318
+ "subtotal_cents": {
319
+ "name": "subtotal_cents",
320
+ "type": "bigint",
321
+ "primaryKey": false,
322
+ "notNull": false
323
+ },
324
+ "tax_cents": {
325
+ "name": "tax_cents",
326
+ "type": "bigint",
327
+ "primaryKey": false,
328
+ "notNull": false
329
+ },
330
+ "total_cents": {
331
+ "name": "total_cents",
332
+ "type": "bigint",
333
+ "primaryKey": false,
334
+ "notNull": false
335
+ },
336
+ "discount_cents": {
337
+ "name": "discount_cents",
338
+ "type": "bigint",
339
+ "primaryKey": false,
340
+ "notNull": false
341
+ },
342
+ "patient_reference": {
343
+ "name": "patient_reference",
344
+ "type": "text",
345
+ "primaryKey": false,
346
+ "notNull": false
347
+ },
348
+ "list_signature": {
349
+ "name": "list_signature",
350
+ "type": "text",
351
+ "primaryKey": false,
352
+ "notNull": false
353
+ },
354
+ "record_hash": {
355
+ "name": "record_hash",
356
+ "type": "text",
357
+ "primaryKey": false,
358
+ "notNull": true
359
+ },
360
+ "first_seen_at": {
361
+ "name": "first_seen_at",
362
+ "type": "timestamp with time zone",
363
+ "primaryKey": false,
364
+ "notNull": true
365
+ },
366
+ "last_synced_at": {
367
+ "name": "last_synced_at",
368
+ "type": "timestamp with time zone",
369
+ "primaryKey": false,
370
+ "notNull": true
371
+ },
372
+ "last_changed_at": {
373
+ "name": "last_changed_at",
374
+ "type": "timestamp with time zone",
375
+ "primaryKey": false,
376
+ "notNull": true
377
+ }
378
+ },
379
+ "indexes": {
380
+ "seazona_invoices_changed": {
381
+ "name": "seazona_invoices_changed",
382
+ "columns": [
383
+ {
384
+ "expression": "last_changed_at",
385
+ "isExpression": false,
386
+ "asc": true,
387
+ "nulls": "last"
388
+ }
389
+ ],
390
+ "isUnique": false,
391
+ "concurrently": false,
392
+ "method": "btree",
393
+ "with": {}
394
+ }
395
+ },
396
+ "foreignKeys": {},
397
+ "compositePrimaryKeys": {},
398
+ "uniqueConstraints": {},
399
+ "policies": {},
400
+ "checkConstraints": {},
401
+ "isRLSEnabled": false
402
+ },
403
+ "public.seazona_lane_state": {
404
+ "name": "seazona_lane_state",
405
+ "schema": "",
406
+ "columns": {
407
+ "lane": {
408
+ "name": "lane",
409
+ "type": "text",
410
+ "primaryKey": true,
411
+ "notNull": true
412
+ },
413
+ "status": {
414
+ "name": "status",
415
+ "type": "text",
416
+ "primaryKey": false,
417
+ "notNull": true,
418
+ "default": "'idle'"
419
+ },
420
+ "cursor_time": {
421
+ "name": "cursor_time",
422
+ "type": "timestamp with time zone",
423
+ "primaryKey": false,
424
+ "notNull": false
425
+ },
426
+ "cursor": {
427
+ "name": "cursor",
428
+ "type": "jsonb",
429
+ "primaryKey": false,
430
+ "notNull": true,
431
+ "default": "'{}'::jsonb"
432
+ },
433
+ "last_success_at": {
434
+ "name": "last_success_at",
435
+ "type": "timestamp with time zone",
436
+ "primaryKey": false,
437
+ "notNull": false
438
+ },
439
+ "last_attempt_at": {
440
+ "name": "last_attempt_at",
441
+ "type": "timestamp with time zone",
442
+ "primaryKey": false,
443
+ "notNull": false
444
+ },
445
+ "next_run_at": {
446
+ "name": "next_run_at",
447
+ "type": "timestamp with time zone",
448
+ "primaryKey": false,
449
+ "notNull": false
450
+ },
451
+ "failure_count": {
452
+ "name": "failure_count",
453
+ "type": "integer",
454
+ "primaryKey": false,
455
+ "notNull": true,
456
+ "default": 0
457
+ },
458
+ "last_error": {
459
+ "name": "last_error",
460
+ "type": "text",
461
+ "primaryKey": false,
462
+ "notNull": false
463
+ },
464
+ "failure_details": {
465
+ "name": "failure_details",
466
+ "type": "jsonb",
467
+ "primaryKey": false,
468
+ "notNull": false
469
+ },
470
+ "held_reason": {
471
+ "name": "held_reason",
472
+ "type": "text",
473
+ "primaryKey": false,
474
+ "notNull": false
475
+ },
476
+ "updated_at": {
477
+ "name": "updated_at",
478
+ "type": "timestamp with time zone",
479
+ "primaryKey": false,
480
+ "notNull": true,
481
+ "default": "now()"
482
+ }
483
+ },
484
+ "indexes": {},
485
+ "foreignKeys": {},
486
+ "compositePrimaryKeys": {},
487
+ "uniqueConstraints": {},
488
+ "policies": {},
489
+ "checkConstraints": {},
490
+ "isRLSEnabled": false
491
+ },
492
+ "public.seazona_order_read_failures": {
493
+ "name": "seazona_order_read_failures",
494
+ "schema": "",
495
+ "columns": {
496
+ "order_id": {
497
+ "name": "order_id",
498
+ "type": "text",
499
+ "primaryKey": true,
500
+ "notNull": true
501
+ },
502
+ "failure_count": {
503
+ "name": "failure_count",
504
+ "type": "integer",
505
+ "primaryKey": false,
506
+ "notNull": true
507
+ },
508
+ "last_attempt_at": {
509
+ "name": "last_attempt_at",
510
+ "type": "timestamp with time zone",
511
+ "primaryKey": false,
512
+ "notNull": true
513
+ },
514
+ "last_http_status": {
515
+ "name": "last_http_status",
516
+ "type": "integer",
517
+ "primaryKey": false,
518
+ "notNull": false
519
+ },
520
+ "last_failure_kind": {
521
+ "name": "last_failure_kind",
522
+ "type": "text",
523
+ "primaryKey": false,
524
+ "notNull": false
525
+ },
526
+ "last_error": {
527
+ "name": "last_error",
528
+ "type": "text",
529
+ "primaryKey": false,
530
+ "notNull": false
531
+ },
532
+ "quarantined_until": {
533
+ "name": "quarantined_until",
534
+ "type": "timestamp with time zone",
535
+ "primaryKey": false,
536
+ "notNull": false
537
+ }
538
+ },
539
+ "indexes": {},
540
+ "foreignKeys": {},
541
+ "compositePrimaryKeys": {},
542
+ "uniqueConstraints": {},
543
+ "policies": {},
544
+ "checkConstraints": {},
545
+ "isRLSEnabled": false
546
+ },
547
+ "public.seazona_orders": {
548
+ "name": "seazona_orders",
549
+ "schema": "",
550
+ "columns": {
551
+ "id": {
552
+ "name": "id",
553
+ "type": "text",
554
+ "primaryKey": true,
555
+ "notNull": true
556
+ },
557
+ "invoice_number": {
558
+ "name": "invoice_number",
559
+ "type": "text",
560
+ "primaryKey": false,
561
+ "notNull": false
562
+ },
563
+ "client_id": {
564
+ "name": "client_id",
565
+ "type": "text",
566
+ "primaryKey": false,
567
+ "notNull": false
568
+ },
569
+ "company": {
570
+ "name": "company",
571
+ "type": "text",
572
+ "primaryKey": false,
573
+ "notNull": false
574
+ },
575
+ "doctor_name": {
576
+ "name": "doctor_name",
577
+ "type": "text",
578
+ "primaryKey": false,
579
+ "notNull": false
580
+ },
581
+ "status": {
582
+ "name": "status",
583
+ "type": "text",
584
+ "primaryKey": false,
585
+ "notNull": false
586
+ },
587
+ "ordered_text": {
588
+ "name": "ordered_text",
589
+ "type": "text",
590
+ "primaryKey": false,
591
+ "notNull": false
592
+ },
593
+ "due_text": {
594
+ "name": "due_text",
595
+ "type": "text",
596
+ "primaryKey": false,
597
+ "notNull": false
598
+ },
599
+ "last_modified_text": {
600
+ "name": "last_modified_text",
601
+ "type": "text",
602
+ "primaryKey": false,
603
+ "notNull": false
604
+ },
605
+ "department": {
606
+ "name": "department",
607
+ "type": "text",
608
+ "primaryKey": false,
609
+ "notNull": false
610
+ },
611
+ "lines": {
612
+ "name": "lines",
613
+ "type": "jsonb",
614
+ "primaryKey": false,
615
+ "notNull": true,
616
+ "default": "'[]'::jsonb"
617
+ },
618
+ "subtotal_cents": {
619
+ "name": "subtotal_cents",
620
+ "type": "bigint",
621
+ "primaryKey": false,
622
+ "notNull": false
623
+ },
624
+ "patient_reference": {
625
+ "name": "patient_reference",
626
+ "type": "text",
627
+ "primaryKey": false,
628
+ "notNull": false
629
+ },
630
+ "deleted_in_source_at": {
631
+ "name": "deleted_in_source_at",
632
+ "type": "timestamp with time zone",
633
+ "primaryKey": false,
634
+ "notNull": false
635
+ },
636
+ "list_signature": {
637
+ "name": "list_signature",
638
+ "type": "text",
639
+ "primaryKey": false,
640
+ "notNull": false
641
+ },
642
+ "record_hash": {
643
+ "name": "record_hash",
644
+ "type": "text",
645
+ "primaryKey": false,
646
+ "notNull": true
647
+ },
648
+ "first_seen_at": {
649
+ "name": "first_seen_at",
650
+ "type": "timestamp with time zone",
651
+ "primaryKey": false,
652
+ "notNull": true
653
+ },
654
+ "last_synced_at": {
655
+ "name": "last_synced_at",
656
+ "type": "timestamp with time zone",
657
+ "primaryKey": false,
658
+ "notNull": true
659
+ },
660
+ "last_changed_at": {
661
+ "name": "last_changed_at",
662
+ "type": "timestamp with time zone",
663
+ "primaryKey": false,
664
+ "notNull": true
665
+ }
666
+ },
667
+ "indexes": {
668
+ "seazona_orders_invoice_number": {
669
+ "name": "seazona_orders_invoice_number",
670
+ "columns": [
671
+ {
672
+ "expression": "invoice_number",
673
+ "isExpression": false,
674
+ "asc": true,
675
+ "nulls": "last"
676
+ }
677
+ ],
678
+ "isUnique": false,
679
+ "concurrently": false,
680
+ "method": "btree",
681
+ "with": {}
682
+ },
683
+ "seazona_orders_changed": {
684
+ "name": "seazona_orders_changed",
685
+ "columns": [
686
+ {
687
+ "expression": "last_changed_at",
688
+ "isExpression": false,
689
+ "asc": true,
690
+ "nulls": "last"
691
+ }
692
+ ],
693
+ "isUnique": false,
694
+ "concurrently": false,
695
+ "method": "btree",
696
+ "with": {}
697
+ }
698
+ },
699
+ "foreignKeys": {},
700
+ "compositePrimaryKeys": {},
701
+ "uniqueConstraints": {},
702
+ "policies": {},
703
+ "checkConstraints": {},
704
+ "isRLSEnabled": false
705
+ },
706
+ "public.seazona_reference": {
707
+ "name": "seazona_reference",
708
+ "schema": "",
709
+ "columns": {
710
+ "resource": {
711
+ "name": "resource",
712
+ "type": "text",
713
+ "primaryKey": false,
714
+ "notNull": true
715
+ },
716
+ "id": {
717
+ "name": "id",
718
+ "type": "text",
719
+ "primaryKey": false,
720
+ "notNull": true
721
+ },
722
+ "name": {
723
+ "name": "name",
724
+ "type": "text",
725
+ "primaryKey": false,
726
+ "notNull": false
727
+ },
728
+ "code": {
729
+ "name": "code",
730
+ "type": "text",
731
+ "primaryKey": false,
732
+ "notNull": false
733
+ },
734
+ "kind": {
735
+ "name": "kind",
736
+ "type": "text",
737
+ "primaryKey": false,
738
+ "notNull": false
739
+ },
740
+ "price_cents": {
741
+ "name": "price_cents",
742
+ "type": "bigint",
743
+ "primaryKey": false,
744
+ "notNull": false
745
+ },
746
+ "taxable": {
747
+ "name": "taxable",
748
+ "type": "boolean",
749
+ "primaryKey": false,
750
+ "notNull": false
751
+ },
752
+ "record_hash": {
753
+ "name": "record_hash",
754
+ "type": "text",
755
+ "primaryKey": false,
756
+ "notNull": true
757
+ },
758
+ "last_synced_at": {
759
+ "name": "last_synced_at",
760
+ "type": "timestamp with time zone",
761
+ "primaryKey": false,
762
+ "notNull": true
763
+ }
764
+ },
765
+ "indexes": {},
766
+ "foreignKeys": {},
767
+ "compositePrimaryKeys": {
768
+ "seazona_reference_resource_id_pk": {
769
+ "name": "seazona_reference_resource_id_pk",
770
+ "columns": [
771
+ "resource",
772
+ "id"
773
+ ]
774
+ }
775
+ },
776
+ "uniqueConstraints": {},
777
+ "policies": {},
778
+ "checkConstraints": {},
779
+ "isRLSEnabled": false
780
+ }
781
+ },
782
+ "enums": {},
783
+ "schemas": {},
784
+ "sequences": {},
785
+ "roles": {},
786
+ "policies": {},
787
+ "views": {},
788
+ "_meta": {
789
+ "columns": {},
790
+ "schemas": {},
791
+ "tables": {}
792
+ }
793
+ }