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