@arcforgelabs/flow 2026.10.30 → 2026.10.32-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 (67) hide show
  1. package/README.md +2 -0
  2. package/npm-shrinkwrap.json +188 -2
  3. package/package.json +2 -1
  4. package/server/api/alerts.js +49 -0
  5. package/server/api/invoicing.js +110 -3
  6. package/server/app.js +29 -2
  7. package/server/core/alerts.js +157 -0
  8. package/server/core/history.js +65 -0
  9. package/server/core/invoice-pdf.js +266 -0
  10. package/server/core/invoicing-rules.js +12 -0
  11. package/server/core/job-board.js +25 -3
  12. package/server/core/line-mapping.js +36 -10
  13. package/server/core/pipeline.js +75 -3
  14. package/server/core/price-list.js +348 -0
  15. package/server/db/commands.js +42 -0
  16. package/server/db/doctor.js +168 -0
  17. package/server/db/migrations/0014_price_list.sql +34 -0
  18. package/server/db/migrations/0015_alert_dismissals.sql +17 -0
  19. package/server/db/migrations/meta/0014_snapshot.json +3773 -0
  20. package/server/db/migrations/meta/0015_snapshot.json +3854 -0
  21. package/server/db/migrations/meta/_journal.json +14 -0
  22. package/server/db/schema.js +44 -0
  23. package/server/flow-server.js +20 -1
  24. package/server/index.js +2 -1
  25. package/server/integrations/call-guard.js +362 -0
  26. package/server/integrations/port.js +20 -1
  27. package/server/integrations/seazona/feed.js +23 -1
  28. package/server/integrations/seazona/governor.js +50 -122
  29. package/server/integrations/seazona/history/backfill.js +208 -0
  30. package/server/integrations/seazona/history/csv.js +65 -0
  31. package/server/integrations/seazona/history/index.js +584 -0
  32. package/server/integrations/seazona/history/read.js +196 -0
  33. package/server/integrations/seazona/index.js +37 -1
  34. package/server/integrations/seazona/lanes.js +186 -50
  35. package/server/integrations/seazona/migrations/0003_call_guard.sql +2 -0
  36. package/server/integrations/seazona/migrations/0004_history_import.sql +68 -0
  37. package/server/integrations/seazona/migrations/meta/0003_snapshot.json +895 -0
  38. package/server/integrations/seazona/migrations/meta/0004_snapshot.json +1323 -0
  39. package/server/integrations/seazona/migrations/meta/_journal.json +14 -0
  40. package/server/integrations/seazona/routes.js +145 -0
  41. package/server/integrations/seazona/schema.js +94 -0
  42. package/server/integrations/seazona/settings.js +14 -3
  43. package/server/integrations/seazona/sync-once.js +1 -1
  44. package/server/integrations/seazona/tables.js +4 -0
  45. package/server/integrations/xero/client.js +27 -7
  46. package/server/integrations/xero/drafts.js +46 -8
  47. package/server/integrations/xero/import.js +125 -17
  48. package/server/integrations/xero/index.js +36 -7
  49. package/server/integrations/xero/lookup.js +26 -0
  50. package/server/integrations/xero/migrations/0006_xero_call_guard.sql +26 -0
  51. package/server/integrations/xero/migrations/meta/_journal.json +7 -0
  52. package/server/integrations/xero/mirror.js +11 -2
  53. package/server/integrations/xero/oauth.js +4 -1
  54. package/server/integrations/xero/reconcile.js +173 -0
  55. package/server/integrations/xero/routes.js +35 -0
  56. package/server/integrations/xero/runtime.js +45 -4
  57. package/server/release-channel.js +3 -3
  58. package/server/ui/alerts.js +77 -0
  59. package/server/ui/app-page.js +1 -1
  60. package/server/ui/app.js +48 -14
  61. package/server/ui/clerk-appearance.js +42 -9
  62. package/server/ui/flow.css +31 -2
  63. package/server/ui/invoicing-settings.js +1 -1
  64. package/server/ui/invoicing.js +121 -8
  65. package/server/ui/line-mappings.js +3 -2
  66. package/server/ui/price-list.js +247 -0
  67. package/server/ui/routes.js +1 -1
@@ -0,0 +1,895 @@
1
+ {
2
+ "id": "d650d87a-1c2f-4924-a103-b873a80d3bb2",
3
+ "prevId": "cb4b9c7e-9f72-4e1a-a38e-ebe9af01ce5a",
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
+ "circuit_open_until": {
32
+ "name": "circuit_open_until",
33
+ "type": "timestamp with time zone",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "default": "'epoch'"
37
+ },
38
+ "circuit_opens": {
39
+ "name": "circuit_opens",
40
+ "type": "integer",
41
+ "primaryKey": false,
42
+ "notNull": true,
43
+ "default": 0
44
+ },
45
+ "halted_reason": {
46
+ "name": "halted_reason",
47
+ "type": "text",
48
+ "primaryKey": false,
49
+ "notNull": false
50
+ },
51
+ "halted_at": {
52
+ "name": "halted_at",
53
+ "type": "timestamp with time zone",
54
+ "primaryKey": false,
55
+ "notNull": false
56
+ },
57
+ "stopped_resources": {
58
+ "name": "stopped_resources",
59
+ "type": "jsonb",
60
+ "primaryKey": false,
61
+ "notNull": true,
62
+ "default": "'{}'::jsonb"
63
+ },
64
+ "updated_at": {
65
+ "name": "updated_at",
66
+ "type": "timestamp with time zone",
67
+ "primaryKey": false,
68
+ "notNull": true,
69
+ "default": "now()"
70
+ }
71
+ },
72
+ "indexes": {},
73
+ "foreignKeys": {},
74
+ "compositePrimaryKeys": {},
75
+ "uniqueConstraints": {},
76
+ "policies": {},
77
+ "checkConstraints": {},
78
+ "isRLSEnabled": false
79
+ },
80
+ "public.seazona_api_requests": {
81
+ "name": "seazona_api_requests",
82
+ "schema": "",
83
+ "columns": {
84
+ "id": {
85
+ "name": "id",
86
+ "type": "bigserial",
87
+ "primaryKey": true,
88
+ "notNull": true
89
+ },
90
+ "client_key": {
91
+ "name": "client_key",
92
+ "type": "text",
93
+ "primaryKey": false,
94
+ "notNull": true
95
+ },
96
+ "workflow": {
97
+ "name": "workflow",
98
+ "type": "text",
99
+ "primaryKey": false,
100
+ "notNull": true
101
+ },
102
+ "admitted_at": {
103
+ "name": "admitted_at",
104
+ "type": "timestamp with time zone",
105
+ "primaryKey": false,
106
+ "notNull": true
107
+ },
108
+ "resource": {
109
+ "name": "resource",
110
+ "type": "text",
111
+ "primaryKey": false,
112
+ "notNull": false
113
+ },
114
+ "request_path": {
115
+ "name": "request_path",
116
+ "type": "text",
117
+ "primaryKey": false,
118
+ "notNull": false
119
+ },
120
+ "status_code": {
121
+ "name": "status_code",
122
+ "type": "integer",
123
+ "primaryKey": false,
124
+ "notNull": false
125
+ },
126
+ "failure_kind": {
127
+ "name": "failure_kind",
128
+ "type": "text",
129
+ "primaryKey": false,
130
+ "notNull": false
131
+ },
132
+ "duration_ms": {
133
+ "name": "duration_ms",
134
+ "type": "integer",
135
+ "primaryKey": false,
136
+ "notNull": false
137
+ },
138
+ "is_retry": {
139
+ "name": "is_retry",
140
+ "type": "boolean",
141
+ "primaryKey": false,
142
+ "notNull": true,
143
+ "default": false
144
+ }
145
+ },
146
+ "indexes": {
147
+ "seazona_api_requests_window": {
148
+ "name": "seazona_api_requests_window",
149
+ "columns": [
150
+ {
151
+ "expression": "client_key",
152
+ "isExpression": false,
153
+ "asc": true,
154
+ "nulls": "last"
155
+ },
156
+ {
157
+ "expression": "admitted_at",
158
+ "isExpression": false,
159
+ "asc": true,
160
+ "nulls": "last"
161
+ }
162
+ ],
163
+ "isUnique": false,
164
+ "concurrently": false,
165
+ "method": "btree",
166
+ "with": {}
167
+ }
168
+ },
169
+ "foreignKeys": {},
170
+ "compositePrimaryKeys": {},
171
+ "uniqueConstraints": {},
172
+ "policies": {},
173
+ "checkConstraints": {},
174
+ "isRLSEnabled": false
175
+ },
176
+ "public.seazona_clients": {
177
+ "name": "seazona_clients",
178
+ "schema": "",
179
+ "columns": {
180
+ "id": {
181
+ "name": "id",
182
+ "type": "text",
183
+ "primaryKey": true,
184
+ "notNull": true
185
+ },
186
+ "account_number": {
187
+ "name": "account_number",
188
+ "type": "text",
189
+ "primaryKey": false,
190
+ "notNull": false
191
+ },
192
+ "company": {
193
+ "name": "company",
194
+ "type": "text",
195
+ "primaryKey": false,
196
+ "notNull": false
197
+ },
198
+ "full_name": {
199
+ "name": "full_name",
200
+ "type": "text",
201
+ "primaryKey": false,
202
+ "notNull": false
203
+ },
204
+ "email": {
205
+ "name": "email",
206
+ "type": "text",
207
+ "primaryKey": false,
208
+ "notNull": false
209
+ },
210
+ "phone": {
211
+ "name": "phone",
212
+ "type": "text",
213
+ "primaryKey": false,
214
+ "notNull": false
215
+ },
216
+ "address": {
217
+ "name": "address",
218
+ "type": "jsonb",
219
+ "primaryKey": false,
220
+ "notNull": false
221
+ },
222
+ "tax_rate": {
223
+ "name": "tax_rate",
224
+ "type": "text",
225
+ "primaryKey": false,
226
+ "notNull": false
227
+ },
228
+ "active": {
229
+ "name": "active",
230
+ "type": "boolean",
231
+ "primaryKey": false,
232
+ "notNull": false
233
+ },
234
+ "doctors": {
235
+ "name": "doctors",
236
+ "type": "jsonb",
237
+ "primaryKey": false,
238
+ "notNull": true,
239
+ "default": "'[]'::jsonb"
240
+ },
241
+ "last_modified_text": {
242
+ "name": "last_modified_text",
243
+ "type": "text",
244
+ "primaryKey": false,
245
+ "notNull": false
246
+ },
247
+ "list_signature": {
248
+ "name": "list_signature",
249
+ "type": "text",
250
+ "primaryKey": false,
251
+ "notNull": false
252
+ },
253
+ "record_hash": {
254
+ "name": "record_hash",
255
+ "type": "text",
256
+ "primaryKey": false,
257
+ "notNull": true
258
+ },
259
+ "first_seen_at": {
260
+ "name": "first_seen_at",
261
+ "type": "timestamp with time zone",
262
+ "primaryKey": false,
263
+ "notNull": true
264
+ },
265
+ "last_synced_at": {
266
+ "name": "last_synced_at",
267
+ "type": "timestamp with time zone",
268
+ "primaryKey": false,
269
+ "notNull": true
270
+ },
271
+ "last_changed_at": {
272
+ "name": "last_changed_at",
273
+ "type": "timestamp with time zone",
274
+ "primaryKey": false,
275
+ "notNull": true
276
+ }
277
+ },
278
+ "indexes": {},
279
+ "foreignKeys": {},
280
+ "compositePrimaryKeys": {},
281
+ "uniqueConstraints": {},
282
+ "policies": {},
283
+ "checkConstraints": {},
284
+ "isRLSEnabled": false
285
+ },
286
+ "public.seazona_invoices": {
287
+ "name": "seazona_invoices",
288
+ "schema": "",
289
+ "columns": {
290
+ "invoice_number": {
291
+ "name": "invoice_number",
292
+ "type": "text",
293
+ "primaryKey": true,
294
+ "notNull": true
295
+ },
296
+ "seazona_id": {
297
+ "name": "seazona_id",
298
+ "type": "text",
299
+ "primaryKey": false,
300
+ "notNull": false
301
+ },
302
+ "client_id": {
303
+ "name": "client_id",
304
+ "type": "text",
305
+ "primaryKey": false,
306
+ "notNull": false
307
+ },
308
+ "account_number": {
309
+ "name": "account_number",
310
+ "type": "text",
311
+ "primaryKey": false,
312
+ "notNull": false
313
+ },
314
+ "company": {
315
+ "name": "company",
316
+ "type": "text",
317
+ "primaryKey": false,
318
+ "notNull": false
319
+ },
320
+ "doctor_name": {
321
+ "name": "doctor_name",
322
+ "type": "text",
323
+ "primaryKey": false,
324
+ "notNull": false
325
+ },
326
+ "status": {
327
+ "name": "status",
328
+ "type": "text",
329
+ "primaryKey": false,
330
+ "notNull": false
331
+ },
332
+ "invoice_date_text": {
333
+ "name": "invoice_date_text",
334
+ "type": "text",
335
+ "primaryKey": false,
336
+ "notNull": false
337
+ },
338
+ "due_text": {
339
+ "name": "due_text",
340
+ "type": "text",
341
+ "primaryKey": false,
342
+ "notNull": false
343
+ },
344
+ "last_modified_text": {
345
+ "name": "last_modified_text",
346
+ "type": "text",
347
+ "primaryKey": false,
348
+ "notNull": false
349
+ },
350
+ "lines": {
351
+ "name": "lines",
352
+ "type": "jsonb",
353
+ "primaryKey": false,
354
+ "notNull": true,
355
+ "default": "'[]'::jsonb"
356
+ },
357
+ "subtotal_cents": {
358
+ "name": "subtotal_cents",
359
+ "type": "bigint",
360
+ "primaryKey": false,
361
+ "notNull": false
362
+ },
363
+ "tax_cents": {
364
+ "name": "tax_cents",
365
+ "type": "bigint",
366
+ "primaryKey": false,
367
+ "notNull": false
368
+ },
369
+ "total_cents": {
370
+ "name": "total_cents",
371
+ "type": "bigint",
372
+ "primaryKey": false,
373
+ "notNull": false
374
+ },
375
+ "discount_cents": {
376
+ "name": "discount_cents",
377
+ "type": "bigint",
378
+ "primaryKey": false,
379
+ "notNull": false
380
+ },
381
+ "patient_reference": {
382
+ "name": "patient_reference",
383
+ "type": "text",
384
+ "primaryKey": false,
385
+ "notNull": false
386
+ },
387
+ "list_signature": {
388
+ "name": "list_signature",
389
+ "type": "text",
390
+ "primaryKey": false,
391
+ "notNull": false
392
+ },
393
+ "record_hash": {
394
+ "name": "record_hash",
395
+ "type": "text",
396
+ "primaryKey": false,
397
+ "notNull": true
398
+ },
399
+ "first_seen_at": {
400
+ "name": "first_seen_at",
401
+ "type": "timestamp with time zone",
402
+ "primaryKey": false,
403
+ "notNull": true
404
+ },
405
+ "last_synced_at": {
406
+ "name": "last_synced_at",
407
+ "type": "timestamp with time zone",
408
+ "primaryKey": false,
409
+ "notNull": true
410
+ },
411
+ "last_changed_at": {
412
+ "name": "last_changed_at",
413
+ "type": "timestamp with time zone",
414
+ "primaryKey": false,
415
+ "notNull": true
416
+ }
417
+ },
418
+ "indexes": {
419
+ "seazona_invoices_changed": {
420
+ "name": "seazona_invoices_changed",
421
+ "columns": [
422
+ {
423
+ "expression": "last_changed_at",
424
+ "isExpression": false,
425
+ "asc": true,
426
+ "nulls": "last"
427
+ }
428
+ ],
429
+ "isUnique": false,
430
+ "concurrently": false,
431
+ "method": "btree",
432
+ "with": {}
433
+ }
434
+ },
435
+ "foreignKeys": {},
436
+ "compositePrimaryKeys": {},
437
+ "uniqueConstraints": {},
438
+ "policies": {},
439
+ "checkConstraints": {},
440
+ "isRLSEnabled": false
441
+ },
442
+ "public.seazona_lane_state": {
443
+ "name": "seazona_lane_state",
444
+ "schema": "",
445
+ "columns": {
446
+ "lane": {
447
+ "name": "lane",
448
+ "type": "text",
449
+ "primaryKey": true,
450
+ "notNull": true
451
+ },
452
+ "status": {
453
+ "name": "status",
454
+ "type": "text",
455
+ "primaryKey": false,
456
+ "notNull": true,
457
+ "default": "'idle'"
458
+ },
459
+ "cursor_time": {
460
+ "name": "cursor_time",
461
+ "type": "timestamp with time zone",
462
+ "primaryKey": false,
463
+ "notNull": false
464
+ },
465
+ "cursor": {
466
+ "name": "cursor",
467
+ "type": "jsonb",
468
+ "primaryKey": false,
469
+ "notNull": true,
470
+ "default": "'{}'::jsonb"
471
+ },
472
+ "last_success_at": {
473
+ "name": "last_success_at",
474
+ "type": "timestamp with time zone",
475
+ "primaryKey": false,
476
+ "notNull": false
477
+ },
478
+ "last_attempt_at": {
479
+ "name": "last_attempt_at",
480
+ "type": "timestamp with time zone",
481
+ "primaryKey": false,
482
+ "notNull": false
483
+ },
484
+ "next_run_at": {
485
+ "name": "next_run_at",
486
+ "type": "timestamp with time zone",
487
+ "primaryKey": false,
488
+ "notNull": false
489
+ },
490
+ "failure_count": {
491
+ "name": "failure_count",
492
+ "type": "integer",
493
+ "primaryKey": false,
494
+ "notNull": true,
495
+ "default": 0
496
+ },
497
+ "last_error": {
498
+ "name": "last_error",
499
+ "type": "text",
500
+ "primaryKey": false,
501
+ "notNull": false
502
+ },
503
+ "failure_details": {
504
+ "name": "failure_details",
505
+ "type": "jsonb",
506
+ "primaryKey": false,
507
+ "notNull": false
508
+ },
509
+ "held_reason": {
510
+ "name": "held_reason",
511
+ "type": "text",
512
+ "primaryKey": false,
513
+ "notNull": false
514
+ },
515
+ "updated_at": {
516
+ "name": "updated_at",
517
+ "type": "timestamp with time zone",
518
+ "primaryKey": false,
519
+ "notNull": true,
520
+ "default": "now()"
521
+ }
522
+ },
523
+ "indexes": {},
524
+ "foreignKeys": {},
525
+ "compositePrimaryKeys": {},
526
+ "uniqueConstraints": {},
527
+ "policies": {},
528
+ "checkConstraints": {},
529
+ "isRLSEnabled": false
530
+ },
531
+ "public.seazona_order_read_failures": {
532
+ "name": "seazona_order_read_failures",
533
+ "schema": "",
534
+ "columns": {
535
+ "order_id": {
536
+ "name": "order_id",
537
+ "type": "text",
538
+ "primaryKey": true,
539
+ "notNull": true
540
+ },
541
+ "failure_count": {
542
+ "name": "failure_count",
543
+ "type": "integer",
544
+ "primaryKey": false,
545
+ "notNull": true
546
+ },
547
+ "last_attempt_at": {
548
+ "name": "last_attempt_at",
549
+ "type": "timestamp with time zone",
550
+ "primaryKey": false,
551
+ "notNull": true
552
+ },
553
+ "last_http_status": {
554
+ "name": "last_http_status",
555
+ "type": "integer",
556
+ "primaryKey": false,
557
+ "notNull": false
558
+ },
559
+ "last_failure_kind": {
560
+ "name": "last_failure_kind",
561
+ "type": "text",
562
+ "primaryKey": false,
563
+ "notNull": false
564
+ },
565
+ "last_error": {
566
+ "name": "last_error",
567
+ "type": "text",
568
+ "primaryKey": false,
569
+ "notNull": false
570
+ },
571
+ "quarantined_until": {
572
+ "name": "quarantined_until",
573
+ "type": "timestamp with time zone",
574
+ "primaryKey": false,
575
+ "notNull": false
576
+ }
577
+ },
578
+ "indexes": {},
579
+ "foreignKeys": {},
580
+ "compositePrimaryKeys": {},
581
+ "uniqueConstraints": {},
582
+ "policies": {},
583
+ "checkConstraints": {},
584
+ "isRLSEnabled": false
585
+ },
586
+ "public.seazona_orders": {
587
+ "name": "seazona_orders",
588
+ "schema": "",
589
+ "columns": {
590
+ "id": {
591
+ "name": "id",
592
+ "type": "text",
593
+ "primaryKey": true,
594
+ "notNull": true
595
+ },
596
+ "invoice_number": {
597
+ "name": "invoice_number",
598
+ "type": "text",
599
+ "primaryKey": false,
600
+ "notNull": false
601
+ },
602
+ "client_id": {
603
+ "name": "client_id",
604
+ "type": "text",
605
+ "primaryKey": false,
606
+ "notNull": false
607
+ },
608
+ "company": {
609
+ "name": "company",
610
+ "type": "text",
611
+ "primaryKey": false,
612
+ "notNull": false
613
+ },
614
+ "doctor_name": {
615
+ "name": "doctor_name",
616
+ "type": "text",
617
+ "primaryKey": false,
618
+ "notNull": false
619
+ },
620
+ "status": {
621
+ "name": "status",
622
+ "type": "text",
623
+ "primaryKey": false,
624
+ "notNull": false
625
+ },
626
+ "ordered_text": {
627
+ "name": "ordered_text",
628
+ "type": "text",
629
+ "primaryKey": false,
630
+ "notNull": false
631
+ },
632
+ "due_text": {
633
+ "name": "due_text",
634
+ "type": "text",
635
+ "primaryKey": false,
636
+ "notNull": false
637
+ },
638
+ "last_modified_text": {
639
+ "name": "last_modified_text",
640
+ "type": "text",
641
+ "primaryKey": false,
642
+ "notNull": false
643
+ },
644
+ "department": {
645
+ "name": "department",
646
+ "type": "text",
647
+ "primaryKey": false,
648
+ "notNull": false
649
+ },
650
+ "lines": {
651
+ "name": "lines",
652
+ "type": "jsonb",
653
+ "primaryKey": false,
654
+ "notNull": true,
655
+ "default": "'[]'::jsonb"
656
+ },
657
+ "subtotal_cents": {
658
+ "name": "subtotal_cents",
659
+ "type": "bigint",
660
+ "primaryKey": false,
661
+ "notNull": false
662
+ },
663
+ "patient_reference": {
664
+ "name": "patient_reference",
665
+ "type": "text",
666
+ "primaryKey": false,
667
+ "notNull": false
668
+ },
669
+ "deleted_in_source_at": {
670
+ "name": "deleted_in_source_at",
671
+ "type": "timestamp with time zone",
672
+ "primaryKey": false,
673
+ "notNull": false
674
+ },
675
+ "list_signature": {
676
+ "name": "list_signature",
677
+ "type": "text",
678
+ "primaryKey": false,
679
+ "notNull": false
680
+ },
681
+ "record_hash": {
682
+ "name": "record_hash",
683
+ "type": "text",
684
+ "primaryKey": false,
685
+ "notNull": true
686
+ },
687
+ "first_seen_at": {
688
+ "name": "first_seen_at",
689
+ "type": "timestamp with time zone",
690
+ "primaryKey": false,
691
+ "notNull": true
692
+ },
693
+ "last_synced_at": {
694
+ "name": "last_synced_at",
695
+ "type": "timestamp with time zone",
696
+ "primaryKey": false,
697
+ "notNull": true
698
+ },
699
+ "last_changed_at": {
700
+ "name": "last_changed_at",
701
+ "type": "timestamp with time zone",
702
+ "primaryKey": false,
703
+ "notNull": true
704
+ }
705
+ },
706
+ "indexes": {
707
+ "seazona_orders_invoice_number": {
708
+ "name": "seazona_orders_invoice_number",
709
+ "columns": [
710
+ {
711
+ "expression": "invoice_number",
712
+ "isExpression": false,
713
+ "asc": true,
714
+ "nulls": "last"
715
+ }
716
+ ],
717
+ "isUnique": false,
718
+ "concurrently": false,
719
+ "method": "btree",
720
+ "with": {}
721
+ },
722
+ "seazona_orders_changed": {
723
+ "name": "seazona_orders_changed",
724
+ "columns": [
725
+ {
726
+ "expression": "last_changed_at",
727
+ "isExpression": false,
728
+ "asc": true,
729
+ "nulls": "last"
730
+ }
731
+ ],
732
+ "isUnique": false,
733
+ "concurrently": false,
734
+ "method": "btree",
735
+ "with": {}
736
+ }
737
+ },
738
+ "foreignKeys": {},
739
+ "compositePrimaryKeys": {},
740
+ "uniqueConstraints": {},
741
+ "policies": {},
742
+ "checkConstraints": {},
743
+ "isRLSEnabled": false
744
+ },
745
+ "public.seazona_record_read_failures": {
746
+ "name": "seazona_record_read_failures",
747
+ "schema": "",
748
+ "columns": {
749
+ "resource": {
750
+ "name": "resource",
751
+ "type": "text",
752
+ "primaryKey": false,
753
+ "notNull": true
754
+ },
755
+ "record_key": {
756
+ "name": "record_key",
757
+ "type": "text",
758
+ "primaryKey": false,
759
+ "notNull": true
760
+ },
761
+ "failure_count": {
762
+ "name": "failure_count",
763
+ "type": "integer",
764
+ "primaryKey": false,
765
+ "notNull": true
766
+ },
767
+ "last_attempt_at": {
768
+ "name": "last_attempt_at",
769
+ "type": "timestamp with time zone",
770
+ "primaryKey": false,
771
+ "notNull": true
772
+ },
773
+ "last_http_status": {
774
+ "name": "last_http_status",
775
+ "type": "integer",
776
+ "primaryKey": false,
777
+ "notNull": false
778
+ },
779
+ "last_failure_kind": {
780
+ "name": "last_failure_kind",
781
+ "type": "text",
782
+ "primaryKey": false,
783
+ "notNull": false
784
+ },
785
+ "quarantined_until": {
786
+ "name": "quarantined_until",
787
+ "type": "timestamp with time zone",
788
+ "primaryKey": false,
789
+ "notNull": false
790
+ }
791
+ },
792
+ "indexes": {},
793
+ "foreignKeys": {},
794
+ "compositePrimaryKeys": {
795
+ "seazona_record_read_failures_resource_record_key_pk": {
796
+ "name": "seazona_record_read_failures_resource_record_key_pk",
797
+ "columns": [
798
+ "resource",
799
+ "record_key"
800
+ ]
801
+ }
802
+ },
803
+ "uniqueConstraints": {},
804
+ "policies": {},
805
+ "checkConstraints": {},
806
+ "isRLSEnabled": false
807
+ },
808
+ "public.seazona_reference": {
809
+ "name": "seazona_reference",
810
+ "schema": "",
811
+ "columns": {
812
+ "resource": {
813
+ "name": "resource",
814
+ "type": "text",
815
+ "primaryKey": false,
816
+ "notNull": true
817
+ },
818
+ "id": {
819
+ "name": "id",
820
+ "type": "text",
821
+ "primaryKey": false,
822
+ "notNull": true
823
+ },
824
+ "name": {
825
+ "name": "name",
826
+ "type": "text",
827
+ "primaryKey": false,
828
+ "notNull": false
829
+ },
830
+ "code": {
831
+ "name": "code",
832
+ "type": "text",
833
+ "primaryKey": false,
834
+ "notNull": false
835
+ },
836
+ "kind": {
837
+ "name": "kind",
838
+ "type": "text",
839
+ "primaryKey": false,
840
+ "notNull": false
841
+ },
842
+ "price_cents": {
843
+ "name": "price_cents",
844
+ "type": "bigint",
845
+ "primaryKey": false,
846
+ "notNull": false
847
+ },
848
+ "taxable": {
849
+ "name": "taxable",
850
+ "type": "boolean",
851
+ "primaryKey": false,
852
+ "notNull": false
853
+ },
854
+ "record_hash": {
855
+ "name": "record_hash",
856
+ "type": "text",
857
+ "primaryKey": false,
858
+ "notNull": true
859
+ },
860
+ "last_synced_at": {
861
+ "name": "last_synced_at",
862
+ "type": "timestamp with time zone",
863
+ "primaryKey": false,
864
+ "notNull": true
865
+ }
866
+ },
867
+ "indexes": {},
868
+ "foreignKeys": {},
869
+ "compositePrimaryKeys": {
870
+ "seazona_reference_resource_id_pk": {
871
+ "name": "seazona_reference_resource_id_pk",
872
+ "columns": [
873
+ "resource",
874
+ "id"
875
+ ]
876
+ }
877
+ },
878
+ "uniqueConstraints": {},
879
+ "policies": {},
880
+ "checkConstraints": {},
881
+ "isRLSEnabled": false
882
+ }
883
+ },
884
+ "enums": {},
885
+ "schemas": {},
886
+ "sequences": {},
887
+ "roles": {},
888
+ "policies": {},
889
+ "views": {},
890
+ "_meta": {
891
+ "columns": {},
892
+ "schemas": {},
893
+ "tables": {}
894
+ }
895
+ }