dzql 0.5.32 → 0.6.0

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 (150) hide show
  1. package/.env.sample +28 -0
  2. package/compose.yml +28 -0
  3. package/dist/client/index.ts +1 -0
  4. package/dist/client/stores/useMyProfileStore.ts +114 -0
  5. package/dist/client/stores/useOrgDashboardStore.ts +131 -0
  6. package/dist/client/stores/useVenueDetailStore.ts +117 -0
  7. package/dist/client/ws.ts +716 -0
  8. package/dist/db/migrations/000_core.sql +92 -0
  9. package/dist/db/migrations/20251229T212912022Z_schema.sql +3020 -0
  10. package/dist/db/migrations/20251229T212912022Z_subscribables.sql +371 -0
  11. package/dist/runtime/manifest.json +1562 -0
  12. package/docs/README.md +293 -36
  13. package/docs/feature-requests/applyPatch-bug-report.md +85 -0
  14. package/docs/feature-requests/connection-ready-profile.md +57 -0
  15. package/docs/feature-requests/hidden-bug-report.md +111 -0
  16. package/docs/feature-requests/hidden-fields-subscribables.md +34 -0
  17. package/docs/feature-requests/subscribable-param-key-bug.md +38 -0
  18. package/docs/feature-requests/todo.md +146 -0
  19. package/docs/for_ai.md +641 -0
  20. package/docs/project-setup.md +432 -0
  21. package/examples/blog.ts +50 -0
  22. package/examples/invalid.ts +18 -0
  23. package/examples/venues.js +485 -0
  24. package/package.json +23 -60
  25. package/src/cli/codegen/client.ts +99 -0
  26. package/src/cli/codegen/manifest.ts +95 -0
  27. package/src/cli/codegen/pinia.ts +174 -0
  28. package/src/cli/codegen/realtime.ts +58 -0
  29. package/src/cli/codegen/sql.ts +698 -0
  30. package/src/cli/codegen/subscribable_sql.ts +547 -0
  31. package/src/cli/codegen/subscribable_store.ts +184 -0
  32. package/src/cli/codegen/types.ts +142 -0
  33. package/src/cli/compiler/analyzer.ts +52 -0
  34. package/src/cli/compiler/graph_rules.ts +251 -0
  35. package/src/cli/compiler/ir.ts +233 -0
  36. package/src/cli/compiler/loader.ts +132 -0
  37. package/src/cli/compiler/permissions.ts +227 -0
  38. package/src/cli/index.ts +164 -0
  39. package/src/client/index.ts +1 -0
  40. package/src/client/ws.ts +286 -0
  41. package/src/create/.env.example +8 -0
  42. package/src/create/README.md +101 -0
  43. package/src/create/compose.yml +14 -0
  44. package/src/create/domain.ts +153 -0
  45. package/src/create/package.json +24 -0
  46. package/src/create/server.ts +18 -0
  47. package/src/create/setup.sh +11 -0
  48. package/src/create/tsconfig.json +15 -0
  49. package/src/runtime/auth.ts +39 -0
  50. package/src/runtime/db.ts +33 -0
  51. package/src/runtime/errors.ts +51 -0
  52. package/src/runtime/index.ts +98 -0
  53. package/src/runtime/js_functions.ts +63 -0
  54. package/src/runtime/manifest_loader.ts +29 -0
  55. package/src/runtime/namespace.ts +483 -0
  56. package/src/runtime/server.ts +87 -0
  57. package/src/runtime/ws.ts +197 -0
  58. package/src/shared/ir.ts +197 -0
  59. package/tests/client.test.ts +38 -0
  60. package/tests/codegen.test.ts +71 -0
  61. package/tests/compiler.test.ts +45 -0
  62. package/tests/graph_rules.test.ts +173 -0
  63. package/tests/integration/db.test.ts +174 -0
  64. package/tests/integration/e2e.test.ts +65 -0
  65. package/tests/integration/features.test.ts +922 -0
  66. package/tests/integration/full_stack.test.ts +262 -0
  67. package/tests/integration/setup.ts +45 -0
  68. package/tests/ir.test.ts +32 -0
  69. package/tests/namespace.test.ts +395 -0
  70. package/tests/permissions.test.ts +55 -0
  71. package/tests/pinia.test.ts +48 -0
  72. package/tests/realtime.test.ts +22 -0
  73. package/tests/runtime.test.ts +80 -0
  74. package/tests/subscribable_gen.test.ts +72 -0
  75. package/tests/subscribable_reactivity.test.ts +258 -0
  76. package/tests/venues_gen.test.ts +25 -0
  77. package/tsconfig.json +20 -0
  78. package/tsconfig.tsbuildinfo +1 -0
  79. package/README.md +0 -90
  80. package/bin/cli.js +0 -727
  81. package/docs/compiler/ADVANCED_FILTERS.md +0 -183
  82. package/docs/compiler/CODING_STANDARDS.md +0 -415
  83. package/docs/compiler/COMPARISON.md +0 -673
  84. package/docs/compiler/QUICKSTART.md +0 -326
  85. package/docs/compiler/README.md +0 -134
  86. package/docs/examples/README.md +0 -38
  87. package/docs/examples/blog.sql +0 -160
  88. package/docs/examples/venue-detail-simple.sql +0 -8
  89. package/docs/examples/venue-detail-subscribable.sql +0 -45
  90. package/docs/for-ai/claude-guide.md +0 -1210
  91. package/docs/getting-started/quickstart.md +0 -125
  92. package/docs/getting-started/subscriptions-quick-start.md +0 -203
  93. package/docs/getting-started/tutorial.md +0 -1104
  94. package/docs/guides/atomic-updates.md +0 -299
  95. package/docs/guides/client-stores.md +0 -730
  96. package/docs/guides/composite-primary-keys.md +0 -158
  97. package/docs/guides/custom-functions.md +0 -362
  98. package/docs/guides/drop-semantics.md +0 -554
  99. package/docs/guides/field-defaults.md +0 -240
  100. package/docs/guides/interpreter-vs-compiler.md +0 -237
  101. package/docs/guides/many-to-many.md +0 -929
  102. package/docs/guides/subscriptions.md +0 -537
  103. package/docs/reference/api.md +0 -1373
  104. package/docs/reference/client.md +0 -224
  105. package/src/client/stores/index.js +0 -8
  106. package/src/client/stores/useAppStore.js +0 -285
  107. package/src/client/stores/useWsStore.js +0 -289
  108. package/src/client/ws.js +0 -762
  109. package/src/compiler/cli/compile-example.js +0 -33
  110. package/src/compiler/cli/compile-subscribable.js +0 -43
  111. package/src/compiler/cli/debug-compile.js +0 -44
  112. package/src/compiler/cli/debug-parse.js +0 -26
  113. package/src/compiler/cli/debug-path-parser.js +0 -18
  114. package/src/compiler/cli/debug-subscribable-parser.js +0 -21
  115. package/src/compiler/cli/index.js +0 -174
  116. package/src/compiler/codegen/auth-codegen.js +0 -153
  117. package/src/compiler/codegen/drop-semantics-codegen.js +0 -553
  118. package/src/compiler/codegen/graph-rules-codegen.js +0 -450
  119. package/src/compiler/codegen/notification-codegen.js +0 -232
  120. package/src/compiler/codegen/operation-codegen.js +0 -1382
  121. package/src/compiler/codegen/permission-codegen.js +0 -318
  122. package/src/compiler/codegen/subscribable-codegen.js +0 -827
  123. package/src/compiler/compiler.js +0 -371
  124. package/src/compiler/index.js +0 -11
  125. package/src/compiler/parser/entity-parser.js +0 -440
  126. package/src/compiler/parser/path-parser.js +0 -290
  127. package/src/compiler/parser/subscribable-parser.js +0 -244
  128. package/src/database/dzql-core.sql +0 -161
  129. package/src/database/migrations/001_schema.sql +0 -60
  130. package/src/database/migrations/002_functions.sql +0 -890
  131. package/src/database/migrations/003_operations.sql +0 -1135
  132. package/src/database/migrations/004_search.sql +0 -581
  133. package/src/database/migrations/005_entities.sql +0 -730
  134. package/src/database/migrations/006_auth.sql +0 -94
  135. package/src/database/migrations/007_events.sql +0 -133
  136. package/src/database/migrations/008_hello.sql +0 -18
  137. package/src/database/migrations/008a_meta.sql +0 -172
  138. package/src/database/migrations/009_subscriptions.sql +0 -240
  139. package/src/database/migrations/010_atomic_updates.sql +0 -157
  140. package/src/database/migrations/010_fix_m2m_events.sql +0 -94
  141. package/src/index.js +0 -40
  142. package/src/server/api.js +0 -9
  143. package/src/server/db.js +0 -442
  144. package/src/server/index.js +0 -317
  145. package/src/server/logger.js +0 -259
  146. package/src/server/mcp.js +0 -594
  147. package/src/server/meta-route.js +0 -251
  148. package/src/server/namespace.js +0 -292
  149. package/src/server/subscriptions.js +0 -351
  150. package/src/server/ws.js +0 -573
@@ -0,0 +1,1562 @@
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
+ }