db-model-router 1.0.11 → 1.0.13

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.
@@ -0,0 +1,705 @@
1
+ {
2
+ "adapter": "postgres",
3
+ "framework": "express",
4
+ "options": {
5
+ "session": "redis",
6
+ "rateLimiting": true,
7
+ "helmet": true,
8
+ "logger": true,
9
+ "loki": false
10
+ },
11
+ "tables": {
12
+ "template_survey": {
13
+ "columns": {
14
+ "template_survey_id": "auto_increment",
15
+ "name": "required|string|minLength:3|maxLength:255",
16
+ "description": "string:text|maxLength:5000",
17
+ "status": "required|string|in:draft,active,archived",
18
+ "config": "required|object",
19
+ "config.display.mode": "required|string|in:ONE_AT_A_TIME,ALL_AT_ONCE",
20
+ "config.display.theme": "object",
21
+ "config.display.font_family": "string",
22
+ "config.languages.default": "required|string|minLength:2|maxLength:10",
23
+ "config.languages.available": "object",
24
+ "config.branding.logo_light_url": "string|url",
25
+ "config.branding.logo_dark_url": "string|url",
26
+ "config.controls.auto_progress": "boolean",
27
+ "config.controls.show_progress_percentage": "boolean",
28
+ "config.controls.ip_tracking": "boolean",
29
+ "config.controls.consent_required": "boolean",
30
+ "config.controls.save_and_continue": "boolean",
31
+ "config.controls.restart_allowed": "boolean",
32
+ "config.buttons.start_text": "string|maxLength:100",
33
+ "config.buttons.next_text": "string|maxLength:100",
34
+ "config.buttons.back_text": "string|maxLength:100",
35
+ "config.buttons.submit_text": "string|maxLength:100",
36
+ "config.messages.welcome_title": "string:text",
37
+ "config.messages.thank_you_title": "string:text",
38
+ "config.messages.closed_title": "string:text",
39
+ "translations": "object",
40
+ "is_deleted": "boolean",
41
+ "created_at": "datetime",
42
+ "modified_at": "datetime"
43
+ },
44
+ "pk": "template_survey_id",
45
+ "unique": ["template_survey_id"],
46
+ "softDelete": "is_deleted",
47
+ "timestamps": {
48
+ "created_at": "created_at",
49
+ "modified_at": "modified_at"
50
+ }
51
+ },
52
+ "template_section": {
53
+ "columns": {
54
+ "template_section_id": "auto_increment",
55
+ "template_survey_id": "integer",
56
+ "title": "required|string|maxLength:255",
57
+ "description": "string:text|maxLength:5000",
58
+ "order_index": "required|integer",
59
+ "status": "required|string|in:draft,active,archived",
60
+ "config": "object",
61
+ "translations": "object",
62
+ "is_deleted": "boolean",
63
+ "created_at": "datetime",
64
+ "modified_at": "datetime"
65
+ },
66
+ "pk": "template_section_id",
67
+ "softDelete": "is_deleted",
68
+ "timestamps": {
69
+ "created_at": "created_at",
70
+ "modified_at": "modified_at"
71
+ },
72
+ "parent": "template_survey"
73
+ },
74
+ "template_question": {
75
+ "columns": {
76
+ "template_question_id": "auto_increment",
77
+ "template_survey_id": "required|integer",
78
+ "template_section_id": "required|integer",
79
+ "order_index": "required|integer",
80
+ "code": "required|string|alphaDash|maxLength:100",
81
+ "type": "required|string|in:OPEN_ENDED,SINGLE_SELECT,MULTI_SELECT,GRID,RANKING,GROUP,MESSAGE",
82
+ "display_type": "string|in:RADIO_BUTTONS,CARDS,DROPDOWN,DEFAULT_SLIDER,RYG_SLIDER,DEFAULT_SCALE,SCALE_WITH_TEXT,NEUTRAL_SCALE,DEFAULT_NPS,NPS_PREFILLED_COLOR,NPS_BORDER_COLOR",
83
+ "title": "required|string:text",
84
+ "description": "string:text",
85
+ "is_mandatory": "boolean",
86
+ "config": "required|object",
87
+ "translations": "object",
88
+ "is_deleted": "boolean",
89
+ "created_at": "datetime",
90
+ "modified_at": "datetime"
91
+ },
92
+ "pk": "template_question_id",
93
+ "softDelete": "is_deleted",
94
+ "timestamps": {
95
+ "created_at": "created_at",
96
+ "modified_at": "modified_at"
97
+ },
98
+ "parent": "template_section"
99
+ },
100
+ "project": {
101
+ "columns": {
102
+ "project_id": "auto_increment",
103
+ "tenant_id": "required|integer",
104
+ "name": "required|string|minLength:3|maxLength:255",
105
+ "description": "string:text|maxLength:5000",
106
+ "status": "required|string|in:draft,active,archived",
107
+ "config": "required|object",
108
+ "config.language.default": "string|minLength:2|maxLength:10",
109
+ "config.language.supported": "object",
110
+ "is_deleted": "boolean",
111
+ "created_at": "datetime",
112
+ "modified_at": "datetime"
113
+ },
114
+ "pk": "project_id",
115
+ "unique": ["project_id"],
116
+ "softDelete": "is_deleted",
117
+ "timestamps": {
118
+ "created_at": "created_at",
119
+ "modified_at": "modified_at"
120
+ }
121
+ },
122
+ "document": {
123
+ "columns": {
124
+ "document_id": "auto_increment",
125
+ "tenant_id": "required|integer",
126
+ "project_id": "required|integer",
127
+ "name": "required|string|maxLength:255",
128
+ "file_url": "required|string:url",
129
+ "mime_type": "string|maxLength:255",
130
+ "sha256_hash": "string|maxLength:128",
131
+ "metadata": "object",
132
+ "extra": "object",
133
+ "is_deleted": "boolean",
134
+ "created_at": "datetime",
135
+ "modified_at": "datetime"
136
+ },
137
+ "pk": "document_id",
138
+ "unique": ["tenant_id", "project_id", "sha256_hash"],
139
+ "softDelete": "is_deleted",
140
+ "timestamps": {
141
+ "created_at": "created_at",
142
+ "modified_at": "modified_at"
143
+ },
144
+ "parent": "project"
145
+ },
146
+ "survey": {
147
+ "columns": {
148
+ "survey_id": "auto_increment",
149
+ "tenant_id": "required|integer",
150
+ "project_id": "required|integer",
151
+ "name": "required|string|minLength:3|maxLength:255",
152
+ "slug": "required|string|alphaDash|maxLength:255",
153
+ "description": "string:text|maxLength:5000",
154
+ "status": "required|string|in:draft,active,closed",
155
+ "config": "required|object",
156
+ "config.display.mode": "required|string|in:ONE_AT_A_TIME,ALL_AT_ONCE",
157
+ "config.display.theme": "required|string",
158
+ "config.display.font_family": "string",
159
+ "config.display.logo_light_url": "string|url",
160
+ "config.display.logo_dark_url": "string|url",
161
+ "config.languages.default": "required|string|minLength:2|maxLength:10",
162
+ "config.languages.available": "object",
163
+ "config.controls.auto_progress": "boolean",
164
+ "config.controls.show_progress_percentage": "boolean",
165
+ "config.controls.ip_tracking": "boolean",
166
+ "config.controls.consent_required": "boolean",
167
+ "config.controls.save_and_continue": "boolean",
168
+ "config.controls.restart_allowed": "boolean",
169
+ "config.buttons.start_text": "string|maxLength:100",
170
+ "config.buttons.next_text": "string|maxLength:100",
171
+ "config.buttons.back_text": "string|maxLength:100",
172
+ "config.buttons.submit_text": "string|maxLength:100",
173
+ "config.messages.welcome_title": "string:text",
174
+ "config.messages.thank_you_title": "string:text",
175
+ "config.messages.closed_title": "string:text",
176
+ "translations": "object",
177
+ "extra": "object",
178
+ "is_deleted": "boolean",
179
+ "created_at": "datetime",
180
+ "modified_at": "datetime",
181
+ "template_survey_id": "integer"
182
+ },
183
+ "pk": "survey_id",
184
+ "unique": ["slug"],
185
+ "softDelete": "is_deleted",
186
+ "timestamps": {
187
+ "created_at": "created_at",
188
+ "modified_at": "modified_at"
189
+ },
190
+ "parent": "project"
191
+ },
192
+ "section": {
193
+ "columns": {
194
+ "section_id": "auto_increment",
195
+ "tenant_id": "required|integer",
196
+ "survey_id": "required|integer",
197
+ "project_id": "required|integer",
198
+ "title": "required|string|maxLength:255",
199
+ "description": "string:text|maxLength:5000",
200
+ "order_index": "required|integer",
201
+ "config": "object",
202
+ "translations": "object",
203
+ "is_deleted": "boolean",
204
+ "created_at": "datetime",
205
+ "modified_at": "datetime"
206
+ },
207
+ "pk": "section_id",
208
+ "softDelete": "is_deleted",
209
+ "timestamps": {
210
+ "created_at": "created_at",
211
+ "modified_at": "modified_at"
212
+ },
213
+ "parent": "survey"
214
+ },
215
+ "question": {
216
+ "columns": {
217
+ "question_id": "auto_increment",
218
+ "tenant_id": "required|integer",
219
+ "survey_id": "required|integer",
220
+ "project_id": "required|integer",
221
+ "section_id": "required|integer",
222
+ "parent_question_id": "integer",
223
+ "code": "required|string|alphaDash|maxLength:100",
224
+ "type": "required|string|in:OPEN_ENDED,SINGLE_SELECT,MULTI_SELECT,GRID,RANKING,GROUP,MESSAGE",
225
+ "display_type": "string|in:RADIO_BUTTONS,CARDS,DROPDOWN,DEFAULT_SLIDER,RYG_SLIDER,DEFAULT_SCALE,SCALE_WITH_TEXT,NEUTRAL_SCALE,DEFAULT_NPS,NPS_PREFILLED_COLOR,NPS_BORDER_COLOR",
226
+ "title": "required|string:text",
227
+ "description": "string:text",
228
+ "order_index": "required|integer",
229
+ "is_mandatory": "boolean",
230
+ "is_visible_default": "boolean",
231
+ "config": "required|object",
232
+ "translations": "object",
233
+ "is_deleted": "boolean",
234
+ "created_at": "datetime",
235
+ "modified_at": "datetime"
236
+ },
237
+ "pk": "question_id",
238
+ "softDelete": "is_deleted",
239
+ "timestamps": {
240
+ "created_at": "created_at",
241
+ "modified_at": "modified_at"
242
+ },
243
+ "parent": "section"
244
+ },
245
+ "rule": {
246
+ "columns": {
247
+ "rule_id": "auto_increment",
248
+ "tenant_id": "required|integer",
249
+ "project_id": "required|integer",
250
+ "survey_id": "required|integer",
251
+ "name": "required|string|maxLength:255",
252
+ "status": "required|string|in:draft,active,inactive",
253
+ "order_index": "required|integer",
254
+ "config": "required|object",
255
+ "config.conditions": "object",
256
+ "config.actions": "object",
257
+ "created_at": "datetime",
258
+ "modified_at": "datetime"
259
+ },
260
+ "pk": "rule_id",
261
+ "timestamps": {
262
+ "created_at": "created_at",
263
+ "modified_at": "modified_at"
264
+ },
265
+ "parent": "survey"
266
+ },
267
+ "respondent_master": {
268
+ "columns": {
269
+ "respondent_master_id": "auto_increment",
270
+ "tenant_id": "required|integer",
271
+ "project_id": "required|integer",
272
+ "unique_id": "required|string|maxLength:255",
273
+ "first_name": "string|maxLength:255",
274
+ "last_name": "string|maxLength:255",
275
+ "email": "string|email",
276
+ "phone": "string|phoneNumber",
277
+ "status": "required|string|in:active,inactive,archived",
278
+ "attributes": "required|object",
279
+ "is_deleted": "boolean",
280
+ "created_at": "datetime",
281
+ "modified_at": "datetime"
282
+ },
283
+ "pk": "respondent_master_id",
284
+ "softDelete": "is_deleted",
285
+ "unique": ["unique_id"],
286
+ "timestamps": {
287
+ "created_at": "created_at",
288
+ "modified_at": "modified_at"
289
+ },
290
+ "parent": "project"
291
+ },
292
+ "respondent": {
293
+ "columns": {
294
+ "respondent_id": "auto_increment",
295
+ "respondent_master_id": "integer",
296
+ "tenant_id": "required|integer",
297
+ "project_id": "required|integer",
298
+ "survey_id": "integer",
299
+ "type": "required|string|in:LIVE,TEST",
300
+ "token": "required|string|maxLength:255",
301
+ "status": "required|string|in:PENDING,STARTED,INPROGRESS,COMPLETED,EXPIRED,REVOKED",
302
+ "progress_percentage": "numeric:decimal(5,2)",
303
+ "config": "object",
304
+ "config.language": "string",
305
+ "config.channel": "string|in:EMAIL,SMS,WHATSAPP,VOICE,WEB",
306
+ "config.consent_required": "boolean",
307
+ "config.expiry_policy": "object",
308
+ "is_deleted": "boolean",
309
+ "created_at": "datetime",
310
+ "modified_at": "datetime"
311
+ },
312
+ "pk": "respondent_id",
313
+ "softDelete": "is_deleted",
314
+ "unique": ["respondent_master_id", "survey_id", "type"],
315
+ "timestamps": {
316
+ "created_at": "created_at",
317
+ "modified_at": "modified_at"
318
+ },
319
+ "parent": "survey"
320
+ },
321
+ "respondent_assignment": {
322
+ "columns": {
323
+ "respondent_assignment_id": "auto_increment",
324
+ "tenant_id": "required|integer",
325
+ "project_id": "required|integer",
326
+ "respondent_id": "required|integer",
327
+ "survey_id": "required|integer",
328
+ "user_id": "required|integer",
329
+ "assignment_type": "required|string|in:SPOC,FIELD_AGENT,FIELD_MANAGER,VIEWER",
330
+ "expires_at": "datetime",
331
+ "config": "object",
332
+ "created_at": "datetime",
333
+ "modified_at": "datetime"
334
+ },
335
+ "pk": "respondent_assignment_id",
336
+ "timestamps": {
337
+ "created_at": "created_at",
338
+ "modified_at": "modified_at"
339
+ },
340
+ "parent": "respondent"
341
+ },
342
+ "respondent_import": {
343
+ "columns": {
344
+ "import_id": "auto_increment",
345
+ "tenant_id": "required|integer",
346
+ "project_id": "required|integer",
347
+ "name": "required|string|maxLength:255",
348
+ "integration_type": "required|string|in:CRM,HRMS,ERP,API,FILE",
349
+ "status": "required|string|in:draft,active,paused,failed",
350
+ "script": "string:longtext",
351
+ "config": "required|object",
352
+ "config.version": "required|integer",
353
+ "config.mode": "string|in:manual,scheduled,webhook",
354
+ "config.schedule.cron": "string",
355
+ "config.schedule.timezone": "string",
356
+ "credentials": "required|object",
357
+ "credentials.auth": "object",
358
+ "credentials.endpoint": "string|url",
359
+ "mapping.unique_id": "string",
360
+ "mapping.mapper": "object",
361
+ "extra": "object",
362
+ "created_at": "datetime",
363
+ "modified_at": "datetime"
364
+ },
365
+ "pk": "import_id",
366
+ "timestamps": {
367
+ "created_at": "created_at",
368
+ "modified_at": "modified_at"
369
+ },
370
+ "parent": "project"
371
+ },
372
+ "respondent_import_run": {
373
+ "columns": {
374
+ "respondent_import_run_id": "auto_increment",
375
+ "tenant_id": "required|integer",
376
+ "project_id": "required|integer",
377
+ "import_id": "required|integer",
378
+ "status": "required|string|in:queued,running,completed,failed",
379
+ "input": "object",
380
+ "output": "object",
381
+ "error": "object",
382
+ "started_at": "datetime",
383
+ "finished_at": "datetime",
384
+ "created_at": "datetime",
385
+ "modified_at": "datetime"
386
+ },
387
+ "pk": "respondent_import_run_id",
388
+ "timestamps": {
389
+ "created_at": "created_at",
390
+ "modified_at": "modified_at"
391
+ },
392
+ "parent": "respondent_import"
393
+ },
394
+ "response": {
395
+ "columns": {
396
+ "response_id": "auto_increment",
397
+ "tenant_id": "required|integer",
398
+ "respondent_id": "required|integer",
399
+ "question_id": "required|integer",
400
+ "response": "required|object",
401
+ "status": "required|string|in:SAVED,SUBMITTED",
402
+ "meta": "object",
403
+ "meta.time_spent_ms": "integer",
404
+ "meta.page_index": "integer",
405
+ "meta.ip_address": "string|ip",
406
+ "meta.user_agent": "string:text",
407
+ "created_at": "datetime",
408
+ "modified_at": "datetime"
409
+ },
410
+ "pk": "response_id",
411
+ "timestamps": {
412
+ "created_at": "created_at",
413
+ "modified_at": "modified_at"
414
+ },
415
+ "parent": null
416
+ },
417
+ "campaign": {
418
+ "columns": {
419
+ "campaign_id": "auto_increment",
420
+ "tenant_id": "required|integer",
421
+ "project_id": "required|integer",
422
+ "survey_id": "required|integer",
423
+ "name": "required|string|maxLength:255",
424
+ "channel": "required|string|in:EMAIL,SMS,WHATSAPP,VOICE",
425
+ "status": "required|string|in:DRAFT,SCHEDULED,RUNNING,COMPLETED,FAILED,PAUSED",
426
+ "config": "required|object",
427
+ "config.message.subject": "string|maxLength:255",
428
+ "config.message.body": "string:text",
429
+ "config.schedule": "string|maxLength:63",
430
+ "send_after": "datetime",
431
+ "extra": "object",
432
+ "created_at": "datetime",
433
+ "modified_at": "datetime"
434
+ },
435
+ "pk": "campaign_id",
436
+ "timestamps": {
437
+ "created_at": "created_at",
438
+ "modified_at": "modified_at"
439
+ },
440
+ "parent": "project"
441
+ },
442
+ "campaign_recipient": {
443
+ "columns": {
444
+ "campaign_recipient_id": "auto_increment",
445
+ "tenant_id": "required|integer",
446
+ "campaign_id": "required|integer",
447
+ "respondent_id": "required|integer",
448
+ "send_after": "datetime",
449
+ "status": "required|string|in:PENDING,SENT,DELIVERED,OPENED,CLICKED,RESPONDED,FAILED",
450
+ "subject": "string|maxLength:255",
451
+ "body": "string:text",
452
+ "config": "object",
453
+ "created_at": "datetime",
454
+ "modified_at": "datetime"
455
+ },
456
+ "pk": "campaign_recipient_id",
457
+ "timestamps": {
458
+ "created_at": "created_at",
459
+ "modified_at": "modified_at"
460
+ },
461
+ "parent": "campaign"
462
+ },
463
+ "campaign_event": {
464
+ "columns": {
465
+ "campaign_event_id": "auto_increment",
466
+ "tenant_id": "required|integer",
467
+ "campaign_recipient_id": "required|integer",
468
+ "respondent_id": "required|integer",
469
+ "event_type": "required|string|maxLength:100",
470
+ "event_time": "required|datetime",
471
+ "event_data": "object",
472
+ "created_at": "datetime",
473
+ "modified_at": "datetime"
474
+ },
475
+ "pk": "campaign_event_id",
476
+ "timestamps": {
477
+ "created_at": "created_at",
478
+ "modified_at": "modified_at"
479
+ },
480
+ "parent": "campaign_recipient"
481
+ },
482
+ "api_key": {
483
+ "columns": {
484
+ "api_key_id": "auto_increment",
485
+ "tenant_id": "required|integer",
486
+ "project_id": "required|integer",
487
+ "name": "required|string|maxLength:255",
488
+ "key_hash": "required|string:text",
489
+ "status": "required|string|in:ACTIVE,REVOKED,EXPIRED",
490
+ "config": "required|object",
491
+ "config.version": "required|integer",
492
+ "config.scopes": "object",
493
+ "config.rotation.enabled": "boolean",
494
+ "config.rotation.last_rotated_at": "datetime",
495
+ "expires_at": "datetime",
496
+ "created_at": "datetime",
497
+ "modified_at": "datetime"
498
+ },
499
+ "pk": "api_key_id",
500
+ "timestamps": {
501
+ "created_at": "created_at",
502
+ "modified_at": "modified_at"
503
+ },
504
+ "parent": "project"
505
+ },
506
+ "audit_log": {
507
+ "columns": {
508
+ "audit_log_id": "auto_increment",
509
+ "tenant_id": "required|integer",
510
+ "user_id": "integer",
511
+ "project_id": "integer",
512
+ "entity_name": "required|string|maxLength:255",
513
+ "entity_id": "string|maxLength:255",
514
+ "event_name": "required|string|maxLength:255",
515
+ "event_data": "object",
516
+ "ip_address": "string|ip",
517
+ "user_agent": "string:text",
518
+ "created_at": "datetime",
519
+ "modified_at": "datetime"
520
+ },
521
+ "pk": "audit_log_id",
522
+ "timestamps": {
523
+ "created_at": "created_at",
524
+ "modified_at": "modified_at"
525
+ }
526
+ }
527
+ },
528
+ "relationships": [
529
+ {
530
+ "parent": "project",
531
+ "child": "template_survey",
532
+ "foreignKey": "project_id"
533
+ },
534
+ {
535
+ "parent": "template_survey",
536
+ "child": "template_section",
537
+ "foreignKey": "template_survey_id"
538
+ },
539
+ {
540
+ "parent": "template_section",
541
+ "child": "template_question",
542
+ "foreignKey": "template_section_id"
543
+ },
544
+ {
545
+ "parent": "template_survey",
546
+ "child": "template_question",
547
+ "foreignKey": "template_survey_id"
548
+ },
549
+ {
550
+ "parent": "project",
551
+ "child": "survey",
552
+ "foreignKey": "project_id"
553
+ },
554
+ {
555
+ "parent": "template_survey",
556
+ "child": "survey",
557
+ "foreignKey": "template_survey_id"
558
+ },
559
+ {
560
+ "parent": "survey",
561
+ "child": "section",
562
+ "foreignKey": "survey_id"
563
+ },
564
+ {
565
+ "parent": "project",
566
+ "child": "section",
567
+ "foreignKey": "project_id"
568
+ },
569
+ {
570
+ "parent": "section",
571
+ "child": "question",
572
+ "foreignKey": "section_id"
573
+ },
574
+ {
575
+ "parent": "survey",
576
+ "child": "question",
577
+ "foreignKey": "survey_id"
578
+ },
579
+ {
580
+ "parent": "project",
581
+ "child": "question",
582
+ "foreignKey": "project_id"
583
+ },
584
+ {
585
+ "parent": "question",
586
+ "child": "question",
587
+ "foreignKey": "parent_question_id"
588
+ },
589
+ {
590
+ "parent": "survey",
591
+ "child": "rule",
592
+ "foreignKey": "survey_id"
593
+ },
594
+ {
595
+ "parent": "project",
596
+ "child": "rule",
597
+ "foreignKey": "project_id"
598
+ },
599
+ {
600
+ "parent": "project",
601
+ "child": "respondent_master",
602
+ "foreignKey": "project_id"
603
+ },
604
+ {
605
+ "parent": "project",
606
+ "child": "respondent",
607
+ "foreignKey": "project_id"
608
+ },
609
+ {
610
+ "parent": "respondent_master",
611
+ "child": "respondent",
612
+ "foreignKey": "respondent_master_id"
613
+ },
614
+ {
615
+ "parent": "survey",
616
+ "child": "respondent",
617
+ "foreignKey": "survey_id"
618
+ },
619
+ {
620
+ "parent": "respondent",
621
+ "child": "respondent_assignment",
622
+ "foreignKey": "respondent_id"
623
+ },
624
+ {
625
+ "parent": "project",
626
+ "child": "respondent_assignment",
627
+ "foreignKey": "project_id"
628
+ },
629
+ {
630
+ "parent": "survey",
631
+ "child": "respondent_assignment",
632
+ "foreignKey": "survey_id"
633
+ },
634
+ {
635
+ "parent": "project",
636
+ "child": "respondent_import",
637
+ "foreignKey": "project_id"
638
+ },
639
+ {
640
+ "parent": "respondent_import",
641
+ "child": "respondent_import_run",
642
+ "foreignKey": "import_id"
643
+ },
644
+ {
645
+ "parent": "project",
646
+ "child": "respondent_import_run",
647
+ "foreignKey": "project_id"
648
+ },
649
+ {
650
+ "parent": "respondent",
651
+ "child": "response",
652
+ "foreignKey": "respondent_id"
653
+ },
654
+ {
655
+ "parent": "question",
656
+ "child": "response",
657
+ "foreignKey": "question_id"
658
+ },
659
+ {
660
+ "parent": "project",
661
+ "child": "campaign",
662
+ "foreignKey": "project_id"
663
+ },
664
+ {
665
+ "parent": "survey",
666
+ "child": "campaign",
667
+ "foreignKey": "survey_id"
668
+ },
669
+ {
670
+ "parent": "campaign",
671
+ "child": "campaign_recipient",
672
+ "foreignKey": "campaign_id"
673
+ },
674
+ {
675
+ "parent": "respondent",
676
+ "child": "campaign_recipient",
677
+ "foreignKey": "respondent_id"
678
+ },
679
+ {
680
+ "parent": "campaign_recipient",
681
+ "child": "campaign_event",
682
+ "foreignKey": "campaign_recipient_id"
683
+ },
684
+ {
685
+ "parent": "respondent",
686
+ "child": "campaign_event",
687
+ "foreignKey": "respondent_id"
688
+ },
689
+ {
690
+ "parent": "project",
691
+ "child": "document",
692
+ "foreignKey": "project_id"
693
+ },
694
+ {
695
+ "parent": "project",
696
+ "child": "api_key",
697
+ "foreignKey": "project_id"
698
+ },
699
+ {
700
+ "parent": "project",
701
+ "child": "audit_log",
702
+ "foreignKey": "project_id"
703
+ }
704
+ ]
705
+ }