dzql 0.6.3 → 0.6.6

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 (41) hide show
  1. package/README.md +33 -0
  2. package/docs/for_ai.md +14 -18
  3. package/docs/project-setup.md +15 -14
  4. package/package.json +28 -6
  5. package/src/cli/codegen/client.ts +5 -6
  6. package/src/cli/codegen/subscribable_store.ts +5 -5
  7. package/src/runtime/ws.ts +16 -15
  8. package/.env.sample +0 -28
  9. package/compose.yml +0 -28
  10. package/dist/client/index.ts +0 -1
  11. package/dist/client/stores/useMyProfileStore.ts +0 -114
  12. package/dist/client/stores/useOrgDashboardStore.ts +0 -131
  13. package/dist/client/stores/useVenueDetailStore.ts +0 -117
  14. package/dist/client/ws.ts +0 -716
  15. package/dist/db/migrations/000_core.sql +0 -92
  16. package/dist/db/migrations/20260101T235039268Z_schema.sql +0 -3020
  17. package/dist/db/migrations/20260101T235039268Z_subscribables.sql +0 -371
  18. package/dist/runtime/manifest.json +0 -1562
  19. package/examples/blog.ts +0 -50
  20. package/examples/invalid.ts +0 -18
  21. package/examples/venues.js +0 -485
  22. package/tests/client.test.ts +0 -38
  23. package/tests/codegen.test.ts +0 -71
  24. package/tests/compiler.test.ts +0 -45
  25. package/tests/graph_rules.test.ts +0 -173
  26. package/tests/integration/db.test.ts +0 -174
  27. package/tests/integration/e2e.test.ts +0 -65
  28. package/tests/integration/features.test.ts +0 -922
  29. package/tests/integration/full_stack.test.ts +0 -262
  30. package/tests/integration/setup.ts +0 -45
  31. package/tests/ir.test.ts +0 -32
  32. package/tests/namespace.test.ts +0 -395
  33. package/tests/permissions.test.ts +0 -55
  34. package/tests/pinia.test.ts +0 -48
  35. package/tests/realtime.test.ts +0 -22
  36. package/tests/runtime.test.ts +0 -80
  37. package/tests/subscribable_gen.test.ts +0 -72
  38. package/tests/subscribable_reactivity.test.ts +0 -258
  39. package/tests/venues_gen.test.ts +0 -25
  40. package/tsconfig.json +0 -20
  41. package/tsconfig.tsbuildinfo +0 -1
@@ -1,1562 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "functions": {
4
- "login_user": {
5
- "schema": "dzql_v2",
6
- "name": "login_user",
7
- "args": [
8
- "p_params"
9
- ],
10
- "returnType": "jsonb"
11
- },
12
- "register_user": {
13
- "schema": "dzql_v2",
14
- "name": "register_user",
15
- "args": [
16
- "p_params"
17
- ],
18
- "returnType": "jsonb"
19
- },
20
- "get_users": {
21
- "schema": "dzql_v2",
22
- "name": "get_users",
23
- "args": [
24
- "p_user_id",
25
- "p_pk"
26
- ],
27
- "returnType": "jsonb"
28
- },
29
- "save_users": {
30
- "schema": "dzql_v2",
31
- "name": "save_users",
32
- "args": [
33
- "p_user_id",
34
- "p_data"
35
- ],
36
- "returnType": "jsonb"
37
- },
38
- "delete_users": {
39
- "schema": "dzql_v2",
40
- "name": "delete_users",
41
- "args": [
42
- "p_user_id",
43
- "p_pk"
44
- ],
45
- "returnType": "jsonb"
46
- },
47
- "search_users": {
48
- "schema": "dzql_v2",
49
- "name": "search_users",
50
- "args": [
51
- "p_user_id",
52
- "p_query"
53
- ],
54
- "returnType": "jsonb"
55
- },
56
- "lookup_users": {
57
- "schema": "dzql_v2",
58
- "name": "lookup_users",
59
- "args": [
60
- "p_user_id",
61
- "p_query"
62
- ],
63
- "returnType": "jsonb"
64
- },
65
- "get_organisations": {
66
- "schema": "dzql_v2",
67
- "name": "get_organisations",
68
- "args": [
69
- "p_user_id",
70
- "p_pk"
71
- ],
72
- "returnType": "jsonb"
73
- },
74
- "save_organisations": {
75
- "schema": "dzql_v2",
76
- "name": "save_organisations",
77
- "args": [
78
- "p_user_id",
79
- "p_data"
80
- ],
81
- "returnType": "jsonb"
82
- },
83
- "delete_organisations": {
84
- "schema": "dzql_v2",
85
- "name": "delete_organisations",
86
- "args": [
87
- "p_user_id",
88
- "p_pk"
89
- ],
90
- "returnType": "jsonb"
91
- },
92
- "search_organisations": {
93
- "schema": "dzql_v2",
94
- "name": "search_organisations",
95
- "args": [
96
- "p_user_id",
97
- "p_query"
98
- ],
99
- "returnType": "jsonb"
100
- },
101
- "lookup_organisations": {
102
- "schema": "dzql_v2",
103
- "name": "lookup_organisations",
104
- "args": [
105
- "p_user_id",
106
- "p_query"
107
- ],
108
- "returnType": "jsonb"
109
- },
110
- "get_acts_for": {
111
- "schema": "dzql_v2",
112
- "name": "get_acts_for",
113
- "args": [
114
- "p_user_id",
115
- "p_pk"
116
- ],
117
- "returnType": "jsonb"
118
- },
119
- "save_acts_for": {
120
- "schema": "dzql_v2",
121
- "name": "save_acts_for",
122
- "args": [
123
- "p_user_id",
124
- "p_data"
125
- ],
126
- "returnType": "jsonb"
127
- },
128
- "delete_acts_for": {
129
- "schema": "dzql_v2",
130
- "name": "delete_acts_for",
131
- "args": [
132
- "p_user_id",
133
- "p_pk"
134
- ],
135
- "returnType": "jsonb"
136
- },
137
- "search_acts_for": {
138
- "schema": "dzql_v2",
139
- "name": "search_acts_for",
140
- "args": [
141
- "p_user_id",
142
- "p_query"
143
- ],
144
- "returnType": "jsonb"
145
- },
146
- "lookup_acts_for": {
147
- "schema": "dzql_v2",
148
- "name": "lookup_acts_for",
149
- "args": [
150
- "p_user_id",
151
- "p_query"
152
- ],
153
- "returnType": "jsonb"
154
- },
155
- "get_venues": {
156
- "schema": "dzql_v2",
157
- "name": "get_venues",
158
- "args": [
159
- "p_user_id",
160
- "p_pk"
161
- ],
162
- "returnType": "jsonb"
163
- },
164
- "save_venues": {
165
- "schema": "dzql_v2",
166
- "name": "save_venues",
167
- "args": [
168
- "p_user_id",
169
- "p_data"
170
- ],
171
- "returnType": "jsonb"
172
- },
173
- "delete_venues": {
174
- "schema": "dzql_v2",
175
- "name": "delete_venues",
176
- "args": [
177
- "p_user_id",
178
- "p_pk"
179
- ],
180
- "returnType": "jsonb"
181
- },
182
- "search_venues": {
183
- "schema": "dzql_v2",
184
- "name": "search_venues",
185
- "args": [
186
- "p_user_id",
187
- "p_query"
188
- ],
189
- "returnType": "jsonb"
190
- },
191
- "lookup_venues": {
192
- "schema": "dzql_v2",
193
- "name": "lookup_venues",
194
- "args": [
195
- "p_user_id",
196
- "p_query"
197
- ],
198
- "returnType": "jsonb"
199
- },
200
- "get_sites": {
201
- "schema": "dzql_v2",
202
- "name": "get_sites",
203
- "args": [
204
- "p_user_id",
205
- "p_pk"
206
- ],
207
- "returnType": "jsonb"
208
- },
209
- "save_sites": {
210
- "schema": "dzql_v2",
211
- "name": "save_sites",
212
- "args": [
213
- "p_user_id",
214
- "p_data"
215
- ],
216
- "returnType": "jsonb"
217
- },
218
- "delete_sites": {
219
- "schema": "dzql_v2",
220
- "name": "delete_sites",
221
- "args": [
222
- "p_user_id",
223
- "p_pk"
224
- ],
225
- "returnType": "jsonb"
226
- },
227
- "search_sites": {
228
- "schema": "dzql_v2",
229
- "name": "search_sites",
230
- "args": [
231
- "p_user_id",
232
- "p_query"
233
- ],
234
- "returnType": "jsonb"
235
- },
236
- "lookup_sites": {
237
- "schema": "dzql_v2",
238
- "name": "lookup_sites",
239
- "args": [
240
- "p_user_id",
241
- "p_query"
242
- ],
243
- "returnType": "jsonb"
244
- },
245
- "get_products": {
246
- "schema": "dzql_v2",
247
- "name": "get_products",
248
- "args": [
249
- "p_user_id",
250
- "p_pk"
251
- ],
252
- "returnType": "jsonb"
253
- },
254
- "save_products": {
255
- "schema": "dzql_v2",
256
- "name": "save_products",
257
- "args": [
258
- "p_user_id",
259
- "p_data"
260
- ],
261
- "returnType": "jsonb"
262
- },
263
- "delete_products": {
264
- "schema": "dzql_v2",
265
- "name": "delete_products",
266
- "args": [
267
- "p_user_id",
268
- "p_pk"
269
- ],
270
- "returnType": "jsonb"
271
- },
272
- "search_products": {
273
- "schema": "dzql_v2",
274
- "name": "search_products",
275
- "args": [
276
- "p_user_id",
277
- "p_query"
278
- ],
279
- "returnType": "jsonb"
280
- },
281
- "lookup_products": {
282
- "schema": "dzql_v2",
283
- "name": "lookup_products",
284
- "args": [
285
- "p_user_id",
286
- "p_query"
287
- ],
288
- "returnType": "jsonb"
289
- },
290
- "get_packages": {
291
- "schema": "dzql_v2",
292
- "name": "get_packages",
293
- "args": [
294
- "p_user_id",
295
- "p_pk"
296
- ],
297
- "returnType": "jsonb"
298
- },
299
- "save_packages": {
300
- "schema": "dzql_v2",
301
- "name": "save_packages",
302
- "args": [
303
- "p_user_id",
304
- "p_data"
305
- ],
306
- "returnType": "jsonb"
307
- },
308
- "delete_packages": {
309
- "schema": "dzql_v2",
310
- "name": "delete_packages",
311
- "args": [
312
- "p_user_id",
313
- "p_pk"
314
- ],
315
- "returnType": "jsonb"
316
- },
317
- "search_packages": {
318
- "schema": "dzql_v2",
319
- "name": "search_packages",
320
- "args": [
321
- "p_user_id",
322
- "p_query"
323
- ],
324
- "returnType": "jsonb"
325
- },
326
- "lookup_packages": {
327
- "schema": "dzql_v2",
328
- "name": "lookup_packages",
329
- "args": [
330
- "p_user_id",
331
- "p_query"
332
- ],
333
- "returnType": "jsonb"
334
- },
335
- "get_allocations": {
336
- "schema": "dzql_v2",
337
- "name": "get_allocations",
338
- "args": [
339
- "p_user_id",
340
- "p_pk"
341
- ],
342
- "returnType": "jsonb"
343
- },
344
- "save_allocations": {
345
- "schema": "dzql_v2",
346
- "name": "save_allocations",
347
- "args": [
348
- "p_user_id",
349
- "p_data"
350
- ],
351
- "returnType": "jsonb"
352
- },
353
- "delete_allocations": {
354
- "schema": "dzql_v2",
355
- "name": "delete_allocations",
356
- "args": [
357
- "p_user_id",
358
- "p_pk"
359
- ],
360
- "returnType": "jsonb"
361
- },
362
- "search_allocations": {
363
- "schema": "dzql_v2",
364
- "name": "search_allocations",
365
- "args": [
366
- "p_user_id",
367
- "p_query"
368
- ],
369
- "returnType": "jsonb"
370
- },
371
- "lookup_allocations": {
372
- "schema": "dzql_v2",
373
- "name": "lookup_allocations",
374
- "args": [
375
- "p_user_id",
376
- "p_query"
377
- ],
378
- "returnType": "jsonb"
379
- },
380
- "get_contractor_rights": {
381
- "schema": "dzql_v2",
382
- "name": "get_contractor_rights",
383
- "args": [
384
- "p_user_id",
385
- "p_pk"
386
- ],
387
- "returnType": "jsonb"
388
- },
389
- "save_contractor_rights": {
390
- "schema": "dzql_v2",
391
- "name": "save_contractor_rights",
392
- "args": [
393
- "p_user_id",
394
- "p_data"
395
- ],
396
- "returnType": "jsonb"
397
- },
398
- "delete_contractor_rights": {
399
- "schema": "dzql_v2",
400
- "name": "delete_contractor_rights",
401
- "args": [
402
- "p_user_id",
403
- "p_pk"
404
- ],
405
- "returnType": "jsonb"
406
- },
407
- "search_contractor_rights": {
408
- "schema": "dzql_v2",
409
- "name": "search_contractor_rights",
410
- "args": [
411
- "p_user_id",
412
- "p_query"
413
- ],
414
- "returnType": "jsonb"
415
- },
416
- "lookup_contractor_rights": {
417
- "schema": "dzql_v2",
418
- "name": "lookup_contractor_rights",
419
- "args": [
420
- "p_user_id",
421
- "p_query"
422
- ],
423
- "returnType": "jsonb"
424
- },
425
- "get_brands": {
426
- "schema": "dzql_v2",
427
- "name": "get_brands",
428
- "args": [
429
- "p_user_id",
430
- "p_pk"
431
- ],
432
- "returnType": "jsonb"
433
- },
434
- "save_brands": {
435
- "schema": "dzql_v2",
436
- "name": "save_brands",
437
- "args": [
438
- "p_user_id",
439
- "p_data"
440
- ],
441
- "returnType": "jsonb"
442
- },
443
- "delete_brands": {
444
- "schema": "dzql_v2",
445
- "name": "delete_brands",
446
- "args": [
447
- "p_user_id",
448
- "p_pk"
449
- ],
450
- "returnType": "jsonb"
451
- },
452
- "search_brands": {
453
- "schema": "dzql_v2",
454
- "name": "search_brands",
455
- "args": [
456
- "p_user_id",
457
- "p_query"
458
- ],
459
- "returnType": "jsonb"
460
- },
461
- "lookup_brands": {
462
- "schema": "dzql_v2",
463
- "name": "lookup_brands",
464
- "args": [
465
- "p_user_id",
466
- "p_query"
467
- ],
468
- "returnType": "jsonb"
469
- },
470
- "get_artwork": {
471
- "schema": "dzql_v2",
472
- "name": "get_artwork",
473
- "args": [
474
- "p_user_id",
475
- "p_pk"
476
- ],
477
- "returnType": "jsonb"
478
- },
479
- "save_artwork": {
480
- "schema": "dzql_v2",
481
- "name": "save_artwork",
482
- "args": [
483
- "p_user_id",
484
- "p_data"
485
- ],
486
- "returnType": "jsonb"
487
- },
488
- "delete_artwork": {
489
- "schema": "dzql_v2",
490
- "name": "delete_artwork",
491
- "args": [
492
- "p_user_id",
493
- "p_pk"
494
- ],
495
- "returnType": "jsonb"
496
- },
497
- "search_artwork": {
498
- "schema": "dzql_v2",
499
- "name": "search_artwork",
500
- "args": [
501
- "p_user_id",
502
- "p_query"
503
- ],
504
- "returnType": "jsonb"
505
- },
506
- "lookup_artwork": {
507
- "schema": "dzql_v2",
508
- "name": "lookup_artwork",
509
- "args": [
510
- "p_user_id",
511
- "p_query"
512
- ],
513
- "returnType": "jsonb"
514
- },
515
- "get_tags": {
516
- "schema": "dzql_v2",
517
- "name": "get_tags",
518
- "args": [
519
- "p_user_id",
520
- "p_pk"
521
- ],
522
- "returnType": "jsonb"
523
- },
524
- "save_tags": {
525
- "schema": "dzql_v2",
526
- "name": "save_tags",
527
- "args": [
528
- "p_user_id",
529
- "p_data"
530
- ],
531
- "returnType": "jsonb"
532
- },
533
- "delete_tags": {
534
- "schema": "dzql_v2",
535
- "name": "delete_tags",
536
- "args": [
537
- "p_user_id",
538
- "p_pk"
539
- ],
540
- "returnType": "jsonb"
541
- },
542
- "search_tags": {
543
- "schema": "dzql_v2",
544
- "name": "search_tags",
545
- "args": [
546
- "p_user_id",
547
- "p_query"
548
- ],
549
- "returnType": "jsonb"
550
- },
551
- "lookup_tags": {
552
- "schema": "dzql_v2",
553
- "name": "lookup_tags",
554
- "args": [
555
- "p_user_id",
556
- "p_query"
557
- ],
558
- "returnType": "jsonb"
559
- },
560
- "get_venue_detail": {
561
- "schema": "dzql_v2",
562
- "name": "get_venue_detail",
563
- "args": [
564
- "p_params",
565
- "p_user_id"
566
- ],
567
- "returnType": "jsonb"
568
- },
569
- "venue_detail_can_subscribe": {
570
- "schema": "dzql_v2",
571
- "name": "venue_detail_can_subscribe",
572
- "args": [
573
- "p_user_id",
574
- "p_params"
575
- ],
576
- "returnType": "boolean"
577
- },
578
- "subscribe_venue_detail": {
579
- "schema": "dzql_v2",
580
- "name": "subscribe_venue_detail",
581
- "args": [
582
- "p_params"
583
- ],
584
- "returnType": "jsonb",
585
- "isSubscription": true
586
- },
587
- "get_org_dashboard": {
588
- "schema": "dzql_v2",
589
- "name": "get_org_dashboard",
590
- "args": [
591
- "p_params",
592
- "p_user_id"
593
- ],
594
- "returnType": "jsonb"
595
- },
596
- "org_dashboard_can_subscribe": {
597
- "schema": "dzql_v2",
598
- "name": "org_dashboard_can_subscribe",
599
- "args": [
600
- "p_user_id",
601
- "p_params"
602
- ],
603
- "returnType": "boolean"
604
- },
605
- "subscribe_org_dashboard": {
606
- "schema": "dzql_v2",
607
- "name": "subscribe_org_dashboard",
608
- "args": [
609
- "p_params"
610
- ],
611
- "returnType": "jsonb",
612
- "isSubscription": true
613
- },
614
- "get_my_profile": {
615
- "schema": "dzql_v2",
616
- "name": "get_my_profile",
617
- "args": [
618
- "p_params",
619
- "p_user_id"
620
- ],
621
- "returnType": "jsonb"
622
- },
623
- "my_profile_can_subscribe": {
624
- "schema": "dzql_v2",
625
- "name": "my_profile_can_subscribe",
626
- "args": [
627
- "p_user_id",
628
- "p_params"
629
- ],
630
- "returnType": "boolean"
631
- },
632
- "subscribe_my_profile": {
633
- "schema": "dzql_v2",
634
- "name": "subscribe_my_profile",
635
- "args": [
636
- "p_params"
637
- ],
638
- "returnType": "jsonb",
639
- "isSubscription": true
640
- }
641
- },
642
- "entities": {
643
- "users": {
644
- "name": "users",
645
- "table": "users",
646
- "primaryKey": [
647
- "id"
648
- ],
649
- "columns": [
650
- {
651
- "name": "id",
652
- "type": "serial PRIMARY KEY",
653
- "isArray": false
654
- },
655
- {
656
- "name": "name",
657
- "type": "text NOT NULL",
658
- "isArray": false
659
- },
660
- {
661
- "name": "email",
662
- "type": "text UNIQUE NOT NULL",
663
- "isArray": false
664
- },
665
- {
666
- "name": "password_hash",
667
- "type": "text NOT NULL",
668
- "isArray": false
669
- },
670
- {
671
- "name": "created_at",
672
- "type": "timestamptz DEFAULT now()",
673
- "isArray": false
674
- }
675
- ],
676
- "labelField": "name",
677
- "softDelete": false,
678
- "managed": true,
679
- "hidden": [
680
- "password_hash"
681
- ],
682
- "fieldDefaults": {},
683
- "permissions": {
684
- "view": [],
685
- "create": [],
686
- "update": [
687
- "@id"
688
- ],
689
- "delete": [
690
- "@id"
691
- ]
692
- },
693
- "relationships": {},
694
- "manyToMany": {},
695
- "graphRules": {
696
- "onCreate": [],
697
- "onUpdate": [],
698
- "onDelete": []
699
- }
700
- },
701
- "organisations": {
702
- "name": "organisations",
703
- "table": "organisations",
704
- "primaryKey": [
705
- "id"
706
- ],
707
- "columns": [
708
- {
709
- "name": "id",
710
- "type": "serial PRIMARY KEY",
711
- "isArray": false
712
- },
713
- {
714
- "name": "name",
715
- "type": "text UNIQUE NOT NULL",
716
- "isArray": false
717
- },
718
- {
719
- "name": "description",
720
- "type": "text",
721
- "isArray": false
722
- }
723
- ],
724
- "labelField": "name",
725
- "softDelete": false,
726
- "managed": true,
727
- "hidden": [],
728
- "fieldDefaults": {},
729
- "permissions": {
730
- "view": [],
731
- "create": [],
732
- "update": [
733
- "@id->acts_for[org_id=$]{active}.user_id"
734
- ],
735
- "delete": [
736
- "@id->acts_for[org_id=$]{active}.user_id"
737
- ]
738
- },
739
- "relationships": {},
740
- "manyToMany": {},
741
- "graphRules": {
742
- "onCreate": [
743
- {
744
- "trigger": "create",
745
- "action": "create",
746
- "target": "acts_for",
747
- "ruleName": "establish_ownership",
748
- "description": "Creator becomes owner",
749
- "params": {
750
- "user_id": "@user_id",
751
- "org_id": "@id",
752
- "valid_from": "@today"
753
- }
754
- }
755
- ],
756
- "onUpdate": [],
757
- "onDelete": [
758
- {
759
- "trigger": "delete",
760
- "action": "delete",
761
- "target": "acts_for",
762
- "ruleName": "cleanup_relationships",
763
- "description": "Cascading delete for related entities",
764
- "params": {
765
- "org_id": "@id"
766
- }
767
- },
768
- {
769
- "trigger": "delete",
770
- "action": "delete",
771
- "target": "venues",
772
- "ruleName": "cleanup_relationships",
773
- "description": "Cascading delete for related entities",
774
- "params": {
775
- "org_id": "@id"
776
- }
777
- },
778
- {
779
- "trigger": "delete",
780
- "action": "update",
781
- "target": "packages",
782
- "ruleName": "cleanup_relationships",
783
- "description": "Cascading delete for related entities",
784
- "params": {
785
- "sponsor_org_id": "@id"
786
- }
787
- }
788
- ]
789
- }
790
- },
791
- "acts_for": {
792
- "name": "acts_for",
793
- "table": "acts_for",
794
- "primaryKey": [
795
- "user_id",
796
- "org_id",
797
- "valid_from"
798
- ],
799
- "columns": [
800
- {
801
- "name": "user_id",
802
- "type": "int NOT NULL REFERENCES users(id)",
803
- "isArray": false
804
- },
805
- {
806
- "name": "org_id",
807
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
808
- "isArray": false
809
- },
810
- {
811
- "name": "valid_from",
812
- "type": "date NOT NULL DEFAULT current_date",
813
- "isArray": false
814
- },
815
- {
816
- "name": "valid_to",
817
- "type": "date",
818
- "isArray": false
819
- },
820
- {
821
- "name": "active",
822
- "type": "boolean DEFAULT true",
823
- "isArray": false
824
- }
825
- ],
826
- "labelField": "org_id",
827
- "softDelete": false,
828
- "managed": true,
829
- "hidden": [],
830
- "fieldDefaults": {},
831
- "permissions": {
832
- "view": [],
833
- "create": [],
834
- "update": [],
835
- "delete": []
836
- },
837
- "relationships": {},
838
- "manyToMany": {},
839
- "graphRules": {
840
- "onCreate": [],
841
- "onUpdate": [],
842
- "onDelete": []
843
- }
844
- },
845
- "venues": {
846
- "name": "venues",
847
- "table": "venues",
848
- "primaryKey": [
849
- "id"
850
- ],
851
- "columns": [
852
- {
853
- "name": "id",
854
- "type": "serial PRIMARY KEY",
855
- "isArray": false
856
- },
857
- {
858
- "name": "org_id",
859
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
860
- "isArray": false
861
- },
862
- {
863
- "name": "name",
864
- "type": "text UNIQUE NOT NULL",
865
- "isArray": false
866
- },
867
- {
868
- "name": "address",
869
- "type": "text NOT NULL",
870
- "isArray": false
871
- },
872
- {
873
- "name": "description",
874
- "type": "text",
875
- "isArray": false
876
- }
877
- ],
878
- "labelField": "name",
879
- "softDelete": false,
880
- "managed": true,
881
- "hidden": [],
882
- "fieldDefaults": {},
883
- "permissions": {
884
- "view": [],
885
- "create": [
886
- "@org_id->acts_for[org_id=$]{active}.user_id"
887
- ],
888
- "update": [
889
- "@org_id->acts_for[org_id=$]{active}.user_id"
890
- ],
891
- "delete": [
892
- "@org_id->acts_for[org_id=$]{active}.user_id"
893
- ]
894
- },
895
- "relationships": {},
896
- "manyToMany": {},
897
- "graphRules": {
898
- "onCreate": [],
899
- "onUpdate": [],
900
- "onDelete": []
901
- }
902
- },
903
- "sites": {
904
- "name": "sites",
905
- "table": "sites",
906
- "primaryKey": [
907
- "id"
908
- ],
909
- "columns": [
910
- {
911
- "name": "id",
912
- "type": "serial PRIMARY KEY",
913
- "isArray": false
914
- },
915
- {
916
- "name": "venue_id",
917
- "type": "int NOT NULL REFERENCES venues(id)",
918
- "isArray": false
919
- },
920
- {
921
- "name": "name",
922
- "type": "text NOT NULL",
923
- "isArray": false
924
- },
925
- {
926
- "name": "description",
927
- "type": "text",
928
- "isArray": false
929
- }
930
- ],
931
- "labelField": "name",
932
- "softDelete": false,
933
- "managed": true,
934
- "hidden": [],
935
- "fieldDefaults": {},
936
- "permissions": {
937
- "view": [],
938
- "create": [
939
- "@venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
940
- ],
941
- "update": [
942
- "@venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
943
- ],
944
- "delete": [
945
- "@venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
946
- ]
947
- },
948
- "relationships": {},
949
- "manyToMany": {},
950
- "graphRules": {
951
- "onCreate": [],
952
- "onUpdate": [],
953
- "onDelete": []
954
- }
955
- },
956
- "products": {
957
- "name": "products",
958
- "table": "products",
959
- "primaryKey": [
960
- "id"
961
- ],
962
- "columns": [
963
- {
964
- "name": "id",
965
- "type": "serial PRIMARY KEY",
966
- "isArray": false
967
- },
968
- {
969
- "name": "org_id",
970
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
971
- "isArray": false
972
- },
973
- {
974
- "name": "name",
975
- "type": "text UNIQUE NOT NULL",
976
- "isArray": false
977
- },
978
- {
979
- "name": "description",
980
- "type": "text",
981
- "isArray": false
982
- },
983
- {
984
- "name": "price",
985
- "type": "decimal(10, 2) NOT NULL DEFAULT 0.00",
986
- "isArray": false
987
- },
988
- {
989
- "name": "created_by",
990
- "type": "int REFERENCES users(id)",
991
- "isArray": false
992
- },
993
- {
994
- "name": "created_at",
995
- "type": "timestamptz",
996
- "isArray": false
997
- },
998
- {
999
- "name": "deleted_at",
1000
- "type": "timestamptz",
1001
- "isArray": false
1002
- }
1003
- ],
1004
- "labelField": "name",
1005
- "softDelete": true,
1006
- "managed": true,
1007
- "hidden": [],
1008
- "fieldDefaults": {
1009
- "created_by": "@user_id",
1010
- "created_at": "@now"
1011
- },
1012
- "permissions": {
1013
- "view": [],
1014
- "create": [
1015
- "@org_id->acts_for[org_id=$]{active}.user_id"
1016
- ],
1017
- "update": [
1018
- "@org_id->acts_for[org_id=$]{active}.user_id"
1019
- ],
1020
- "delete": [
1021
- "@org_id->acts_for[org_id=$]{active}.user_id"
1022
- ]
1023
- },
1024
- "relationships": {},
1025
- "manyToMany": {},
1026
- "graphRules": {
1027
- "onCreate": [],
1028
- "onUpdate": [],
1029
- "onDelete": []
1030
- }
1031
- },
1032
- "packages": {
1033
- "name": "packages",
1034
- "table": "packages",
1035
- "primaryKey": [
1036
- "id"
1037
- ],
1038
- "columns": [
1039
- {
1040
- "name": "id",
1041
- "type": "serial PRIMARY KEY",
1042
- "isArray": false
1043
- },
1044
- {
1045
- "name": "owner_org_id",
1046
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
1047
- "isArray": false
1048
- },
1049
- {
1050
- "name": "sponsor_org_id",
1051
- "type": "int REFERENCES organisations(id) ON DELETE SET NULL",
1052
- "isArray": false
1053
- },
1054
- {
1055
- "name": "name",
1056
- "type": "text NOT NULL",
1057
- "isArray": false
1058
- },
1059
- {
1060
- "name": "price",
1061
- "type": "decimal(10, 2) NOT NULL DEFAULT 0.00",
1062
- "isArray": false
1063
- },
1064
- {
1065
- "name": "status",
1066
- "type": "text NOT NULL DEFAULT 'draft'",
1067
- "isArray": false
1068
- }
1069
- ],
1070
- "labelField": "name",
1071
- "softDelete": false,
1072
- "managed": true,
1073
- "hidden": [],
1074
- "fieldDefaults": {},
1075
- "permissions": {
1076
- "view": [
1077
- "@owner_org_id->acts_for[org_id=$]{active}.user_id",
1078
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1079
- ],
1080
- "create": [
1081
- "@owner_org_id->acts_for[org_id=$]{active}.user_id",
1082
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1083
- ],
1084
- "update": [
1085
- "@owner_org_id->acts_for[org_id=$]{active}.user_id",
1086
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1087
- ],
1088
- "delete": [
1089
- "@owner_org_id->acts_for[org_id=$]{active}.user_id"
1090
- ]
1091
- },
1092
- "relationships": {},
1093
- "manyToMany": {},
1094
- "graphRules": {
1095
- "onCreate": [],
1096
- "onUpdate": [],
1097
- "onDelete": []
1098
- }
1099
- },
1100
- "allocations": {
1101
- "name": "allocations",
1102
- "table": "allocations",
1103
- "primaryKey": [
1104
- "id"
1105
- ],
1106
- "columns": [
1107
- {
1108
- "name": "id",
1109
- "type": "serial PRIMARY KEY",
1110
- "isArray": false
1111
- },
1112
- {
1113
- "name": "package_id",
1114
- "type": "int NOT NULL REFERENCES packages(id)",
1115
- "isArray": false
1116
- },
1117
- {
1118
- "name": "site_id",
1119
- "type": "int NOT NULL REFERENCES sites(id)",
1120
- "isArray": false
1121
- },
1122
- {
1123
- "name": "from_date",
1124
- "type": "date NOT NULL",
1125
- "isArray": false
1126
- },
1127
- {
1128
- "name": "to_date",
1129
- "type": "date NOT NULL",
1130
- "isArray": false
1131
- }
1132
- ],
1133
- "labelField": "id",
1134
- "softDelete": false,
1135
- "managed": true,
1136
- "hidden": [],
1137
- "fieldDefaults": {},
1138
- "permissions": {
1139
- "view": [
1140
- "@site_id->sites.venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id",
1141
- "@package_id->packages.owner_org_id->acts_for[org_id=$]{active}.user_id",
1142
- "@package_id->packages.sponsor_org_id->acts_for[org_id=$]{active}.user_id",
1143
- "contractor_rights[package_id=@package_id]{active}.contractor_org_id->acts_for[org_id=$]{active}.user_id"
1144
- ],
1145
- "create": [
1146
- "@site_id->sites.venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
1147
- ],
1148
- "update": [
1149
- "@site_id->sites.venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id",
1150
- "@package_id->packages.owner_org_id->acts_for[org_id=$]{active}.user_id"
1151
- ],
1152
- "delete": [
1153
- "@site_id->sites.venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
1154
- ]
1155
- },
1156
- "relationships": {},
1157
- "manyToMany": {},
1158
- "graphRules": {
1159
- "onCreate": [],
1160
- "onUpdate": [],
1161
- "onDelete": []
1162
- }
1163
- },
1164
- "contractor_rights": {
1165
- "name": "contractor_rights",
1166
- "table": "contractor_rights",
1167
- "primaryKey": [
1168
- "contractor_org_id",
1169
- "package_id",
1170
- "valid_from"
1171
- ],
1172
- "columns": [
1173
- {
1174
- "name": "contractor_org_id",
1175
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
1176
- "isArray": false
1177
- },
1178
- {
1179
- "name": "sponsor_org_id",
1180
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
1181
- "isArray": false
1182
- },
1183
- {
1184
- "name": "package_id",
1185
- "type": "int NOT NULL REFERENCES packages(id) ON DELETE CASCADE",
1186
- "isArray": false
1187
- },
1188
- {
1189
- "name": "valid_from",
1190
- "type": "date NOT NULL DEFAULT current_date",
1191
- "isArray": false
1192
- },
1193
- {
1194
- "name": "valid_to",
1195
- "type": "date",
1196
- "isArray": false
1197
- }
1198
- ],
1199
- "labelField": "contractor_org_id",
1200
- "softDelete": false,
1201
- "managed": true,
1202
- "hidden": [],
1203
- "fieldDefaults": {},
1204
- "permissions": {
1205
- "view": [],
1206
- "create": [
1207
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1208
- ],
1209
- "update": [
1210
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1211
- ],
1212
- "delete": [
1213
- "@sponsor_org_id->acts_for[org_id=$]{active}.user_id"
1214
- ]
1215
- },
1216
- "relationships": {},
1217
- "manyToMany": {},
1218
- "graphRules": {
1219
- "onCreate": [],
1220
- "onUpdate": [],
1221
- "onDelete": []
1222
- }
1223
- },
1224
- "brands": {
1225
- "name": "brands",
1226
- "table": "brands",
1227
- "primaryKey": [
1228
- "id"
1229
- ],
1230
- "columns": [
1231
- {
1232
- "name": "id",
1233
- "type": "serial PRIMARY KEY",
1234
- "isArray": false
1235
- },
1236
- {
1237
- "name": "org_id",
1238
- "type": "int NOT NULL REFERENCES organisations(id) ON DELETE CASCADE",
1239
- "isArray": false
1240
- },
1241
- {
1242
- "name": "name",
1243
- "type": "text NOT NULL",
1244
- "isArray": false
1245
- },
1246
- {
1247
- "name": "description",
1248
- "type": "text",
1249
- "isArray": false
1250
- }
1251
- ],
1252
- "labelField": "name",
1253
- "softDelete": false,
1254
- "managed": true,
1255
- "hidden": [],
1256
- "fieldDefaults": {},
1257
- "permissions": {
1258
- "view": [],
1259
- "create": [
1260
- "@org_id->acts_for[org_id=$]{active}.user_id"
1261
- ],
1262
- "update": [
1263
- "@org_id->acts_for[org_id=$]{active}.user_id"
1264
- ],
1265
- "delete": [
1266
- "@org_id->acts_for[org_id=$]{active}.user_id"
1267
- ]
1268
- },
1269
- "relationships": {},
1270
- "manyToMany": {
1271
- "tags": {
1272
- "junctionTable": "brand_tags",
1273
- "localKey": "brand_id",
1274
- "foreignKey": "tag_id",
1275
- "targetEntity": "tags",
1276
- "idField": "tag_ids",
1277
- "expand": false
1278
- }
1279
- },
1280
- "graphRules": {
1281
- "onCreate": [],
1282
- "onUpdate": [],
1283
- "onDelete": []
1284
- }
1285
- },
1286
- "artwork": {
1287
- "name": "artwork",
1288
- "table": "artwork",
1289
- "primaryKey": [
1290
- "id"
1291
- ],
1292
- "columns": [
1293
- {
1294
- "name": "id",
1295
- "type": "serial PRIMARY KEY",
1296
- "isArray": false
1297
- },
1298
- {
1299
- "name": "brand_id",
1300
- "type": "int NOT NULL REFERENCES brands(id) ON DELETE CASCADE",
1301
- "isArray": false
1302
- },
1303
- {
1304
- "name": "url",
1305
- "type": "text NOT NULL",
1306
- "isArray": false
1307
- },
1308
- {
1309
- "name": "ratio",
1310
- "type": "decimal(10, 4) NOT NULL",
1311
- "isArray": false
1312
- }
1313
- ],
1314
- "labelField": "url",
1315
- "softDelete": false,
1316
- "managed": true,
1317
- "hidden": [],
1318
- "fieldDefaults": {},
1319
- "permissions": {
1320
- "view": [],
1321
- "create": [
1322
- "@brand_id->brands.org_id->acts_for[org_id=$]{active}.user_id"
1323
- ],
1324
- "update": [
1325
- "@brand_id->brands.org_id->acts_for[org_id=$]{active}.user_id"
1326
- ],
1327
- "delete": [
1328
- "@brand_id->brands.org_id->acts_for[org_id=$]{active}.user_id"
1329
- ]
1330
- },
1331
- "relationships": {},
1332
- "manyToMany": {},
1333
- "graphRules": {
1334
- "onCreate": [],
1335
- "onUpdate": [],
1336
- "onDelete": []
1337
- }
1338
- },
1339
- "tags": {
1340
- "name": "tags",
1341
- "table": "tags",
1342
- "primaryKey": [
1343
- "id"
1344
- ],
1345
- "columns": [
1346
- {
1347
- "name": "id",
1348
- "type": "serial PRIMARY KEY",
1349
- "isArray": false
1350
- },
1351
- {
1352
- "name": "name",
1353
- "type": "text NOT NULL UNIQUE",
1354
- "isArray": false
1355
- },
1356
- {
1357
- "name": "color",
1358
- "type": "text",
1359
- "isArray": false
1360
- },
1361
- {
1362
- "name": "description",
1363
- "type": "text",
1364
- "isArray": false
1365
- }
1366
- ],
1367
- "labelField": "name",
1368
- "softDelete": false,
1369
- "managed": true,
1370
- "hidden": [],
1371
- "fieldDefaults": {},
1372
- "permissions": {
1373
- "view": [],
1374
- "create": [],
1375
- "update": [],
1376
- "delete": []
1377
- },
1378
- "relationships": {},
1379
- "manyToMany": {},
1380
- "graphRules": {
1381
- "onCreate": [],
1382
- "onUpdate": [],
1383
- "onDelete": []
1384
- }
1385
- },
1386
- "brand_tags": {
1387
- "name": "brand_tags",
1388
- "table": "brand_tags",
1389
- "primaryKey": [
1390
- "brand_id",
1391
- "tag_id"
1392
- ],
1393
- "columns": [
1394
- {
1395
- "name": "brand_id",
1396
- "type": "int NOT NULL REFERENCES brands(id) ON DELETE CASCADE",
1397
- "isArray": false
1398
- },
1399
- {
1400
- "name": "tag_id",
1401
- "type": "int NOT NULL REFERENCES tags(id) ON DELETE CASCADE",
1402
- "isArray": false
1403
- }
1404
- ],
1405
- "labelField": "id",
1406
- "softDelete": false,
1407
- "managed": false,
1408
- "hidden": [],
1409
- "fieldDefaults": {},
1410
- "permissions": {
1411
- "view": [],
1412
- "create": [],
1413
- "update": [],
1414
- "delete": []
1415
- },
1416
- "relationships": {},
1417
- "manyToMany": {},
1418
- "graphRules": {
1419
- "onCreate": [],
1420
- "onUpdate": [],
1421
- "onDelete": []
1422
- }
1423
- }
1424
- },
1425
- "subscribables": {
1426
- "venue_detail": {
1427
- "name": "venue_detail",
1428
- "params": {
1429
- "venue_id": "int"
1430
- },
1431
- "root": {
1432
- "entity": "venues",
1433
- "key": "venue_id"
1434
- },
1435
- "includes": {
1436
- "org": {
1437
- "relation": "org",
1438
- "entity": "organisations",
1439
- "includes": {}
1440
- },
1441
- "sites": {
1442
- "relation": "sites",
1443
- "entity": "sites",
1444
- "includes": {
1445
- "allocations": {
1446
- "relation": "allocations",
1447
- "entity": "allocations",
1448
- "includes": {}
1449
- }
1450
- }
1451
- }
1452
- },
1453
- "scopeTables": [
1454
- "venues",
1455
- "organisations",
1456
- "sites",
1457
- "allocations"
1458
- ],
1459
- "canSubscribe": [
1460
- "@venue_id->venues.org_id->acts_for[org_id=$]{active}.user_id"
1461
- ]
1462
- },
1463
- "org_dashboard": {
1464
- "name": "org_dashboard",
1465
- "params": {
1466
- "org_id": "int"
1467
- },
1468
- "root": {
1469
- "entity": "organisations",
1470
- "key": "org_id"
1471
- },
1472
- "includes": {
1473
- "venues": {
1474
- "relation": "venues",
1475
- "entity": "venues",
1476
- "filter": {
1477
- "org_id": "@org_id"
1478
- },
1479
- "includes": {
1480
- "sites": {
1481
- "relation": "sites",
1482
- "entity": "sites",
1483
- "includes": {}
1484
- }
1485
- }
1486
- },
1487
- "products": {
1488
- "relation": "products",
1489
- "entity": "products",
1490
- "filter": {
1491
- "org_id": "@org_id"
1492
- },
1493
- "includes": {}
1494
- },
1495
- "packages": {
1496
- "relation": "packages",
1497
- "entity": "packages",
1498
- "filter": {
1499
- "owner_org_id": "@org_id"
1500
- },
1501
- "includes": {}
1502
- },
1503
- "brands": {
1504
- "relation": "brands",
1505
- "entity": "brands",
1506
- "filter": {
1507
- "org_id": "@org_id"
1508
- },
1509
- "includes": {
1510
- "artwork": {
1511
- "relation": "artwork",
1512
- "entity": "artwork",
1513
- "includes": {}
1514
- }
1515
- }
1516
- }
1517
- },
1518
- "scopeTables": [
1519
- "organisations",
1520
- "venues",
1521
- "sites",
1522
- "products",
1523
- "packages",
1524
- "brands",
1525
- "artwork"
1526
- ],
1527
- "canSubscribe": [
1528
- "@org_id->acts_for[org_id=$]{active}.user_id"
1529
- ]
1530
- },
1531
- "my_profile": {
1532
- "name": "my_profile",
1533
- "params": {},
1534
- "root": {
1535
- "entity": "users",
1536
- "key": "@user_id"
1537
- },
1538
- "includes": {
1539
- "memberships": {
1540
- "relation": "memberships",
1541
- "entity": "acts_for",
1542
- "filter": {
1543
- "user_id": "@user_id"
1544
- },
1545
- "includes": {
1546
- "org": {
1547
- "relation": "org",
1548
- "entity": "organisations",
1549
- "includes": {}
1550
- }
1551
- }
1552
- }
1553
- },
1554
- "scopeTables": [
1555
- "users",
1556
- "acts_for",
1557
- "organisations"
1558
- ],
1559
- "canSubscribe": []
1560
- }
1561
- }
1562
- }