@chaos-overlords/storage 0.8.0 → 0.8.2

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 (59) hide show
  1. package/dist/node/index.d.ts +11 -3
  2. package/dist/node/index.d.ts.map +1 -1
  3. package/dist/node/index.js +26 -7
  4. package/dist/node/index.js.map +1 -1
  5. package/dist/postgres/database.d.ts +10 -0
  6. package/dist/postgres/database.d.ts.map +1 -0
  7. package/dist/postgres/database.js +2 -0
  8. package/dist/postgres/database.js.map +1 -0
  9. package/dist/postgres/events.d.ts +9 -0
  10. package/dist/postgres/events.d.ts.map +1 -0
  11. package/dist/postgres/events.js +66 -0
  12. package/dist/postgres/events.js.map +1 -0
  13. package/dist/postgres/repositories.d.ts +2 -3
  14. package/dist/postgres/repositories.d.ts.map +1 -1
  15. package/dist/postgres/repositories.js +151 -183
  16. package/dist/postgres/repositories.js.map +1 -1
  17. package/dist/postgres/schema.d.ts +26 -9
  18. package/dist/postgres/schema.d.ts.map +1 -1
  19. package/dist/postgres/schema.js +6 -0
  20. package/dist/postgres/schema.js.map +1 -1
  21. package/dist/postgres/takeovers.d.ts +12 -0
  22. package/dist/postgres/takeovers.d.ts.map +1 -0
  23. package/dist/postgres/takeovers.js +88 -0
  24. package/dist/postgres/takeovers.js.map +1 -0
  25. package/dist/shared/constraints.d.ts +10 -0
  26. package/dist/shared/constraints.d.ts.map +1 -1
  27. package/dist/shared/constraints.js +13 -0
  28. package/dist/shared/constraints.js.map +1 -1
  29. package/dist/shared/mappers.d.ts +28 -5
  30. package/dist/shared/mappers.d.ts.map +1 -1
  31. package/dist/shared/mappers.js +31 -0
  32. package/dist/shared/mappers.js.map +1 -1
  33. package/dist/sqlite/database.d.ts +12 -0
  34. package/dist/sqlite/database.d.ts.map +1 -0
  35. package/dist/sqlite/database.js +2 -0
  36. package/dist/sqlite/database.js.map +1 -0
  37. package/dist/sqlite/events.d.ts +9 -0
  38. package/dist/sqlite/events.d.ts.map +1 -0
  39. package/dist/sqlite/events.js +66 -0
  40. package/dist/sqlite/events.js.map +1 -0
  41. package/dist/sqlite/repositories.d.ts +2 -8
  42. package/dist/sqlite/repositories.d.ts.map +1 -1
  43. package/dist/sqlite/repositories.js +177 -183
  44. package/dist/sqlite/repositories.js.map +1 -1
  45. package/dist/sqlite/schema.d.ts +26 -9
  46. package/dist/sqlite/schema.d.ts.map +1 -1
  47. package/dist/sqlite/schema.js +6 -0
  48. package/dist/sqlite/schema.js.map +1 -1
  49. package/dist/sqlite/takeovers.d.ts +12 -0
  50. package/dist/sqlite/takeovers.d.ts.map +1 -0
  51. package/dist/sqlite/takeovers.js +88 -0
  52. package/dist/sqlite/takeovers.js.map +1 -0
  53. package/migrations/postgres/0005_old_husk.sql +6 -0
  54. package/migrations/postgres/meta/0005_snapshot.json +854 -0
  55. package/migrations/postgres/meta/_journal.json +8 -1
  56. package/migrations/sqlite/0005_lumpy_stingray.sql +6 -0
  57. package/migrations/sqlite/meta/0005_snapshot.json +844 -0
  58. package/migrations/sqlite/meta/_journal.json +8 -1
  59. package/package.json +7 -7
@@ -0,0 +1,854 @@
1
+ {
2
+ "id": "47019bfd-b28e-4378-bb85-4ea547cf1d22",
3
+ "prevId": "81f63ddb-493a-4b90-a7bf-8864dbe98eed",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.match_events": {
8
+ "name": "match_events",
9
+ "schema": "",
10
+ "columns": {
11
+ "match_id": {
12
+ "name": "match_id",
13
+ "type": "text",
14
+ "primaryKey": false,
15
+ "notNull": true
16
+ },
17
+ "seq": {
18
+ "name": "seq",
19
+ "type": "integer",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "type": {
24
+ "name": "type",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "payload": {
30
+ "name": "payload",
31
+ "type": "jsonb",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "created_at": {
36
+ "name": "created_at",
37
+ "type": "timestamp with time zone",
38
+ "primaryKey": false,
39
+ "notNull": true
40
+ }
41
+ },
42
+ "indexes": {},
43
+ "foreignKeys": {
44
+ "match_events_match_id_matches_id_fk": {
45
+ "name": "match_events_match_id_matches_id_fk",
46
+ "tableFrom": "match_events",
47
+ "tableTo": "matches",
48
+ "columnsFrom": [
49
+ "match_id"
50
+ ],
51
+ "columnsTo": [
52
+ "id"
53
+ ],
54
+ "onDelete": "cascade",
55
+ "onUpdate": "no action"
56
+ }
57
+ },
58
+ "compositePrimaryKeys": {
59
+ "match_events_match_id_seq_pk": {
60
+ "name": "match_events_match_id_seq_pk",
61
+ "columns": [
62
+ "match_id",
63
+ "seq"
64
+ ]
65
+ }
66
+ },
67
+ "uniqueConstraints": {},
68
+ "policies": {},
69
+ "checkConstraints": {},
70
+ "isRLSEnabled": false
71
+ },
72
+ "public.matches": {
73
+ "name": "matches",
74
+ "schema": "",
75
+ "columns": {
76
+ "id": {
77
+ "name": "id",
78
+ "type": "text",
79
+ "primaryKey": true,
80
+ "notNull": true
81
+ },
82
+ "protocol_version": {
83
+ "name": "protocol_version",
84
+ "type": "integer",
85
+ "primaryKey": false,
86
+ "notNull": true,
87
+ "default": 1
88
+ },
89
+ "session_version": {
90
+ "name": "session_version",
91
+ "type": "integer",
92
+ "primaryKey": false,
93
+ "notNull": true,
94
+ "default": 1
95
+ },
96
+ "status": {
97
+ "name": "status",
98
+ "type": "text",
99
+ "primaryKey": false,
100
+ "notNull": true
101
+ },
102
+ "name": {
103
+ "name": "name",
104
+ "type": "text",
105
+ "primaryKey": false,
106
+ "notNull": true
107
+ },
108
+ "visibility": {
109
+ "name": "visibility",
110
+ "type": "text",
111
+ "primaryKey": false,
112
+ "notNull": true
113
+ },
114
+ "max_players": {
115
+ "name": "max_players",
116
+ "type": "integer",
117
+ "primaryKey": false,
118
+ "notNull": true
119
+ },
120
+ "settings": {
121
+ "name": "settings",
122
+ "type": "jsonb",
123
+ "primaryKey": false,
124
+ "notNull": true
125
+ },
126
+ "host_player_id": {
127
+ "name": "host_player_id",
128
+ "type": "text",
129
+ "primaryKey": false,
130
+ "notNull": true
131
+ },
132
+ "join_code": {
133
+ "name": "join_code",
134
+ "type": "text",
135
+ "primaryKey": false,
136
+ "notNull": true
137
+ },
138
+ "password_hash": {
139
+ "name": "password_hash",
140
+ "type": "text",
141
+ "primaryKey": false,
142
+ "notNull": false
143
+ },
144
+ "seed": {
145
+ "name": "seed",
146
+ "type": "integer",
147
+ "primaryKey": false,
148
+ "notNull": false
149
+ },
150
+ "current_turn": {
151
+ "name": "current_turn",
152
+ "type": "integer",
153
+ "primaryKey": false,
154
+ "notNull": true,
155
+ "default": 0
156
+ },
157
+ "seat_count": {
158
+ "name": "seat_count",
159
+ "type": "integer",
160
+ "primaryKey": false,
161
+ "notNull": true,
162
+ "default": 1
163
+ },
164
+ "join_counter": {
165
+ "name": "join_counter",
166
+ "type": "integer",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "default": 1
170
+ },
171
+ "created_at": {
172
+ "name": "created_at",
173
+ "type": "timestamp with time zone",
174
+ "primaryKey": false,
175
+ "notNull": true
176
+ },
177
+ "updated_at": {
178
+ "name": "updated_at",
179
+ "type": "timestamp with time zone",
180
+ "primaryKey": false,
181
+ "notNull": true
182
+ }
183
+ },
184
+ "indexes": {
185
+ "matches_status_updated_idx": {
186
+ "name": "matches_status_updated_idx",
187
+ "columns": [
188
+ {
189
+ "expression": "status",
190
+ "isExpression": false,
191
+ "asc": true,
192
+ "nulls": "last"
193
+ },
194
+ {
195
+ "expression": "updated_at",
196
+ "isExpression": false,
197
+ "asc": true,
198
+ "nulls": "last"
199
+ }
200
+ ],
201
+ "isUnique": false,
202
+ "concurrently": false,
203
+ "method": "btree",
204
+ "with": {}
205
+ },
206
+ "matches_lobby_idx": {
207
+ "name": "matches_lobby_idx",
208
+ "columns": [
209
+ {
210
+ "expression": "status",
211
+ "isExpression": false,
212
+ "asc": true,
213
+ "nulls": "last"
214
+ },
215
+ {
216
+ "expression": "visibility",
217
+ "isExpression": false,
218
+ "asc": true,
219
+ "nulls": "last"
220
+ },
221
+ {
222
+ "expression": "created_at",
223
+ "isExpression": false,
224
+ "asc": true,
225
+ "nulls": "last"
226
+ }
227
+ ],
228
+ "isUnique": false,
229
+ "concurrently": false,
230
+ "method": "btree",
231
+ "with": {}
232
+ }
233
+ },
234
+ "foreignKeys": {},
235
+ "compositePrimaryKeys": {},
236
+ "uniqueConstraints": {
237
+ "matches_join_code_unique": {
238
+ "name": "matches_join_code_unique",
239
+ "nullsNotDistinct": false,
240
+ "columns": [
241
+ "join_code"
242
+ ]
243
+ }
244
+ },
245
+ "policies": {},
246
+ "checkConstraints": {},
247
+ "isRLSEnabled": false
248
+ },
249
+ "public.players": {
250
+ "name": "players",
251
+ "schema": "",
252
+ "columns": {
253
+ "id": {
254
+ "name": "id",
255
+ "type": "text",
256
+ "primaryKey": true,
257
+ "notNull": true
258
+ },
259
+ "match_id": {
260
+ "name": "match_id",
261
+ "type": "text",
262
+ "primaryKey": false,
263
+ "notNull": true
264
+ },
265
+ "slot": {
266
+ "name": "slot",
267
+ "type": "integer",
268
+ "primaryKey": false,
269
+ "notNull": true,
270
+ "default": -1
271
+ },
272
+ "join_order": {
273
+ "name": "join_order",
274
+ "type": "integer",
275
+ "primaryKey": false,
276
+ "notNull": true,
277
+ "default": 0
278
+ },
279
+ "display_name": {
280
+ "name": "display_name",
281
+ "type": "text",
282
+ "primaryKey": false,
283
+ "notNull": true
284
+ },
285
+ "portrait_id": {
286
+ "name": "portrait_id",
287
+ "type": "integer",
288
+ "primaryKey": false,
289
+ "notNull": true,
290
+ "default": 0
291
+ },
292
+ "token_hash": {
293
+ "name": "token_hash",
294
+ "type": "text",
295
+ "primaryKey": false,
296
+ "notNull": false
297
+ },
298
+ "status": {
299
+ "name": "status",
300
+ "type": "text",
301
+ "primaryKey": false,
302
+ "notNull": true
303
+ },
304
+ "joined_at": {
305
+ "name": "joined_at",
306
+ "type": "timestamp with time zone",
307
+ "primaryKey": false,
308
+ "notNull": true
309
+ }
310
+ },
311
+ "indexes": {
312
+ "players_match_idx": {
313
+ "name": "players_match_idx",
314
+ "columns": [
315
+ {
316
+ "expression": "match_id",
317
+ "isExpression": false,
318
+ "asc": true,
319
+ "nulls": "last"
320
+ }
321
+ ],
322
+ "isUnique": false,
323
+ "concurrently": false,
324
+ "method": "btree",
325
+ "with": {}
326
+ }
327
+ },
328
+ "foreignKeys": {
329
+ "players_match_id_matches_id_fk": {
330
+ "name": "players_match_id_matches_id_fk",
331
+ "tableFrom": "players",
332
+ "tableTo": "matches",
333
+ "columnsFrom": [
334
+ "match_id"
335
+ ],
336
+ "columnsTo": [
337
+ "id"
338
+ ],
339
+ "onDelete": "cascade",
340
+ "onUpdate": "no action"
341
+ }
342
+ },
343
+ "compositePrimaryKeys": {},
344
+ "uniqueConstraints": {
345
+ "players_token_hash_unique": {
346
+ "name": "players_token_hash_unique",
347
+ "nullsNotDistinct": false,
348
+ "columns": [
349
+ "token_hash"
350
+ ]
351
+ }
352
+ },
353
+ "policies": {},
354
+ "checkConstraints": {},
355
+ "isRLSEnabled": false
356
+ },
357
+ "public.snapshots": {
358
+ "name": "snapshots",
359
+ "schema": "",
360
+ "columns": {
361
+ "match_id": {
362
+ "name": "match_id",
363
+ "type": "text",
364
+ "primaryKey": false,
365
+ "notNull": true
366
+ },
367
+ "turn": {
368
+ "name": "turn",
369
+ "type": "integer",
370
+ "primaryKey": false,
371
+ "notNull": true
372
+ },
373
+ "format_version": {
374
+ "name": "format_version",
375
+ "type": "integer",
376
+ "primaryKey": false,
377
+ "notNull": true
378
+ },
379
+ "protocol_version": {
380
+ "name": "protocol_version",
381
+ "type": "integer",
382
+ "primaryKey": false,
383
+ "notNull": true,
384
+ "default": 1
385
+ },
386
+ "session_version": {
387
+ "name": "session_version",
388
+ "type": "integer",
389
+ "primaryKey": false,
390
+ "notNull": true,
391
+ "default": 1
392
+ },
393
+ "state_hash": {
394
+ "name": "state_hash",
395
+ "type": "text",
396
+ "primaryKey": false,
397
+ "notNull": true
398
+ },
399
+ "uploaded_by_player_id": {
400
+ "name": "uploaded_by_player_id",
401
+ "type": "text",
402
+ "primaryKey": false,
403
+ "notNull": true
404
+ },
405
+ "uploaded_at": {
406
+ "name": "uploaded_at",
407
+ "type": "timestamp with time zone",
408
+ "primaryKey": false,
409
+ "notNull": true
410
+ },
411
+ "body": {
412
+ "name": "body",
413
+ "type": "text",
414
+ "primaryKey": false,
415
+ "notNull": true
416
+ }
417
+ },
418
+ "indexes": {},
419
+ "foreignKeys": {
420
+ "snapshots_match_id_matches_id_fk": {
421
+ "name": "snapshots_match_id_matches_id_fk",
422
+ "tableFrom": "snapshots",
423
+ "tableTo": "matches",
424
+ "columnsFrom": [
425
+ "match_id"
426
+ ],
427
+ "columnsTo": [
428
+ "id"
429
+ ],
430
+ "onDelete": "cascade",
431
+ "onUpdate": "no action"
432
+ }
433
+ },
434
+ "compositePrimaryKeys": {
435
+ "snapshots_match_id_turn_pk": {
436
+ "name": "snapshots_match_id_turn_pk",
437
+ "columns": [
438
+ "match_id",
439
+ "turn"
440
+ ]
441
+ }
442
+ },
443
+ "uniqueConstraints": {},
444
+ "policies": {},
445
+ "checkConstraints": {},
446
+ "isRLSEnabled": false
447
+ },
448
+ "public.takeover_prompts": {
449
+ "name": "takeover_prompts",
450
+ "schema": "",
451
+ "columns": {
452
+ "match_id": {
453
+ "name": "match_id",
454
+ "type": "text",
455
+ "primaryKey": false,
456
+ "notNull": true
457
+ },
458
+ "player_id": {
459
+ "name": "player_id",
460
+ "type": "text",
461
+ "primaryKey": false,
462
+ "notNull": true
463
+ },
464
+ "turn": {
465
+ "name": "turn",
466
+ "type": "integer",
467
+ "primaryKey": false,
468
+ "notNull": true
469
+ },
470
+ "opened_at": {
471
+ "name": "opened_at",
472
+ "type": "timestamp with time zone",
473
+ "primaryKey": false,
474
+ "notNull": true
475
+ }
476
+ },
477
+ "indexes": {},
478
+ "foreignKeys": {
479
+ "takeover_prompts_match_id_matches_id_fk": {
480
+ "name": "takeover_prompts_match_id_matches_id_fk",
481
+ "tableFrom": "takeover_prompts",
482
+ "tableTo": "matches",
483
+ "columnsFrom": [
484
+ "match_id"
485
+ ],
486
+ "columnsTo": [
487
+ "id"
488
+ ],
489
+ "onDelete": "cascade",
490
+ "onUpdate": "no action"
491
+ }
492
+ },
493
+ "compositePrimaryKeys": {
494
+ "takeover_prompts_match_id_player_id_pk": {
495
+ "name": "takeover_prompts_match_id_player_id_pk",
496
+ "columns": [
497
+ "match_id",
498
+ "player_id"
499
+ ]
500
+ }
501
+ },
502
+ "uniqueConstraints": {},
503
+ "policies": {},
504
+ "checkConstraints": {},
505
+ "isRLSEnabled": false
506
+ },
507
+ "public.takeover_votes": {
508
+ "name": "takeover_votes",
509
+ "schema": "",
510
+ "columns": {
511
+ "match_id": {
512
+ "name": "match_id",
513
+ "type": "text",
514
+ "primaryKey": false,
515
+ "notNull": true
516
+ },
517
+ "target_player_id": {
518
+ "name": "target_player_id",
519
+ "type": "text",
520
+ "primaryKey": false,
521
+ "notNull": true
522
+ },
523
+ "voter_player_id": {
524
+ "name": "voter_player_id",
525
+ "type": "text",
526
+ "primaryKey": false,
527
+ "notNull": true
528
+ },
529
+ "decision": {
530
+ "name": "decision",
531
+ "type": "text",
532
+ "primaryKey": false,
533
+ "notNull": true
534
+ },
535
+ "cast_at": {
536
+ "name": "cast_at",
537
+ "type": "timestamp with time zone",
538
+ "primaryKey": false,
539
+ "notNull": true
540
+ }
541
+ },
542
+ "indexes": {},
543
+ "foreignKeys": {
544
+ "takeover_votes_match_id_matches_id_fk": {
545
+ "name": "takeover_votes_match_id_matches_id_fk",
546
+ "tableFrom": "takeover_votes",
547
+ "tableTo": "matches",
548
+ "columnsFrom": [
549
+ "match_id"
550
+ ],
551
+ "columnsTo": [
552
+ "id"
553
+ ],
554
+ "onDelete": "cascade",
555
+ "onUpdate": "no action"
556
+ }
557
+ },
558
+ "compositePrimaryKeys": {
559
+ "takeover_votes_match_id_target_player_id_voter_player_id_pk": {
560
+ "name": "takeover_votes_match_id_target_player_id_voter_player_id_pk",
561
+ "columns": [
562
+ "match_id",
563
+ "target_player_id",
564
+ "voter_player_id"
565
+ ]
566
+ }
567
+ },
568
+ "uniqueConstraints": {},
569
+ "policies": {},
570
+ "checkConstraints": {},
571
+ "isRLSEnabled": false
572
+ },
573
+ "public.turn_orders": {
574
+ "name": "turn_orders",
575
+ "schema": "",
576
+ "columns": {
577
+ "match_id": {
578
+ "name": "match_id",
579
+ "type": "text",
580
+ "primaryKey": false,
581
+ "notNull": true
582
+ },
583
+ "turn": {
584
+ "name": "turn",
585
+ "type": "integer",
586
+ "primaryKey": false,
587
+ "notNull": true
588
+ },
589
+ "player_id": {
590
+ "name": "player_id",
591
+ "type": "text",
592
+ "primaryKey": false,
593
+ "notNull": true
594
+ },
595
+ "orders": {
596
+ "name": "orders",
597
+ "type": "jsonb",
598
+ "primaryKey": false,
599
+ "notNull": false
600
+ },
601
+ "orders_hash": {
602
+ "name": "orders_hash",
603
+ "type": "text",
604
+ "primaryKey": false,
605
+ "notNull": false
606
+ },
607
+ "ready": {
608
+ "name": "ready",
609
+ "type": "boolean",
610
+ "primaryKey": false,
611
+ "notNull": true,
612
+ "default": false
613
+ },
614
+ "submitted_at": {
615
+ "name": "submitted_at",
616
+ "type": "timestamp with time zone",
617
+ "primaryKey": false,
618
+ "notNull": false
619
+ }
620
+ },
621
+ "indexes": {},
622
+ "foreignKeys": {
623
+ "turn_orders_match_id_matches_id_fk": {
624
+ "name": "turn_orders_match_id_matches_id_fk",
625
+ "tableFrom": "turn_orders",
626
+ "tableTo": "matches",
627
+ "columnsFrom": [
628
+ "match_id"
629
+ ],
630
+ "columnsTo": [
631
+ "id"
632
+ ],
633
+ "onDelete": "cascade",
634
+ "onUpdate": "no action"
635
+ }
636
+ },
637
+ "compositePrimaryKeys": {
638
+ "turn_orders_match_id_turn_player_id_pk": {
639
+ "name": "turn_orders_match_id_turn_player_id_pk",
640
+ "columns": [
641
+ "match_id",
642
+ "turn",
643
+ "player_id"
644
+ ]
645
+ }
646
+ },
647
+ "uniqueConstraints": {},
648
+ "policies": {},
649
+ "checkConstraints": {},
650
+ "isRLSEnabled": false
651
+ },
652
+ "public.turn_reports": {
653
+ "name": "turn_reports",
654
+ "schema": "",
655
+ "columns": {
656
+ "match_id": {
657
+ "name": "match_id",
658
+ "type": "text",
659
+ "primaryKey": false,
660
+ "notNull": true
661
+ },
662
+ "turn": {
663
+ "name": "turn",
664
+ "type": "integer",
665
+ "primaryKey": false,
666
+ "notNull": true
667
+ },
668
+ "player_id": {
669
+ "name": "player_id",
670
+ "type": "text",
671
+ "primaryKey": false,
672
+ "notNull": true
673
+ },
674
+ "state_hash": {
675
+ "name": "state_hash",
676
+ "type": "text",
677
+ "primaryKey": false,
678
+ "notNull": true
679
+ },
680
+ "finished": {
681
+ "name": "finished",
682
+ "type": "boolean",
683
+ "primaryKey": false,
684
+ "notNull": true,
685
+ "default": false
686
+ },
687
+ "reported_at": {
688
+ "name": "reported_at",
689
+ "type": "timestamp with time zone",
690
+ "primaryKey": false,
691
+ "notNull": true
692
+ }
693
+ },
694
+ "indexes": {},
695
+ "foreignKeys": {
696
+ "turn_reports_match_id_matches_id_fk": {
697
+ "name": "turn_reports_match_id_matches_id_fk",
698
+ "tableFrom": "turn_reports",
699
+ "tableTo": "matches",
700
+ "columnsFrom": [
701
+ "match_id"
702
+ ],
703
+ "columnsTo": [
704
+ "id"
705
+ ],
706
+ "onDelete": "cascade",
707
+ "onUpdate": "no action"
708
+ }
709
+ },
710
+ "compositePrimaryKeys": {
711
+ "turn_reports_match_id_turn_player_id_pk": {
712
+ "name": "turn_reports_match_id_turn_player_id_pk",
713
+ "columns": [
714
+ "match_id",
715
+ "turn",
716
+ "player_id"
717
+ ]
718
+ }
719
+ },
720
+ "uniqueConstraints": {},
721
+ "policies": {},
722
+ "checkConstraints": {},
723
+ "isRLSEnabled": false
724
+ },
725
+ "public.turns": {
726
+ "name": "turns",
727
+ "schema": "",
728
+ "columns": {
729
+ "match_id": {
730
+ "name": "match_id",
731
+ "type": "text",
732
+ "primaryKey": false,
733
+ "notNull": true
734
+ },
735
+ "number": {
736
+ "name": "number",
737
+ "type": "integer",
738
+ "primaryKey": false,
739
+ "notNull": true
740
+ },
741
+ "status": {
742
+ "name": "status",
743
+ "type": "text",
744
+ "primaryKey": false,
745
+ "notNull": true
746
+ },
747
+ "opened_at": {
748
+ "name": "opened_at",
749
+ "type": "timestamp with time zone",
750
+ "primaryKey": false,
751
+ "notNull": true
752
+ },
753
+ "deadline_at": {
754
+ "name": "deadline_at",
755
+ "type": "timestamp with time zone",
756
+ "primaryKey": false,
757
+ "notNull": false
758
+ },
759
+ "sealed_at": {
760
+ "name": "sealed_at",
761
+ "type": "timestamp with time zone",
762
+ "primaryKey": false,
763
+ "notNull": false
764
+ },
765
+ "order_set_hash": {
766
+ "name": "order_set_hash",
767
+ "type": "text",
768
+ "primaryKey": false,
769
+ "notNull": false
770
+ },
771
+ "sealed_slots": {
772
+ "name": "sealed_slots",
773
+ "type": "jsonb",
774
+ "primaryKey": false,
775
+ "notNull": false
776
+ },
777
+ "state_hash": {
778
+ "name": "state_hash",
779
+ "type": "text",
780
+ "primaryKey": false,
781
+ "notNull": false
782
+ },
783
+ "desynced_at": {
784
+ "name": "desynced_at",
785
+ "type": "timestamp with time zone",
786
+ "primaryKey": false,
787
+ "notNull": false
788
+ }
789
+ },
790
+ "indexes": {
791
+ "turns_deadline_idx": {
792
+ "name": "turns_deadline_idx",
793
+ "columns": [
794
+ {
795
+ "expression": "status",
796
+ "isExpression": false,
797
+ "asc": true,
798
+ "nulls": "last"
799
+ },
800
+ {
801
+ "expression": "deadline_at",
802
+ "isExpression": false,
803
+ "asc": true,
804
+ "nulls": "last"
805
+ }
806
+ ],
807
+ "isUnique": false,
808
+ "concurrently": false,
809
+ "method": "btree",
810
+ "with": {}
811
+ }
812
+ },
813
+ "foreignKeys": {
814
+ "turns_match_id_matches_id_fk": {
815
+ "name": "turns_match_id_matches_id_fk",
816
+ "tableFrom": "turns",
817
+ "tableTo": "matches",
818
+ "columnsFrom": [
819
+ "match_id"
820
+ ],
821
+ "columnsTo": [
822
+ "id"
823
+ ],
824
+ "onDelete": "cascade",
825
+ "onUpdate": "no action"
826
+ }
827
+ },
828
+ "compositePrimaryKeys": {
829
+ "turns_match_id_number_pk": {
830
+ "name": "turns_match_id_number_pk",
831
+ "columns": [
832
+ "match_id",
833
+ "number"
834
+ ]
835
+ }
836
+ },
837
+ "uniqueConstraints": {},
838
+ "policies": {},
839
+ "checkConstraints": {},
840
+ "isRLSEnabled": false
841
+ }
842
+ },
843
+ "enums": {},
844
+ "schemas": {},
845
+ "sequences": {},
846
+ "roles": {},
847
+ "policies": {},
848
+ "views": {},
849
+ "_meta": {
850
+ "columns": {},
851
+ "schemas": {},
852
+ "tables": {}
853
+ }
854
+ }