@valentine-efagene/qshelter-common 2.0.157 → 2.0.158
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.
- package/dist/generated/client/browser.d.ts +1 -1
- package/dist/generated/client/client.d.ts +1 -1
- package/dist/generated/client/internal/class.js +2 -2
- package/dist/generated/client/internal/prismaNamespace.d.ts +2 -4
- package/dist/generated/client/internal/prismaNamespace.js +2 -4
- package/dist/generated/client/internal/prismaNamespaceBrowser.d.ts +2 -4
- package/dist/generated/client/internal/prismaNamespaceBrowser.js +2 -4
- package/dist/generated/client/models/BankDocumentRequirement.d.ts +90 -154
- package/dist/generated/client/models/PropertyPaymentMethod.d.ts +3 -192
- package/dist/generated/client/models/PropertyPaymentMethodPhase.d.ts +227 -4
- package/package.json +1 -1
- package/prisma/migrations/0_init/migration.sql +2327 -0
- package/prisma/schema.prisma +17 -18
- package/prisma/migrations/20251228081517_create_initial_tables/migration.sql +0 -707
- package/prisma/migrations/20251228083337_refresh_token_hash/migration.sql +0 -16
- package/prisma/migrations/20251228084551/migration.sql +0 -16
- package/prisma/migrations/20251230104059_add_property_variants/migration.sql +0 -622
- package/prisma/migrations/20251230113413_add_multitenancy/migration.sql +0 -54
- package/prisma/migrations/20251230231217_add_prequalification_and_payment_method_change/migration.sql +0 -137
- package/prisma/migrations/20260101081428_normalize_schema/migration.sql +0 -119
- package/prisma/migrations/20260101102022_add_contract_termination/migration.sql +0 -69
- package/prisma/migrations/20260101110958_add_collect_funds/migration.sql +0 -8
- package/prisma/migrations/20260104084843_add_document_templates_and_offer_letters/migration.sql +0 -77
- package/prisma/migrations/20260104095131_add_underwriting_decision/migration.sql +0 -31
- package/prisma/migrations/20260104170149_add_generate_document_step_type/migration.sql +0 -5
- package/prisma/migrations/20260104172349_add_metadata_to_contract_phase_step/migration.sql +0 -2
- package/prisma/migrations/20260104174626_make_offer_letter_template_optional/migration.sql +0 -11
- package/prisma/migrations/20260105004059_add_superseded_phase_status/migration.sql +0 -2
- package/prisma/migrations/20260105074701_add_underwriting_step_types/migration.sql +0 -17
- package/prisma/migrations/20260105080236_remove_prequalification_model/migration.sql +0 -37
- package/prisma/migrations/20260105081842_unify_contract_events/migration.sql +0 -37
- package/prisma/migrations/20260105085337_simplify_los_remove_prequalification/migration.sql +0 -1
- package/prisma/migrations/20260105094604_workflow_tracking_current_step/migration.sql +0 -14
- package/prisma/migrations/20260105130633_add_api_keys/migration.sql +0 -26
- package/prisma/migrations/20260105151535_add_event_workflow_system/migration.sql +0 -132
- package/prisma/migrations/20260105160757_add_sns_handler_type/migration.sql +0 -2
- package/prisma/migrations/20260106003757_business_friendly_handler_types/migration.sql +0 -28
- package/prisma/migrations/20260106062140_add_step_event_attachments/migration.sql +0 -22
- package/prisma/migrations/20260107121844_add_property_transfer_requests/migration.sql +0 -64
- package/prisma/migrations/20260107172301_add_approval_request_model/migration.sql +0 -46
- package/prisma/migrations/20260107214834_add_contract_refund_model/migration.sql +0 -64
- package/prisma/migrations/20260108051928_add_approval_request_type_status_index/migration.sql +0 -2
- package/prisma/migrations/20260109132751_update_transfer_flow/migration.sql +0 -343
- package/prisma/migrations/20260111091027_rbac_redesign_federated_users/migration.sql +0 -79
- package/prisma/migrations/20260112000006_add_phase_event_attachments/migration.sql +0 -22
- package/prisma/migrations/20260112041159_add_flexible_term_configuration/migration.sql +0 -11
- package/prisma/migrations/20260112080730_rename_contract_to_application/migration.sql +0 -293
- package/prisma/migrations/20260112081422_cleanup_rename_contract_to_application/migration.sql +0 -14
- package/prisma/migrations/20260113000000_remove_workflow_analytics_summary/migration.sql +0 -5
- package/prisma/migrations/20260113110450_add_tenant_id_to_child_models/migration.sql +0 -334
- package/prisma/migrations/20260113122855_add_tenant_to_remaining_models/migration.sql +0 -64
- package/prisma/migrations/20260114034523_add_documentation_plan/migration.sql +0 -52
- package/prisma/migrations/20260114053042_add_questionnaire_plan/migration.sql +0 -73
- package/prisma/migrations/20260114164044_add_condition_to_documentation_plan_step/migration.sql +0 -10
- package/prisma/migrations/20260115055636_add_unit_locking/migration.sql +0 -16
- package/prisma/migrations/20260115060132_add_phase_template_reference/migration.sql +0 -8
- package/prisma/migrations/20260115084033_add_gate_step_type/migration.sql +0 -29
- package/prisma/migrations/20260115123703_add_organizations/migration.sql +0 -69
- package/prisma/migrations/20260115125519_add_requires_manual_review_to_step/migration.sql +0 -2
- package/prisma/migrations/20260115134106_add_conditional_step_support/migration.sql +0 -11
- package/prisma/migrations/20260116090633_add_question_category_enum/migration.sql +0 -8
- package/prisma/migrations/20260116152051_add_multi_party_document_review/migration.sql +0 -59
- package/prisma/migrations/20260116153745_add_platform_organization_type/migration.sql +0 -3
- package/prisma/migrations/20260119180401_add_document_name_remove_required_doc_types/migration.sql +0 -14
- package/prisma/migrations/20260119190336_add_document_approval_workflow/migration.sql +0 -134
- package/prisma/migrations/20260120024650_add_questionnaire_phase_review/migration.sql +0 -102
- package/prisma/migrations/20260121155057_add_event_execution_and_bank_docs/migration.sql +0 -198
- package/prisma/migrations/20260121161937_add_phase_step_order_unique_constraints/migration.sql +0 -12
- package/prisma/migrations/20260121163910_add_optimistic_locking/migration.sql +0 -14
- package/prisma/migrations/20260125090213_remove_is_published_use_status_enum/migration.sql +0 -10
- package/prisma/migrations/20260125102448_org_types_many_to_many/migration.sql +0 -153
- package/prisma/migrations/20260125103700_20260125102448_org_types_many_to_many_fix/migration.sql +0 -5
- package/prisma/migrations/20260126031132_add_organization_id_to_property/migration.sql +0 -8
- package/prisma/migrations/migration_lock.toml +0 -3
|
@@ -0,0 +1,2327 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE `organization_types` (
|
|
3
|
+
`id` VARCHAR(191) NOT NULL,
|
|
4
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
5
|
+
`code` VARCHAR(191) NOT NULL,
|
|
6
|
+
`name` VARCHAR(191) NOT NULL,
|
|
7
|
+
`description` TEXT NULL,
|
|
8
|
+
`isSystemType` BOOLEAN NOT NULL DEFAULT false,
|
|
9
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
10
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
11
|
+
|
|
12
|
+
INDEX `organization_types_tenantId_idx`(`tenantId`),
|
|
13
|
+
INDEX `organization_types_code_idx`(`code`),
|
|
14
|
+
UNIQUE INDEX `organization_types_tenantId_code_key`(`tenantId`, `code`),
|
|
15
|
+
PRIMARY KEY (`id`)
|
|
16
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
17
|
+
|
|
18
|
+
-- CreateTable
|
|
19
|
+
CREATE TABLE `organization_type_assignments` (
|
|
20
|
+
`id` VARCHAR(191) NOT NULL,
|
|
21
|
+
`organizationId` VARCHAR(191) NOT NULL,
|
|
22
|
+
`typeId` VARCHAR(191) NOT NULL,
|
|
23
|
+
`isPrimary` BOOLEAN NOT NULL DEFAULT false,
|
|
24
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
25
|
+
|
|
26
|
+
INDEX `organization_type_assignments_organizationId_idx`(`organizationId`),
|
|
27
|
+
INDEX `organization_type_assignments_typeId_idx`(`typeId`),
|
|
28
|
+
UNIQUE INDEX `organization_type_assignments_organizationId_typeId_key`(`organizationId`, `typeId`),
|
|
29
|
+
PRIMARY KEY (`id`)
|
|
30
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
31
|
+
|
|
32
|
+
-- CreateTable
|
|
33
|
+
CREATE TABLE `users` (
|
|
34
|
+
`id` VARCHAR(191) NOT NULL,
|
|
35
|
+
`email` VARCHAR(191) NOT NULL,
|
|
36
|
+
`password` VARCHAR(191) NULL,
|
|
37
|
+
`phone` VARCHAR(191) NULL,
|
|
38
|
+
`firstName` VARCHAR(191) NULL,
|
|
39
|
+
`lastName` VARCHAR(191) NULL,
|
|
40
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
41
|
+
`isEmailVerified` BOOLEAN NOT NULL DEFAULT false,
|
|
42
|
+
`googleId` VARCHAR(191) NULL,
|
|
43
|
+
`avatar` VARCHAR(191) NULL,
|
|
44
|
+
`tenantId` VARCHAR(191) NULL,
|
|
45
|
+
`walletId` VARCHAR(191) NULL,
|
|
46
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
47
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
48
|
+
`emailVerifiedAt` DATETIME(3) NULL,
|
|
49
|
+
`emailVerificationToken` VARCHAR(191) NULL,
|
|
50
|
+
`lastLoginAt` DATETIME(3) NULL,
|
|
51
|
+
|
|
52
|
+
UNIQUE INDEX `users_email_key`(`email`),
|
|
53
|
+
UNIQUE INDEX `users_phone_key`(`phone`),
|
|
54
|
+
UNIQUE INDEX `users_walletId_key`(`walletId`),
|
|
55
|
+
INDEX `users_email_idx`(`email`),
|
|
56
|
+
INDEX `users_tenantId_idx`(`tenantId`),
|
|
57
|
+
PRIMARY KEY (`id`)
|
|
58
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
59
|
+
|
|
60
|
+
-- CreateTable
|
|
61
|
+
CREATE TABLE `roles` (
|
|
62
|
+
`id` VARCHAR(191) NOT NULL,
|
|
63
|
+
`name` VARCHAR(191) NOT NULL,
|
|
64
|
+
`description` VARCHAR(191) NULL,
|
|
65
|
+
`tenantId` VARCHAR(191) NULL,
|
|
66
|
+
`isSystem` BOOLEAN NOT NULL DEFAULT false,
|
|
67
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
68
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
69
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
70
|
+
|
|
71
|
+
INDEX `roles_tenantId_idx`(`tenantId`),
|
|
72
|
+
UNIQUE INDEX `roles_name_tenantId_key`(`name`, `tenantId`),
|
|
73
|
+
PRIMARY KEY (`id`)
|
|
74
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
75
|
+
|
|
76
|
+
-- CreateTable
|
|
77
|
+
CREATE TABLE `permissions` (
|
|
78
|
+
`id` VARCHAR(191) NOT NULL,
|
|
79
|
+
`name` VARCHAR(191) NOT NULL,
|
|
80
|
+
`description` VARCHAR(191) NULL,
|
|
81
|
+
`path` VARCHAR(191) NOT NULL,
|
|
82
|
+
`methods` JSON NOT NULL,
|
|
83
|
+
`effect` ENUM('ALLOW', 'DENY') NOT NULL DEFAULT 'ALLOW',
|
|
84
|
+
`tenantId` VARCHAR(191) NULL,
|
|
85
|
+
`isSystem` BOOLEAN NOT NULL DEFAULT false,
|
|
86
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
87
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
88
|
+
|
|
89
|
+
INDEX `permissions_tenantId_idx`(`tenantId`),
|
|
90
|
+
UNIQUE INDEX `permissions_path_tenantId_key`(`path`, `tenantId`),
|
|
91
|
+
PRIMARY KEY (`id`)
|
|
92
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
93
|
+
|
|
94
|
+
-- CreateTable
|
|
95
|
+
CREATE TABLE `role_permissions` (
|
|
96
|
+
`roleId` VARCHAR(191) NOT NULL,
|
|
97
|
+
`permissionId` VARCHAR(191) NOT NULL,
|
|
98
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
99
|
+
|
|
100
|
+
PRIMARY KEY (`roleId`, `permissionId`)
|
|
101
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
102
|
+
|
|
103
|
+
-- CreateTable
|
|
104
|
+
CREATE TABLE `user_roles` (
|
|
105
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
106
|
+
`roleId` VARCHAR(191) NOT NULL,
|
|
107
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
108
|
+
|
|
109
|
+
PRIMARY KEY (`userId`, `roleId`)
|
|
110
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
111
|
+
|
|
112
|
+
-- CreateTable
|
|
113
|
+
CREATE TABLE `tenant_memberships` (
|
|
114
|
+
`id` VARCHAR(191) NOT NULL,
|
|
115
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
116
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
117
|
+
`roleId` VARCHAR(191) NOT NULL,
|
|
118
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
119
|
+
`isDefault` BOOLEAN NOT NULL DEFAULT false,
|
|
120
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
121
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
122
|
+
|
|
123
|
+
INDEX `tenant_memberships_tenantId_idx`(`tenantId`),
|
|
124
|
+
INDEX `tenant_memberships_userId_idx`(`userId`),
|
|
125
|
+
UNIQUE INDEX `tenant_memberships_userId_tenantId_key`(`userId`, `tenantId`),
|
|
126
|
+
PRIMARY KEY (`id`)
|
|
127
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
128
|
+
|
|
129
|
+
-- CreateTable
|
|
130
|
+
CREATE TABLE `organizations` (
|
|
131
|
+
`id` VARCHAR(191) NOT NULL,
|
|
132
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
133
|
+
`name` VARCHAR(191) NOT NULL,
|
|
134
|
+
`status` ENUM('PENDING', 'ACTIVE', 'SUSPENDED', 'INACTIVE') NOT NULL DEFAULT 'PENDING',
|
|
135
|
+
`isPlatformOrg` BOOLEAN NOT NULL DEFAULT false,
|
|
136
|
+
`email` VARCHAR(191) NULL,
|
|
137
|
+
`phone` VARCHAR(191) NULL,
|
|
138
|
+
`address` VARCHAR(191) NULL,
|
|
139
|
+
`city` VARCHAR(191) NULL,
|
|
140
|
+
`state` VARCHAR(191) NULL,
|
|
141
|
+
`country` VARCHAR(191) NULL DEFAULT 'Nigeria',
|
|
142
|
+
`website` VARCHAR(191) NULL,
|
|
143
|
+
`logoUrl` VARCHAR(191) NULL,
|
|
144
|
+
`description` TEXT NULL,
|
|
145
|
+
`bankCode` VARCHAR(191) NULL,
|
|
146
|
+
`bankLicenseNo` VARCHAR(191) NULL,
|
|
147
|
+
`swiftCode` VARCHAR(191) NULL,
|
|
148
|
+
`sortCode` VARCHAR(191) NULL,
|
|
149
|
+
`cacNumber` VARCHAR(191) NULL,
|
|
150
|
+
`cacCertificateUrl` VARCHAR(191) NULL,
|
|
151
|
+
`taxId` VARCHAR(191) NULL,
|
|
152
|
+
`approvedAt` DATETIME(3) NULL,
|
|
153
|
+
`approvedById` VARCHAR(191) NULL,
|
|
154
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
155
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
156
|
+
|
|
157
|
+
INDEX `organizations_tenantId_idx`(`tenantId`),
|
|
158
|
+
INDEX `organizations_status_idx`(`status`),
|
|
159
|
+
UNIQUE INDEX `organizations_tenantId_bankCode_key`(`tenantId`, `bankCode`),
|
|
160
|
+
UNIQUE INDEX `organizations_tenantId_cacNumber_key`(`tenantId`, `cacNumber`),
|
|
161
|
+
PRIMARY KEY (`id`)
|
|
162
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
163
|
+
|
|
164
|
+
-- CreateTable
|
|
165
|
+
CREATE TABLE `organization_members` (
|
|
166
|
+
`id` VARCHAR(191) NOT NULL,
|
|
167
|
+
`organizationId` VARCHAR(191) NOT NULL,
|
|
168
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
169
|
+
`title` VARCHAR(191) NULL,
|
|
170
|
+
`department` VARCHAR(191) NULL,
|
|
171
|
+
`employeeId` VARCHAR(191) NULL,
|
|
172
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
173
|
+
`invitedAt` DATETIME(3) NULL,
|
|
174
|
+
`acceptedAt` DATETIME(3) NULL,
|
|
175
|
+
`invitedBy` VARCHAR(191) NULL,
|
|
176
|
+
`joinedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
177
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
178
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
179
|
+
|
|
180
|
+
INDEX `organization_members_userId_idx`(`userId`),
|
|
181
|
+
INDEX `organization_members_organizationId_idx`(`organizationId`),
|
|
182
|
+
UNIQUE INDEX `organization_members_organizationId_userId_key`(`organizationId`, `userId`),
|
|
183
|
+
PRIMARY KEY (`id`)
|
|
184
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
185
|
+
|
|
186
|
+
-- CreateTable
|
|
187
|
+
CREATE TABLE `bank_document_requirements` (
|
|
188
|
+
`id` VARCHAR(191) NOT NULL,
|
|
189
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
190
|
+
`organizationId` VARCHAR(191) NOT NULL,
|
|
191
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
192
|
+
`documentType` VARCHAR(191) NOT NULL,
|
|
193
|
+
`documentName` VARCHAR(191) NOT NULL,
|
|
194
|
+
`modifier` ENUM('REQUIRED', 'OPTIONAL', 'NOT_REQUIRED', 'STRICTER') NOT NULL DEFAULT 'REQUIRED',
|
|
195
|
+
`description` TEXT NULL,
|
|
196
|
+
`expiryDays` INTEGER NULL,
|
|
197
|
+
`minFiles` INTEGER NULL,
|
|
198
|
+
`maxFiles` INTEGER NULL,
|
|
199
|
+
`allowedMimeTypes` VARCHAR(191) NULL,
|
|
200
|
+
`validationRules` JSON NULL,
|
|
201
|
+
`priority` INTEGER NOT NULL DEFAULT 100,
|
|
202
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
203
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
204
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
205
|
+
|
|
206
|
+
INDEX `bank_document_requirements_tenantId_idx`(`tenantId`),
|
|
207
|
+
INDEX `bank_document_requirements_organizationId_idx`(`organizationId`),
|
|
208
|
+
INDEX `bank_document_requirements_phaseId_idx`(`phaseId`),
|
|
209
|
+
INDEX `bank_document_requirements_documentType_idx`(`documentType`),
|
|
210
|
+
UNIQUE INDEX `bank_document_requirements_organizationId_phaseId_documentTy_key`(`organizationId`, `phaseId`, `documentType`),
|
|
211
|
+
PRIMARY KEY (`id`)
|
|
212
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
213
|
+
|
|
214
|
+
-- CreateTable
|
|
215
|
+
CREATE TABLE `tenants` (
|
|
216
|
+
`id` VARCHAR(191) NOT NULL,
|
|
217
|
+
`name` VARCHAR(191) NOT NULL,
|
|
218
|
+
`subdomain` VARCHAR(191) NOT NULL,
|
|
219
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
220
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
221
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
222
|
+
|
|
223
|
+
UNIQUE INDEX `tenants_subdomain_key`(`subdomain`),
|
|
224
|
+
INDEX `tenants_subdomain_idx`(`subdomain`),
|
|
225
|
+
PRIMARY KEY (`id`)
|
|
226
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
227
|
+
|
|
228
|
+
-- CreateTable
|
|
229
|
+
CREATE TABLE `api_keys` (
|
|
230
|
+
`id` VARCHAR(191) NOT NULL,
|
|
231
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
232
|
+
`name` VARCHAR(191) NOT NULL,
|
|
233
|
+
`description` TEXT NULL,
|
|
234
|
+
`provider` VARCHAR(191) NOT NULL,
|
|
235
|
+
`secretRef` VARCHAR(191) NOT NULL,
|
|
236
|
+
`scopes` JSON NOT NULL,
|
|
237
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
238
|
+
`expiresAt` DATETIME(3) NULL,
|
|
239
|
+
`lastUsedAt` DATETIME(3) NULL,
|
|
240
|
+
`revokedAt` DATETIME(3) NULL,
|
|
241
|
+
`revokedBy` VARCHAR(191) NULL,
|
|
242
|
+
`createdBy` VARCHAR(191) NULL,
|
|
243
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
244
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
245
|
+
|
|
246
|
+
INDEX `api_keys_tenantId_idx`(`tenantId`),
|
|
247
|
+
INDEX `api_keys_provider_idx`(`provider`),
|
|
248
|
+
INDEX `api_keys_enabled_idx`(`enabled`),
|
|
249
|
+
PRIMARY KEY (`id`)
|
|
250
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
251
|
+
|
|
252
|
+
-- CreateTable
|
|
253
|
+
CREATE TABLE `refresh_tokens` (
|
|
254
|
+
`id` VARCHAR(191) NOT NULL,
|
|
255
|
+
`jti` VARCHAR(255) NULL,
|
|
256
|
+
`token` LONGTEXT NULL,
|
|
257
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
258
|
+
`expiresAt` DATETIME(3) NOT NULL,
|
|
259
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
260
|
+
|
|
261
|
+
UNIQUE INDEX `refresh_tokens_jti_key`(`jti`),
|
|
262
|
+
INDEX `refresh_tokens_userId_idx`(`userId`),
|
|
263
|
+
INDEX `refresh_tokens_expiresAt_idx`(`expiresAt`),
|
|
264
|
+
PRIMARY KEY (`id`)
|
|
265
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
266
|
+
|
|
267
|
+
-- CreateTable
|
|
268
|
+
CREATE TABLE `password_resets` (
|
|
269
|
+
`id` VARCHAR(191) NOT NULL,
|
|
270
|
+
`token` VARCHAR(191) NOT NULL,
|
|
271
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
272
|
+
`expiresAt` DATETIME(3) NOT NULL,
|
|
273
|
+
`usedAt` DATETIME(3) NULL,
|
|
274
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
275
|
+
|
|
276
|
+
UNIQUE INDEX `password_resets_token_key`(`token`),
|
|
277
|
+
INDEX `password_resets_userId_idx`(`userId`),
|
|
278
|
+
INDEX `password_resets_expiresAt_idx`(`expiresAt`),
|
|
279
|
+
PRIMARY KEY (`id`)
|
|
280
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
281
|
+
|
|
282
|
+
-- CreateTable
|
|
283
|
+
CREATE TABLE `user_suspensions` (
|
|
284
|
+
`id` VARCHAR(191) NOT NULL,
|
|
285
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
286
|
+
`reason` VARCHAR(191) NOT NULL,
|
|
287
|
+
`suspendedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
288
|
+
`expiresAt` DATETIME(3) NULL,
|
|
289
|
+
`liftedAt` DATETIME(3) NULL,
|
|
290
|
+
|
|
291
|
+
INDEX `user_suspensions_userId_idx`(`userId`),
|
|
292
|
+
PRIMARY KEY (`id`)
|
|
293
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
294
|
+
|
|
295
|
+
-- CreateTable
|
|
296
|
+
CREATE TABLE `email_preferences` (
|
|
297
|
+
`id` VARCHAR(191) NOT NULL,
|
|
298
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
299
|
+
`marketingEmails` BOOLEAN NOT NULL DEFAULT true,
|
|
300
|
+
`transactionalEmails` BOOLEAN NOT NULL DEFAULT true,
|
|
301
|
+
`propertyAlerts` BOOLEAN NOT NULL DEFAULT true,
|
|
302
|
+
`paymentReminders` BOOLEAN NOT NULL DEFAULT true,
|
|
303
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
304
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
305
|
+
|
|
306
|
+
INDEX `email_preferences_userId_idx`(`userId`),
|
|
307
|
+
PRIMARY KEY (`id`)
|
|
308
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
309
|
+
|
|
310
|
+
-- CreateTable
|
|
311
|
+
CREATE TABLE `device_endpoints` (
|
|
312
|
+
`id` VARCHAR(191) NOT NULL,
|
|
313
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
314
|
+
`endpoint` VARCHAR(191) NOT NULL,
|
|
315
|
+
`platform` VARCHAR(191) NOT NULL,
|
|
316
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
317
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
318
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
319
|
+
|
|
320
|
+
INDEX `device_endpoints_userId_idx`(`userId`),
|
|
321
|
+
PRIMARY KEY (`id`)
|
|
322
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
323
|
+
|
|
324
|
+
-- CreateTable
|
|
325
|
+
CREATE TABLE `socials` (
|
|
326
|
+
`id` VARCHAR(191) NOT NULL,
|
|
327
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
328
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
329
|
+
`provider` VARCHAR(191) NOT NULL,
|
|
330
|
+
`socialId` VARCHAR(191) NOT NULL,
|
|
331
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
332
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
333
|
+
|
|
334
|
+
INDEX `socials_userId_idx`(`userId`),
|
|
335
|
+
INDEX `socials_tenantId_idx`(`tenantId`),
|
|
336
|
+
UNIQUE INDEX `socials_provider_socialId_key`(`provider`, `socialId`),
|
|
337
|
+
PRIMARY KEY (`id`)
|
|
338
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
339
|
+
|
|
340
|
+
-- CreateTable
|
|
341
|
+
CREATE TABLE `oauth_states` (
|
|
342
|
+
`id` VARCHAR(191) NOT NULL,
|
|
343
|
+
`state` VARCHAR(191) NOT NULL,
|
|
344
|
+
`expiresAt` DATETIME(3) NOT NULL,
|
|
345
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
346
|
+
|
|
347
|
+
UNIQUE INDEX `oauth_states_state_key`(`state`),
|
|
348
|
+
INDEX `oauth_states_state_idx`(`state`),
|
|
349
|
+
INDEX `oauth_states_expiresAt_idx`(`expiresAt`),
|
|
350
|
+
PRIMARY KEY (`id`)
|
|
351
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
352
|
+
|
|
353
|
+
-- CreateTable
|
|
354
|
+
CREATE TABLE `wallets` (
|
|
355
|
+
`id` VARCHAR(191) NOT NULL,
|
|
356
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
357
|
+
`balance` DOUBLE NOT NULL DEFAULT 0,
|
|
358
|
+
`currency` VARCHAR(191) NOT NULL DEFAULT 'USD',
|
|
359
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
360
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
361
|
+
|
|
362
|
+
INDEX `wallets_tenantId_idx`(`tenantId`),
|
|
363
|
+
PRIMARY KEY (`id`)
|
|
364
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
365
|
+
|
|
366
|
+
-- CreateTable
|
|
367
|
+
CREATE TABLE `transactions` (
|
|
368
|
+
`id` VARCHAR(191) NOT NULL,
|
|
369
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
370
|
+
`walletId` VARCHAR(191) NOT NULL,
|
|
371
|
+
`amount` DOUBLE NOT NULL,
|
|
372
|
+
`type` VARCHAR(191) NOT NULL,
|
|
373
|
+
`status` VARCHAR(191) NOT NULL,
|
|
374
|
+
`reference` VARCHAR(191) NULL,
|
|
375
|
+
`description` VARCHAR(191) NULL,
|
|
376
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
377
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
378
|
+
|
|
379
|
+
INDEX `transactions_walletId_idx`(`walletId`),
|
|
380
|
+
INDEX `transactions_tenantId_idx`(`tenantId`),
|
|
381
|
+
PRIMARY KEY (`id`)
|
|
382
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
383
|
+
|
|
384
|
+
-- CreateTable
|
|
385
|
+
CREATE TABLE `settings` (
|
|
386
|
+
`id` VARCHAR(191) NOT NULL,
|
|
387
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
388
|
+
`key` VARCHAR(191) NOT NULL,
|
|
389
|
+
`value` TEXT NOT NULL,
|
|
390
|
+
`category` VARCHAR(191) NULL,
|
|
391
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
392
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
393
|
+
|
|
394
|
+
INDEX `settings_category_idx`(`category`),
|
|
395
|
+
INDEX `settings_tenantId_idx`(`tenantId`),
|
|
396
|
+
UNIQUE INDEX `settings_tenantId_key_key`(`tenantId`, `key`),
|
|
397
|
+
PRIMARY KEY (`id`)
|
|
398
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
399
|
+
|
|
400
|
+
-- CreateTable
|
|
401
|
+
CREATE TABLE `properties` (
|
|
402
|
+
`id` VARCHAR(191) NOT NULL,
|
|
403
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
404
|
+
`userId` VARCHAR(191) NOT NULL,
|
|
405
|
+
`organizationId` VARCHAR(191) NULL,
|
|
406
|
+
`title` VARCHAR(191) NOT NULL,
|
|
407
|
+
`category` VARCHAR(191) NOT NULL,
|
|
408
|
+
`propertyType` VARCHAR(191) NOT NULL,
|
|
409
|
+
`country` VARCHAR(191) NOT NULL,
|
|
410
|
+
`currency` VARCHAR(191) NOT NULL,
|
|
411
|
+
`city` VARCHAR(191) NOT NULL,
|
|
412
|
+
`district` VARCHAR(191) NULL,
|
|
413
|
+
`zipCode` VARCHAR(191) NULL,
|
|
414
|
+
`streetAddress` VARCHAR(191) NULL,
|
|
415
|
+
`longitude` DOUBLE NULL,
|
|
416
|
+
`latitude` DOUBLE NULL,
|
|
417
|
+
`status` ENUM('DRAFT', 'PUBLISHED', 'SOLD_OUT', 'ARCHIVED') NOT NULL DEFAULT 'DRAFT',
|
|
418
|
+
`description` TEXT NULL,
|
|
419
|
+
`displayImageId` VARCHAR(191) NULL,
|
|
420
|
+
`publishedAt` DATETIME(3) NULL,
|
|
421
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
422
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
423
|
+
|
|
424
|
+
INDEX `properties_tenantId_idx`(`tenantId`),
|
|
425
|
+
INDEX `properties_userId_idx`(`userId`),
|
|
426
|
+
INDEX `properties_organizationId_idx`(`organizationId`),
|
|
427
|
+
INDEX `properties_category_idx`(`category`),
|
|
428
|
+
INDEX `properties_propertyType_idx`(`propertyType`),
|
|
429
|
+
INDEX `properties_city_idx`(`city`),
|
|
430
|
+
INDEX `properties_status_idx`(`status`),
|
|
431
|
+
PRIMARY KEY (`id`)
|
|
432
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
433
|
+
|
|
434
|
+
-- CreateTable
|
|
435
|
+
CREATE TABLE `property_media` (
|
|
436
|
+
`id` VARCHAR(191) NOT NULL,
|
|
437
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
438
|
+
`propertyId` VARCHAR(191) NOT NULL,
|
|
439
|
+
`url` VARCHAR(191) NOT NULL,
|
|
440
|
+
`type` VARCHAR(191) NOT NULL,
|
|
441
|
+
`caption` VARCHAR(191) NULL,
|
|
442
|
+
`order` INTEGER NOT NULL DEFAULT 0,
|
|
443
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
444
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
445
|
+
|
|
446
|
+
INDEX `property_media_tenantId_idx`(`tenantId`),
|
|
447
|
+
INDEX `property_media_propertyId_idx`(`propertyId`),
|
|
448
|
+
PRIMARY KEY (`id`)
|
|
449
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
450
|
+
|
|
451
|
+
-- CreateTable
|
|
452
|
+
CREATE TABLE `property_documents` (
|
|
453
|
+
`id` VARCHAR(191) NOT NULL,
|
|
454
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
455
|
+
`propertyId` VARCHAR(191) NOT NULL,
|
|
456
|
+
`name` VARCHAR(191) NOT NULL,
|
|
457
|
+
`url` VARCHAR(191) NOT NULL,
|
|
458
|
+
`type` VARCHAR(191) NOT NULL,
|
|
459
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
460
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
461
|
+
|
|
462
|
+
INDEX `property_documents_tenantId_idx`(`tenantId`),
|
|
463
|
+
INDEX `property_documents_propertyId_idx`(`propertyId`),
|
|
464
|
+
PRIMARY KEY (`id`)
|
|
465
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
466
|
+
|
|
467
|
+
-- CreateTable
|
|
468
|
+
CREATE TABLE `amenities` (
|
|
469
|
+
`id` VARCHAR(191) NOT NULL,
|
|
470
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
471
|
+
`name` VARCHAR(191) NOT NULL,
|
|
472
|
+
`category` VARCHAR(191) NULL,
|
|
473
|
+
`icon` VARCHAR(191) NULL,
|
|
474
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
475
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
476
|
+
|
|
477
|
+
INDEX `amenities_tenantId_idx`(`tenantId`),
|
|
478
|
+
INDEX `amenities_category_idx`(`category`),
|
|
479
|
+
UNIQUE INDEX `amenities_tenantId_name_key`(`tenantId`, `name`),
|
|
480
|
+
PRIMARY KEY (`id`)
|
|
481
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
482
|
+
|
|
483
|
+
-- CreateTable
|
|
484
|
+
CREATE TABLE `property_variants` (
|
|
485
|
+
`id` VARCHAR(191) NOT NULL,
|
|
486
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
487
|
+
`propertyId` VARCHAR(191) NOT NULL,
|
|
488
|
+
`name` VARCHAR(191) NOT NULL,
|
|
489
|
+
`description` TEXT NULL,
|
|
490
|
+
`nBedrooms` INTEGER NULL,
|
|
491
|
+
`nBathrooms` INTEGER NULL,
|
|
492
|
+
`nParkingSpots` INTEGER NULL,
|
|
493
|
+
`area` DOUBLE NULL,
|
|
494
|
+
`price` DOUBLE NOT NULL,
|
|
495
|
+
`pricePerSqm` DOUBLE NULL,
|
|
496
|
+
`totalUnits` INTEGER NOT NULL DEFAULT 1,
|
|
497
|
+
`availableUnits` INTEGER NOT NULL DEFAULT 1,
|
|
498
|
+
`reservedUnits` INTEGER NOT NULL DEFAULT 0,
|
|
499
|
+
`soldUnits` INTEGER NOT NULL DEFAULT 0,
|
|
500
|
+
`status` VARCHAR(191) NOT NULL DEFAULT 'AVAILABLE',
|
|
501
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
502
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
503
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
504
|
+
|
|
505
|
+
INDEX `property_variants_tenantId_idx`(`tenantId`),
|
|
506
|
+
INDEX `property_variants_propertyId_idx`(`propertyId`),
|
|
507
|
+
INDEX `property_variants_status_idx`(`status`),
|
|
508
|
+
INDEX `property_variants_price_idx`(`price`),
|
|
509
|
+
PRIMARY KEY (`id`)
|
|
510
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
511
|
+
|
|
512
|
+
-- CreateTable
|
|
513
|
+
CREATE TABLE `property_variant_amenities` (
|
|
514
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
515
|
+
`variantId` VARCHAR(191) NOT NULL,
|
|
516
|
+
`amenityId` VARCHAR(191) NOT NULL,
|
|
517
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
518
|
+
|
|
519
|
+
INDEX `property_variant_amenities_tenantId_idx`(`tenantId`),
|
|
520
|
+
PRIMARY KEY (`variantId`, `amenityId`)
|
|
521
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
522
|
+
|
|
523
|
+
-- CreateTable
|
|
524
|
+
CREATE TABLE `property_variant_media` (
|
|
525
|
+
`id` VARCHAR(191) NOT NULL,
|
|
526
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
527
|
+
`variantId` VARCHAR(191) NOT NULL,
|
|
528
|
+
`url` VARCHAR(191) NOT NULL,
|
|
529
|
+
`type` VARCHAR(191) NOT NULL,
|
|
530
|
+
`caption` VARCHAR(191) NULL,
|
|
531
|
+
`order` INTEGER NOT NULL DEFAULT 0,
|
|
532
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
533
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
534
|
+
|
|
535
|
+
INDEX `property_variant_media_tenantId_idx`(`tenantId`),
|
|
536
|
+
INDEX `property_variant_media_variantId_idx`(`variantId`),
|
|
537
|
+
PRIMARY KEY (`id`)
|
|
538
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
539
|
+
|
|
540
|
+
-- CreateTable
|
|
541
|
+
CREATE TABLE `property_units` (
|
|
542
|
+
`id` VARCHAR(191) NOT NULL,
|
|
543
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
544
|
+
`variantId` VARCHAR(191) NOT NULL,
|
|
545
|
+
`unitNumber` VARCHAR(191) NOT NULL,
|
|
546
|
+
`floorNumber` INTEGER NULL,
|
|
547
|
+
`blockName` VARCHAR(191) NULL,
|
|
548
|
+
`priceOverride` DOUBLE NULL,
|
|
549
|
+
`areaOverride` DOUBLE NULL,
|
|
550
|
+
`notes` TEXT NULL,
|
|
551
|
+
`status` VARCHAR(191) NOT NULL DEFAULT 'AVAILABLE',
|
|
552
|
+
`reservedAt` DATETIME(3) NULL,
|
|
553
|
+
`reservedUntil` DATETIME(3) NULL,
|
|
554
|
+
`reservedById` VARCHAR(191) NULL,
|
|
555
|
+
`ownerId` VARCHAR(191) NULL,
|
|
556
|
+
`version` INTEGER NOT NULL DEFAULT 0,
|
|
557
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
558
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
559
|
+
|
|
560
|
+
INDEX `property_units_tenantId_idx`(`tenantId`),
|
|
561
|
+
INDEX `property_units_variantId_idx`(`variantId`),
|
|
562
|
+
INDEX `property_units_status_idx`(`status`),
|
|
563
|
+
UNIQUE INDEX `property_units_variantId_unitNumber_key`(`variantId`, `unitNumber`),
|
|
564
|
+
PRIMARY KEY (`id`)
|
|
565
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
566
|
+
|
|
567
|
+
-- CreateTable
|
|
568
|
+
CREATE TABLE `property_amenities` (
|
|
569
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
570
|
+
`propertyId` VARCHAR(191) NOT NULL,
|
|
571
|
+
`amenityId` VARCHAR(191) NOT NULL,
|
|
572
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
573
|
+
|
|
574
|
+
INDEX `property_amenities_tenantId_idx`(`tenantId`),
|
|
575
|
+
PRIMARY KEY (`propertyId`, `amenityId`)
|
|
576
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
577
|
+
|
|
578
|
+
-- CreateTable
|
|
579
|
+
CREATE TABLE `documentation_plans` (
|
|
580
|
+
`id` VARCHAR(191) NOT NULL,
|
|
581
|
+
`tenantId` VARCHAR(191) NULL,
|
|
582
|
+
`name` VARCHAR(191) NOT NULL,
|
|
583
|
+
`description` TEXT NULL,
|
|
584
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
585
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
586
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
587
|
+
|
|
588
|
+
INDEX `documentation_plans_tenantId_idx`(`tenantId`),
|
|
589
|
+
UNIQUE INDEX `documentation_plans_tenantId_name_key`(`tenantId`, `name`),
|
|
590
|
+
PRIMARY KEY (`id`)
|
|
591
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
592
|
+
|
|
593
|
+
-- CreateTable
|
|
594
|
+
CREATE TABLE `document_definitions` (
|
|
595
|
+
`id` VARCHAR(191) NOT NULL,
|
|
596
|
+
`planId` VARCHAR(191) NOT NULL,
|
|
597
|
+
`documentType` VARCHAR(191) NOT NULL,
|
|
598
|
+
`documentName` VARCHAR(191) NOT NULL,
|
|
599
|
+
`uploadedBy` ENUM('CUSTOMER', 'LENDER', 'DEVELOPER', 'LEGAL', 'INSURER', 'PLATFORM') NOT NULL DEFAULT 'CUSTOMER',
|
|
600
|
+
`order` INTEGER NOT NULL,
|
|
601
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
602
|
+
`description` TEXT NULL,
|
|
603
|
+
`maxSizeBytes` INTEGER NULL,
|
|
604
|
+
`allowedMimeTypes` VARCHAR(191) NULL,
|
|
605
|
+
`expiryDays` INTEGER NULL,
|
|
606
|
+
`minFiles` INTEGER NOT NULL DEFAULT 1,
|
|
607
|
+
`maxFiles` INTEGER NOT NULL DEFAULT 1,
|
|
608
|
+
`condition` JSON NULL,
|
|
609
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
610
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
611
|
+
|
|
612
|
+
INDEX `document_definitions_planId_idx`(`planId`),
|
|
613
|
+
PRIMARY KEY (`id`)
|
|
614
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
615
|
+
|
|
616
|
+
-- CreateTable
|
|
617
|
+
CREATE TABLE `approval_stages` (
|
|
618
|
+
`id` VARCHAR(191) NOT NULL,
|
|
619
|
+
`planId` VARCHAR(191) NOT NULL,
|
|
620
|
+
`name` VARCHAR(191) NOT NULL,
|
|
621
|
+
`order` INTEGER NOT NULL,
|
|
622
|
+
`organizationTypeId` VARCHAR(191) NOT NULL,
|
|
623
|
+
`autoTransition` BOOLEAN NOT NULL DEFAULT false,
|
|
624
|
+
`waitForAllDocuments` BOOLEAN NOT NULL DEFAULT true,
|
|
625
|
+
`allowEarlyVisibility` BOOLEAN NOT NULL DEFAULT false,
|
|
626
|
+
`onRejection` ENUM('CASCADE_BACK', 'RESTART_CURRENT', 'RESTART_FROM_STAGE') NOT NULL DEFAULT 'CASCADE_BACK',
|
|
627
|
+
`restartFromStageOrder` INTEGER NULL,
|
|
628
|
+
`slaHours` INTEGER NULL,
|
|
629
|
+
`description` TEXT NULL,
|
|
630
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
631
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
632
|
+
|
|
633
|
+
INDEX `approval_stages_planId_idx`(`planId`),
|
|
634
|
+
INDEX `approval_stages_organizationTypeId_idx`(`organizationTypeId`),
|
|
635
|
+
UNIQUE INDEX `approval_stages_planId_order_key`(`planId`, `order`),
|
|
636
|
+
PRIMARY KEY (`id`)
|
|
637
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
638
|
+
|
|
639
|
+
-- CreateTable
|
|
640
|
+
CREATE TABLE `questionnaire_plans` (
|
|
641
|
+
`id` VARCHAR(191) NOT NULL,
|
|
642
|
+
`tenantId` VARCHAR(191) NULL,
|
|
643
|
+
`name` VARCHAR(191) NOT NULL,
|
|
644
|
+
`description` TEXT NULL,
|
|
645
|
+
`version` INTEGER NOT NULL DEFAULT 1,
|
|
646
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
647
|
+
`passingScore` INTEGER NULL,
|
|
648
|
+
`scoringStrategy` ENUM('SUM', 'AVERAGE', 'WEIGHTED_SUM', 'MIN_ALL', 'CUSTOM') NOT NULL DEFAULT 'SUM',
|
|
649
|
+
`autoDecisionEnabled` BOOLEAN NOT NULL DEFAULT false,
|
|
650
|
+
`estimatedMinutes` INTEGER NULL,
|
|
651
|
+
`category` ENUM('PREQUALIFICATION', 'AFFORDABILITY', 'PROPERTY_INTENT', 'RISK_ASSESSMENT', 'COMPLIANCE', 'CUSTOM') NOT NULL DEFAULT 'PREQUALIFICATION',
|
|
652
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
653
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
654
|
+
|
|
655
|
+
INDEX `questionnaire_plans_tenantId_idx`(`tenantId`),
|
|
656
|
+
INDEX `questionnaire_plans_category_idx`(`category`),
|
|
657
|
+
UNIQUE INDEX `questionnaire_plans_tenantId_name_version_key`(`tenantId`, `name`, `version`),
|
|
658
|
+
PRIMARY KEY (`id`)
|
|
659
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
660
|
+
|
|
661
|
+
-- CreateTable
|
|
662
|
+
CREATE TABLE `questionnaire_plan_questions` (
|
|
663
|
+
`id` VARCHAR(191) NOT NULL,
|
|
664
|
+
`questionnairePlanId` VARCHAR(191) NOT NULL,
|
|
665
|
+
`questionKey` VARCHAR(191) NOT NULL,
|
|
666
|
+
`questionText` TEXT NOT NULL,
|
|
667
|
+
`helpText` TEXT NULL,
|
|
668
|
+
`questionType` ENUM('TEXT', 'NUMBER', 'CURRENCY', 'DATE', 'SELECT', 'MULTI_SELECT', 'RADIO', 'CHECKBOX', 'FILE_UPLOAD', 'PHONE', 'EMAIL', 'ADDRESS', 'PERCENTAGE', 'YEARS_MONTHS') NOT NULL,
|
|
669
|
+
`order` INTEGER NOT NULL,
|
|
670
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
671
|
+
`validationRules` JSON NULL,
|
|
672
|
+
`options` JSON NULL,
|
|
673
|
+
`scoreWeight` INTEGER NOT NULL DEFAULT 1,
|
|
674
|
+
`scoringRules` JSON NULL,
|
|
675
|
+
`showIf` JSON NULL,
|
|
676
|
+
`category` ENUM('ELIGIBILITY', 'EMPLOYMENT', 'INCOME', 'AFFORDABILITY', 'EXPENSES', 'APPLICATION_TYPE', 'PERSONAL', 'PREFERENCES', 'PROPERTY', 'CREDIT', 'ASSETS', 'CUSTOM') NULL,
|
|
677
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
678
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
679
|
+
|
|
680
|
+
INDEX `questionnaire_plan_questions_questionnairePlanId_idx`(`questionnairePlanId`),
|
|
681
|
+
UNIQUE INDEX `questionnaire_plan_questions_questionnairePlanId_questionKey_key`(`questionnairePlanId`, `questionKey`),
|
|
682
|
+
PRIMARY KEY (`id`)
|
|
683
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
684
|
+
|
|
685
|
+
-- CreateTable
|
|
686
|
+
CREATE TABLE `payment_plans` (
|
|
687
|
+
`id` VARCHAR(191) NOT NULL,
|
|
688
|
+
`tenantId` VARCHAR(191) NULL,
|
|
689
|
+
`name` VARCHAR(191) NOT NULL,
|
|
690
|
+
`description` TEXT NULL,
|
|
691
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
692
|
+
`paymentFrequency` ENUM('MONTHLY', 'BIWEEKLY', 'WEEKLY', 'ONE_TIME', 'CUSTOM') NOT NULL,
|
|
693
|
+
`customFrequencyDays` INTEGER NULL,
|
|
694
|
+
`numberOfInstallments` INTEGER NULL,
|
|
695
|
+
`calculateInterestDaily` BOOLEAN NOT NULL DEFAULT false,
|
|
696
|
+
`gracePeriodDays` INTEGER NOT NULL DEFAULT 0,
|
|
697
|
+
`allowFlexibleTerm` BOOLEAN NOT NULL DEFAULT false,
|
|
698
|
+
`minTermMonths` INTEGER NULL,
|
|
699
|
+
`maxTermMonths` INTEGER NULL,
|
|
700
|
+
`termStepMonths` INTEGER NULL,
|
|
701
|
+
`maxAgeAtMaturity` INTEGER NULL,
|
|
702
|
+
`collectFunds` BOOLEAN NOT NULL DEFAULT true,
|
|
703
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
704
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
705
|
+
|
|
706
|
+
INDEX `payment_plans_tenantId_idx`(`tenantId`),
|
|
707
|
+
UNIQUE INDEX `payment_plans_tenantId_name_key`(`tenantId`, `name`),
|
|
708
|
+
PRIMARY KEY (`id`)
|
|
709
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
710
|
+
|
|
711
|
+
-- CreateTable
|
|
712
|
+
CREATE TABLE `property_payment_methods` (
|
|
713
|
+
`id` VARCHAR(191) NOT NULL,
|
|
714
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
715
|
+
`name` VARCHAR(191) NOT NULL,
|
|
716
|
+
`description` TEXT NULL,
|
|
717
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
718
|
+
`allowEarlyPayoff` BOOLEAN NOT NULL DEFAULT true,
|
|
719
|
+
`earlyPayoffPenaltyRate` DOUBLE NULL,
|
|
720
|
+
`autoActivatePhases` BOOLEAN NOT NULL DEFAULT true,
|
|
721
|
+
`requiresManualApproval` BOOLEAN NOT NULL DEFAULT false,
|
|
722
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
723
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
724
|
+
|
|
725
|
+
INDEX `property_payment_methods_tenantId_idx`(`tenantId`),
|
|
726
|
+
UNIQUE INDEX `property_payment_methods_tenantId_name_key`(`tenantId`, `name`),
|
|
727
|
+
PRIMARY KEY (`id`)
|
|
728
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
729
|
+
|
|
730
|
+
-- CreateTable
|
|
731
|
+
CREATE TABLE `property_payment_method_links` (
|
|
732
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
733
|
+
`propertyId` VARCHAR(191) NOT NULL,
|
|
734
|
+
`paymentMethodId` VARCHAR(191) NOT NULL,
|
|
735
|
+
`isDefault` BOOLEAN NOT NULL DEFAULT false,
|
|
736
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
737
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
738
|
+
|
|
739
|
+
INDEX `property_payment_method_links_tenantId_idx`(`tenantId`),
|
|
740
|
+
PRIMARY KEY (`propertyId`, `paymentMethodId`)
|
|
741
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
742
|
+
|
|
743
|
+
-- CreateTable
|
|
744
|
+
CREATE TABLE `property_payment_method_phases` (
|
|
745
|
+
`id` VARCHAR(191) NOT NULL,
|
|
746
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
747
|
+
`paymentMethodId` VARCHAR(191) NOT NULL,
|
|
748
|
+
`paymentPlanId` VARCHAR(191) NULL,
|
|
749
|
+
`documentationPlanId` VARCHAR(191) NULL,
|
|
750
|
+
`questionnairePlanId` VARCHAR(191) NULL,
|
|
751
|
+
`name` VARCHAR(191) NOT NULL,
|
|
752
|
+
`description` TEXT NULL,
|
|
753
|
+
`phaseCategory` ENUM('QUESTIONNAIRE', 'DOCUMENTATION', 'PAYMENT') NOT NULL,
|
|
754
|
+
`phaseType` ENUM('PRE_APPROVAL', 'UNDERWRITING', 'KYC', 'VERIFICATION', 'DOWNPAYMENT', 'MORTGAGE', 'BALLOON', 'CUSTOM') NOT NULL,
|
|
755
|
+
`order` INTEGER NOT NULL,
|
|
756
|
+
`interestRate` DOUBLE NULL,
|
|
757
|
+
`percentOfPrice` DOUBLE NULL,
|
|
758
|
+
`collectFunds` BOOLEAN NULL,
|
|
759
|
+
`requiresPreviousPhaseCompletion` BOOLEAN NOT NULL DEFAULT true,
|
|
760
|
+
`minimumCompletionPercentage` DOUBLE NULL,
|
|
761
|
+
`completionCriterion` ENUM('DOCUMENT_APPROVALS', 'PAYMENT_AMOUNT', 'STEPS_COMPLETED') NULL,
|
|
762
|
+
`lockUnitOnComplete` BOOLEAN NOT NULL DEFAULT false,
|
|
763
|
+
`stepDefinitionsSnapshot` JSON NULL,
|
|
764
|
+
`requiredDocumentSnapshot` JSON NULL,
|
|
765
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
766
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
767
|
+
|
|
768
|
+
INDEX `property_payment_method_phases_tenantId_idx`(`tenantId`),
|
|
769
|
+
INDEX `property_payment_method_phases_paymentMethodId_idx`(`paymentMethodId`),
|
|
770
|
+
INDEX `property_payment_method_phases_paymentPlanId_idx`(`paymentPlanId`),
|
|
771
|
+
INDEX `property_payment_method_phases_documentationPlanId_idx`(`documentationPlanId`),
|
|
772
|
+
INDEX `property_payment_method_phases_questionnairePlanId_idx`(`questionnairePlanId`),
|
|
773
|
+
INDEX `property_payment_method_phases_phaseCategory_idx`(`phaseCategory`),
|
|
774
|
+
UNIQUE INDEX `property_payment_method_phases_paymentMethodId_order_key`(`paymentMethodId`, `order`),
|
|
775
|
+
PRIMARY KEY (`id`)
|
|
776
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
777
|
+
|
|
778
|
+
-- CreateTable
|
|
779
|
+
CREATE TABLE `phase_event_attachments` (
|
|
780
|
+
`id` VARCHAR(191) NOT NULL,
|
|
781
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
782
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
783
|
+
`trigger` ENUM('ON_ACTIVATE', 'ON_COMPLETE', 'ON_CANCEL', 'ON_PAYMENT_RECEIVED', 'ON_ALL_PAYMENTS_RECEIVED') NOT NULL,
|
|
784
|
+
`handlerId` VARCHAR(191) NOT NULL,
|
|
785
|
+
`priority` INTEGER NOT NULL DEFAULT 100,
|
|
786
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
787
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
788
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
789
|
+
|
|
790
|
+
INDEX `phase_event_attachments_tenantId_idx`(`tenantId`),
|
|
791
|
+
INDEX `phase_event_attachments_phaseId_idx`(`phaseId`),
|
|
792
|
+
INDEX `phase_event_attachments_handlerId_idx`(`handlerId`),
|
|
793
|
+
UNIQUE INDEX `phase_event_attachments_phaseId_handlerId_trigger_key`(`phaseId`, `handlerId`, `trigger`),
|
|
794
|
+
PRIMARY KEY (`id`)
|
|
795
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
796
|
+
|
|
797
|
+
-- CreateTable
|
|
798
|
+
CREATE TABLE `payment_method_phase_steps` (
|
|
799
|
+
`id` VARCHAR(191) NOT NULL,
|
|
800
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
801
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
802
|
+
`name` VARCHAR(191) NOT NULL,
|
|
803
|
+
`stepType` ENUM('UPLOAD', 'REVIEW', 'SIGNATURE', 'APPROVAL', 'EXTERNAL_CHECK', 'WAIT', 'GENERATE_DOCUMENT', 'PRE_APPROVAL', 'UNDERWRITING', 'GATE') NOT NULL,
|
|
804
|
+
`order` INTEGER NOT NULL,
|
|
805
|
+
`metadata` JSON NULL,
|
|
806
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
807
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
808
|
+
|
|
809
|
+
INDEX `payment_method_phase_steps_tenantId_idx`(`tenantId`),
|
|
810
|
+
INDEX `payment_method_phase_steps_phaseId_idx`(`phaseId`),
|
|
811
|
+
UNIQUE INDEX `payment_method_phase_steps_phaseId_order_key`(`phaseId`, `order`),
|
|
812
|
+
PRIMARY KEY (`id`)
|
|
813
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
814
|
+
|
|
815
|
+
-- CreateTable
|
|
816
|
+
CREATE TABLE `step_event_attachments` (
|
|
817
|
+
`id` VARCHAR(191) NOT NULL,
|
|
818
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
819
|
+
`stepId` VARCHAR(191) NOT NULL,
|
|
820
|
+
`trigger` ENUM('ON_COMPLETE', 'ON_REJECT', 'ON_SUBMIT', 'ON_RESUBMIT', 'ON_START') NOT NULL,
|
|
821
|
+
`handlerId` VARCHAR(191) NOT NULL,
|
|
822
|
+
`priority` INTEGER NOT NULL DEFAULT 100,
|
|
823
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
824
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
825
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
826
|
+
|
|
827
|
+
INDEX `step_event_attachments_tenantId_idx`(`tenantId`),
|
|
828
|
+
INDEX `step_event_attachments_stepId_idx`(`stepId`),
|
|
829
|
+
INDEX `step_event_attachments_handlerId_idx`(`handlerId`),
|
|
830
|
+
UNIQUE INDEX `step_event_attachments_stepId_handlerId_trigger_key`(`stepId`, `handlerId`, `trigger`),
|
|
831
|
+
PRIMARY KEY (`id`)
|
|
832
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
833
|
+
|
|
834
|
+
-- CreateTable
|
|
835
|
+
CREATE TABLE `payment_method_phase_documents` (
|
|
836
|
+
`id` VARCHAR(191) NOT NULL,
|
|
837
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
838
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
839
|
+
`documentType` VARCHAR(191) NOT NULL,
|
|
840
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
841
|
+
`description` TEXT NULL,
|
|
842
|
+
`allowedMimeTypes` VARCHAR(191) NULL,
|
|
843
|
+
`maxSizeBytes` INTEGER NULL,
|
|
844
|
+
`metadata` JSON NULL,
|
|
845
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
846
|
+
|
|
847
|
+
INDEX `payment_method_phase_documents_tenantId_idx`(`tenantId`),
|
|
848
|
+
INDEX `payment_method_phase_documents_phaseId_documentType_idx`(`phaseId`, `documentType`),
|
|
849
|
+
PRIMARY KEY (`id`)
|
|
850
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
851
|
+
|
|
852
|
+
-- CreateTable
|
|
853
|
+
CREATE TABLE `payment_method_phase_fields` (
|
|
854
|
+
`id` VARCHAR(191) NOT NULL,
|
|
855
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
856
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
857
|
+
`name` VARCHAR(191) NOT NULL,
|
|
858
|
+
`label` VARCHAR(191) NOT NULL,
|
|
859
|
+
`description` TEXT NULL,
|
|
860
|
+
`placeholder` VARCHAR(191) NULL,
|
|
861
|
+
`fieldType` ENUM('TEXT', 'TEXTAREA', 'NUMBER', 'CURRENCY', 'EMAIL', 'PHONE', 'DATE', 'SELECT', 'MULTI_SELECT', 'CHECKBOX', 'RADIO', 'FILE') NOT NULL,
|
|
862
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
863
|
+
`order` INTEGER NOT NULL,
|
|
864
|
+
`validation` JSON NULL,
|
|
865
|
+
`displayCondition` JSON NULL,
|
|
866
|
+
`defaultValue` JSON NULL,
|
|
867
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
868
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
869
|
+
|
|
870
|
+
INDEX `payment_method_phase_fields_tenantId_idx`(`tenantId`),
|
|
871
|
+
INDEX `payment_method_phase_fields_phaseId_idx`(`phaseId`),
|
|
872
|
+
UNIQUE INDEX `payment_method_phase_fields_phaseId_name_key`(`phaseId`, `name`),
|
|
873
|
+
PRIMARY KEY (`id`)
|
|
874
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
875
|
+
|
|
876
|
+
-- CreateTable
|
|
877
|
+
CREATE TABLE `applications` (
|
|
878
|
+
`id` VARCHAR(191) NOT NULL,
|
|
879
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
880
|
+
`propertyUnitId` VARCHAR(191) NOT NULL,
|
|
881
|
+
`buyerId` VARCHAR(191) NOT NULL,
|
|
882
|
+
`sellerId` VARCHAR(191) NULL,
|
|
883
|
+
`paymentMethodId` VARCHAR(191) NULL,
|
|
884
|
+
`paymentMethodSnapshot` JSON NULL,
|
|
885
|
+
`paymentMethodSnapshotAt` DATETIME(3) NULL,
|
|
886
|
+
`paymentMethodSnapshotHash` VARCHAR(191) NULL,
|
|
887
|
+
`applicationNumber` VARCHAR(191) NOT NULL,
|
|
888
|
+
`title` VARCHAR(191) NOT NULL,
|
|
889
|
+
`description` TEXT NULL,
|
|
890
|
+
`applicationType` VARCHAR(191) NOT NULL,
|
|
891
|
+
`totalAmount` DOUBLE NOT NULL,
|
|
892
|
+
`status` ENUM('DRAFT', 'PENDING', 'ACTIVE', 'COMPLETED', 'CANCELLED', 'TERMINATED', 'TRANSFERRED', 'SUPERSEDED') NOT NULL DEFAULT 'DRAFT',
|
|
893
|
+
`currentPhaseId` VARCHAR(191) NULL,
|
|
894
|
+
`nextPaymentDueDate` DATETIME(3) NULL,
|
|
895
|
+
`lastReminderSentAt` DATETIME(3) NULL,
|
|
896
|
+
`startDate` DATETIME(3) NULL,
|
|
897
|
+
`endDate` DATETIME(3) NULL,
|
|
898
|
+
`signedAt` DATETIME(3) NULL,
|
|
899
|
+
`terminatedAt` DATETIME(3) NULL,
|
|
900
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
901
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
902
|
+
`transferredFromId` VARCHAR(191) NULL,
|
|
903
|
+
`supersededById` VARCHAR(191) NULL,
|
|
904
|
+
`supersededAt` DATETIME(3) NULL,
|
|
905
|
+
|
|
906
|
+
UNIQUE INDEX `applications_applicationNumber_key`(`applicationNumber`),
|
|
907
|
+
UNIQUE INDEX `applications_transferredFromId_key`(`transferredFromId`),
|
|
908
|
+
INDEX `applications_tenantId_idx`(`tenantId`),
|
|
909
|
+
INDEX `applications_propertyUnitId_idx`(`propertyUnitId`),
|
|
910
|
+
INDEX `applications_buyerId_idx`(`buyerId`),
|
|
911
|
+
INDEX `applications_sellerId_idx`(`sellerId`),
|
|
912
|
+
INDEX `applications_paymentMethodId_idx`(`paymentMethodId`),
|
|
913
|
+
INDEX `applications_status_idx`(`status`),
|
|
914
|
+
INDEX `applications_currentPhaseId_idx`(`currentPhaseId`),
|
|
915
|
+
INDEX `applications_supersededById_idx`(`supersededById`),
|
|
916
|
+
PRIMARY KEY (`id`)
|
|
917
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
918
|
+
|
|
919
|
+
-- CreateTable
|
|
920
|
+
CREATE TABLE `application_organizations` (
|
|
921
|
+
`id` VARCHAR(191) NOT NULL,
|
|
922
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
923
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
924
|
+
`organizationId` VARCHAR(191) NOT NULL,
|
|
925
|
+
`assignedAsTypeId` VARCHAR(191) NOT NULL,
|
|
926
|
+
`status` ENUM('PENDING', 'ACTIVE', 'COMPLETED', 'DECLINED', 'WITHDRAWN') NOT NULL DEFAULT 'PENDING',
|
|
927
|
+
`assignedById` VARCHAR(191) NULL,
|
|
928
|
+
`assignedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
929
|
+
`isPrimary` BOOLEAN NOT NULL DEFAULT false,
|
|
930
|
+
`offeredTerms` JSON NULL,
|
|
931
|
+
`termsOfferedAt` DATETIME(3) NULL,
|
|
932
|
+
`termsAcceptedAt` DATETIME(3) NULL,
|
|
933
|
+
`termsDeclinedAt` DATETIME(3) NULL,
|
|
934
|
+
`declineReason` TEXT NULL,
|
|
935
|
+
`activatedAt` DATETIME(3) NULL,
|
|
936
|
+
`completedAt` DATETIME(3) NULL,
|
|
937
|
+
`withdrawnAt` DATETIME(3) NULL,
|
|
938
|
+
`slaHours` INTEGER NULL,
|
|
939
|
+
`slaStartedAt` DATETIME(3) NULL,
|
|
940
|
+
`slaBreachedAt` DATETIME(3) NULL,
|
|
941
|
+
`slaBreachNotified` BOOLEAN NOT NULL DEFAULT false,
|
|
942
|
+
`reminderCount` INTEGER NOT NULL DEFAULT 0,
|
|
943
|
+
`lastReminderSentAt` DATETIME(3) NULL,
|
|
944
|
+
`nextReminderAt` DATETIME(3) NULL,
|
|
945
|
+
`escalatedAt` DATETIME(3) NULL,
|
|
946
|
+
`escalatedToUserId` VARCHAR(191) NULL,
|
|
947
|
+
`escalationNotes` TEXT NULL,
|
|
948
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
949
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
950
|
+
|
|
951
|
+
INDEX `application_organizations_tenantId_idx`(`tenantId`),
|
|
952
|
+
INDEX `application_organizations_applicationId_idx`(`applicationId`),
|
|
953
|
+
INDEX `application_organizations_organizationId_idx`(`organizationId`),
|
|
954
|
+
INDEX `application_organizations_assignedAsTypeId_idx`(`assignedAsTypeId`),
|
|
955
|
+
INDEX `application_organizations_status_idx`(`status`),
|
|
956
|
+
INDEX `application_organizations_isPrimary_idx`(`isPrimary`),
|
|
957
|
+
INDEX `application_organizations_slaBreachedAt_idx`(`slaBreachedAt`),
|
|
958
|
+
UNIQUE INDEX `application_organizations_applicationId_assignedAsTypeId_key`(`applicationId`, `assignedAsTypeId`),
|
|
959
|
+
PRIMARY KEY (`id`)
|
|
960
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
961
|
+
|
|
962
|
+
-- CreateTable
|
|
963
|
+
CREATE TABLE `application_refunds` (
|
|
964
|
+
`id` VARCHAR(191) NOT NULL,
|
|
965
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
966
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
967
|
+
`amount` DOUBLE NOT NULL,
|
|
968
|
+
`reason` TEXT NOT NULL,
|
|
969
|
+
`status` ENUM('PENDING', 'APPROVED', 'REJECTED', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED') NOT NULL DEFAULT 'PENDING',
|
|
970
|
+
`requestedById` VARCHAR(191) NOT NULL,
|
|
971
|
+
`approvedById` VARCHAR(191) NULL,
|
|
972
|
+
`processedById` VARCHAR(191) NULL,
|
|
973
|
+
`paymentMethod` VARCHAR(191) NULL,
|
|
974
|
+
`referenceNumber` VARCHAR(191) NULL,
|
|
975
|
+
`recipientName` VARCHAR(191) NULL,
|
|
976
|
+
`recipientAccount` VARCHAR(191) NULL,
|
|
977
|
+
`recipientBank` VARCHAR(191) NULL,
|
|
978
|
+
`requestedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
979
|
+
`approvedAt` DATETIME(3) NULL,
|
|
980
|
+
`rejectedAt` DATETIME(3) NULL,
|
|
981
|
+
`processedAt` DATETIME(3) NULL,
|
|
982
|
+
`approvalNotes` TEXT NULL,
|
|
983
|
+
`rejectionNotes` TEXT NULL,
|
|
984
|
+
`processingNotes` TEXT NULL,
|
|
985
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
986
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
987
|
+
|
|
988
|
+
INDEX `application_refunds_applicationId_idx`(`applicationId`),
|
|
989
|
+
INDEX `application_refunds_status_idx`(`status`),
|
|
990
|
+
INDEX `application_refunds_tenantId_idx`(`tenantId`),
|
|
991
|
+
INDEX `application_refunds_requestedById_idx`(`requestedById`),
|
|
992
|
+
PRIMARY KEY (`id`)
|
|
993
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
994
|
+
|
|
995
|
+
-- CreateTable
|
|
996
|
+
CREATE TABLE `application_phases` (
|
|
997
|
+
`id` VARCHAR(191) NOT NULL,
|
|
998
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
999
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1000
|
+
`phaseTemplateId` VARCHAR(191) NULL,
|
|
1001
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1002
|
+
`description` TEXT NULL,
|
|
1003
|
+
`phaseCategory` ENUM('QUESTIONNAIRE', 'DOCUMENTATION', 'PAYMENT') NOT NULL,
|
|
1004
|
+
`phaseType` ENUM('PRE_APPROVAL', 'UNDERWRITING', 'KYC', 'VERIFICATION', 'DOWNPAYMENT', 'MORTGAGE', 'BALLOON', 'CUSTOM') NOT NULL,
|
|
1005
|
+
`order` INTEGER NOT NULL,
|
|
1006
|
+
`status` ENUM('PENDING', 'IN_PROGRESS', 'AWAITING_APPROVAL', 'ACTIVE', 'COMPLETED', 'SKIPPED', 'FAILED', 'SUPERSEDED') NOT NULL DEFAULT 'PENDING',
|
|
1007
|
+
`dueDate` DATETIME(3) NULL,
|
|
1008
|
+
`startDate` DATETIME(3) NULL,
|
|
1009
|
+
`endDate` DATETIME(3) NULL,
|
|
1010
|
+
`activatedAt` DATETIME(3) NULL,
|
|
1011
|
+
`completedAt` DATETIME(3) NULL,
|
|
1012
|
+
`requiresPreviousPhaseCompletion` BOOLEAN NOT NULL DEFAULT true,
|
|
1013
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1014
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1015
|
+
|
|
1016
|
+
INDEX `application_phases_tenantId_idx`(`tenantId`),
|
|
1017
|
+
INDEX `application_phases_applicationId_idx`(`applicationId`),
|
|
1018
|
+
INDEX `application_phases_phaseTemplateId_idx`(`phaseTemplateId`),
|
|
1019
|
+
INDEX `application_phases_phaseCategory_idx`(`phaseCategory`),
|
|
1020
|
+
INDEX `application_phases_status_idx`(`status`),
|
|
1021
|
+
INDEX `application_phases_order_idx`(`order`),
|
|
1022
|
+
PRIMARY KEY (`id`)
|
|
1023
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1024
|
+
|
|
1025
|
+
-- CreateTable
|
|
1026
|
+
CREATE TABLE `questionnaire_phases` (
|
|
1027
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1028
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1029
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
1030
|
+
`questionnairePlanId` VARCHAR(191) NULL,
|
|
1031
|
+
`completedFieldsCount` INTEGER NOT NULL DEFAULT 0,
|
|
1032
|
+
`totalFieldsCount` INTEGER NOT NULL DEFAULT 0,
|
|
1033
|
+
`totalScore` INTEGER NULL,
|
|
1034
|
+
`passingScore` INTEGER NULL,
|
|
1035
|
+
`passed` BOOLEAN NULL,
|
|
1036
|
+
`scoredAt` DATETIME(3) NULL,
|
|
1037
|
+
`underwritingScore` DOUBLE NULL,
|
|
1038
|
+
`debtToIncomeRatio` DOUBLE NULL,
|
|
1039
|
+
`underwritingDecision` VARCHAR(191) NULL,
|
|
1040
|
+
`underwritingNotes` TEXT NULL,
|
|
1041
|
+
`fieldsSnapshot` JSON NULL,
|
|
1042
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1043
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1044
|
+
|
|
1045
|
+
UNIQUE INDEX `questionnaire_phases_phaseId_key`(`phaseId`),
|
|
1046
|
+
INDEX `questionnaire_phases_tenantId_idx`(`tenantId`),
|
|
1047
|
+
INDEX `questionnaire_phases_phaseId_idx`(`phaseId`),
|
|
1048
|
+
INDEX `questionnaire_phases_questionnairePlanId_idx`(`questionnairePlanId`),
|
|
1049
|
+
PRIMARY KEY (`id`)
|
|
1050
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1051
|
+
|
|
1052
|
+
-- CreateTable
|
|
1053
|
+
CREATE TABLE `questionnaire_phase_reviews` (
|
|
1054
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1055
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1056
|
+
`questionnairePhaseId` VARCHAR(191) NOT NULL,
|
|
1057
|
+
`reviewerId` VARCHAR(191) NOT NULL,
|
|
1058
|
+
`decision` ENUM('PENDING', 'APPROVED', 'REJECTED', 'CHANGES_REQUESTED', 'WAIVED') NOT NULL,
|
|
1059
|
+
`notes` TEXT NULL,
|
|
1060
|
+
`scoreAtReview` INTEGER NULL,
|
|
1061
|
+
`passedAtReview` BOOLEAN NULL,
|
|
1062
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1063
|
+
|
|
1064
|
+
INDEX `questionnaire_phase_reviews_tenantId_idx`(`tenantId`),
|
|
1065
|
+
INDEX `questionnaire_phase_reviews_questionnairePhaseId_idx`(`questionnairePhaseId`),
|
|
1066
|
+
INDEX `questionnaire_phase_reviews_reviewerId_idx`(`reviewerId`),
|
|
1067
|
+
PRIMARY KEY (`id`)
|
|
1068
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1069
|
+
|
|
1070
|
+
-- CreateTable
|
|
1071
|
+
CREATE TABLE `documentation_phases` (
|
|
1072
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1073
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1074
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
1075
|
+
`documentationPlanId` VARCHAR(191) NULL,
|
|
1076
|
+
`sourceQuestionnairePhaseId` VARCHAR(191) NULL,
|
|
1077
|
+
`currentStageOrder` INTEGER NOT NULL DEFAULT 1,
|
|
1078
|
+
`approvedDocumentsCount` INTEGER NOT NULL DEFAULT 0,
|
|
1079
|
+
`requiredDocumentsCount` INTEGER NOT NULL DEFAULT 0,
|
|
1080
|
+
`documentDefinitionsSnapshot` JSON NULL,
|
|
1081
|
+
`approvalStagesSnapshot` JSON NULL,
|
|
1082
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1083
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1084
|
+
|
|
1085
|
+
UNIQUE INDEX `documentation_phases_phaseId_key`(`phaseId`),
|
|
1086
|
+
INDEX `documentation_phases_tenantId_idx`(`tenantId`),
|
|
1087
|
+
INDEX `documentation_phases_phaseId_idx`(`phaseId`),
|
|
1088
|
+
INDEX `documentation_phases_sourceQuestionnairePhaseId_idx`(`sourceQuestionnairePhaseId`),
|
|
1089
|
+
PRIMARY KEY (`id`)
|
|
1090
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1091
|
+
|
|
1092
|
+
-- CreateTable
|
|
1093
|
+
CREATE TABLE `payment_phases` (
|
|
1094
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1095
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1096
|
+
`phaseId` VARCHAR(191) NOT NULL,
|
|
1097
|
+
`paymentPlanId` VARCHAR(191) NULL,
|
|
1098
|
+
`totalAmount` DOUBLE NOT NULL,
|
|
1099
|
+
`paidAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1100
|
+
`interestRate` DOUBLE NOT NULL DEFAULT 0,
|
|
1101
|
+
`selectedTermMonths` INTEGER NULL,
|
|
1102
|
+
`numberOfInstallments` INTEGER NULL,
|
|
1103
|
+
`collectFunds` BOOLEAN NOT NULL DEFAULT true,
|
|
1104
|
+
`minimumCompletionPercentage` DOUBLE NULL,
|
|
1105
|
+
`paymentPlanSnapshot` JSON NULL,
|
|
1106
|
+
`version` INTEGER NOT NULL DEFAULT 0,
|
|
1107
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1108
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1109
|
+
|
|
1110
|
+
UNIQUE INDEX `payment_phases_phaseId_key`(`phaseId`),
|
|
1111
|
+
INDEX `payment_phases_tenantId_idx`(`tenantId`),
|
|
1112
|
+
INDEX `payment_phases_phaseId_idx`(`phaseId`),
|
|
1113
|
+
INDEX `payment_phases_paymentPlanId_idx`(`paymentPlanId`),
|
|
1114
|
+
PRIMARY KEY (`id`)
|
|
1115
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1116
|
+
|
|
1117
|
+
-- CreateTable
|
|
1118
|
+
CREATE TABLE `questionnaire_fields` (
|
|
1119
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1120
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1121
|
+
`questionnairePhaseId` VARCHAR(191) NOT NULL,
|
|
1122
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1123
|
+
`label` VARCHAR(191) NOT NULL,
|
|
1124
|
+
`description` TEXT NULL,
|
|
1125
|
+
`placeholder` VARCHAR(191) NULL,
|
|
1126
|
+
`fieldType` ENUM('TEXT', 'TEXTAREA', 'NUMBER', 'CURRENCY', 'EMAIL', 'PHONE', 'DATE', 'SELECT', 'MULTI_SELECT', 'CHECKBOX', 'RADIO', 'FILE') NOT NULL,
|
|
1127
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
1128
|
+
`order` INTEGER NOT NULL,
|
|
1129
|
+
`validation` JSON NULL,
|
|
1130
|
+
`displayCondition` JSON NULL,
|
|
1131
|
+
`defaultValue` JSON NULL,
|
|
1132
|
+
`answer` JSON NULL,
|
|
1133
|
+
`isValid` BOOLEAN NOT NULL DEFAULT false,
|
|
1134
|
+
`validationErrors` JSON NULL,
|
|
1135
|
+
`submittedAt` DATETIME(3) NULL,
|
|
1136
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1137
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1138
|
+
|
|
1139
|
+
INDEX `questionnaire_fields_tenantId_idx`(`tenantId`),
|
|
1140
|
+
INDEX `questionnaire_fields_questionnairePhaseId_idx`(`questionnairePhaseId`),
|
|
1141
|
+
UNIQUE INDEX `questionnaire_fields_questionnairePhaseId_name_key`(`questionnairePhaseId`, `name`),
|
|
1142
|
+
PRIMARY KEY (`id`)
|
|
1143
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1144
|
+
|
|
1145
|
+
-- CreateTable
|
|
1146
|
+
CREATE TABLE `application_events` (
|
|
1147
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1148
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1149
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1150
|
+
`eventType` ENUM('APPLICATION_CREATED', 'APPLICATION_STATE_CHANGED', 'PHASE_ACTIVATED', 'PHASE_COMPLETED', 'STEP_COMPLETED', 'STEP_REJECTED', 'DOCUMENT_SUBMITTED', 'DOCUMENT_APPROVED', 'DOCUMENT_REJECTED', 'PAYMENT_INITIATED', 'PAYMENT_COMPLETED', 'PAYMENT_FAILED', 'INSTALLMENTS_GENERATED', 'APPLICATION_SIGNED', 'APPLICATION_TERMINATED', 'APPLICATION_TRANSFERRED', 'UNDERWRITING_COMPLETED', 'OFFER_LETTER_GENERATED', 'HANDLER_EXECUTED') NOT NULL,
|
|
1151
|
+
`eventGroup` ENUM('STATE_CHANGE', 'PAYMENT', 'DOCUMENT', 'NOTIFICATION', 'WORKFLOW', 'AUTOMATION') NULL,
|
|
1152
|
+
`fromState` VARCHAR(191) NULL,
|
|
1153
|
+
`toState` VARCHAR(191) NULL,
|
|
1154
|
+
`trigger` VARCHAR(191) NULL,
|
|
1155
|
+
`data` JSON NULL,
|
|
1156
|
+
`actorId` VARCHAR(191) NULL,
|
|
1157
|
+
`actorType` ENUM('USER', 'SYSTEM', 'WEBHOOK', 'ADMIN') NULL,
|
|
1158
|
+
`occurredAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1159
|
+
|
|
1160
|
+
INDEX `application_events_tenantId_idx`(`tenantId`),
|
|
1161
|
+
INDEX `application_events_applicationId_idx`(`applicationId`),
|
|
1162
|
+
INDEX `application_events_eventType_idx`(`eventType`),
|
|
1163
|
+
INDEX `application_events_eventGroup_idx`(`eventGroup`),
|
|
1164
|
+
INDEX `application_events_occurredAt_idx`(`occurredAt`),
|
|
1165
|
+
PRIMARY KEY (`id`)
|
|
1166
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1167
|
+
|
|
1168
|
+
-- CreateTable
|
|
1169
|
+
CREATE TABLE `payment_installments` (
|
|
1170
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1171
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1172
|
+
`paymentPhaseId` VARCHAR(191) NOT NULL,
|
|
1173
|
+
`installmentNumber` INTEGER NOT NULL,
|
|
1174
|
+
`amount` DOUBLE NOT NULL,
|
|
1175
|
+
`principalAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1176
|
+
`interestAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1177
|
+
`dueDate` DATETIME(3) NOT NULL,
|
|
1178
|
+
`status` ENUM('PENDING', 'PAID', 'OVERDUE', 'PARTIALLY_PAID', 'WAIVED') NOT NULL DEFAULT 'PENDING',
|
|
1179
|
+
`paidAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1180
|
+
`paidDate` DATETIME(3) NULL,
|
|
1181
|
+
`lateFee` DOUBLE NOT NULL DEFAULT 0,
|
|
1182
|
+
`lateFeeWaived` BOOLEAN NOT NULL DEFAULT false,
|
|
1183
|
+
`gracePeriodDays` INTEGER NOT NULL DEFAULT 0,
|
|
1184
|
+
`gracePeriodEndDate` DATETIME(3) NULL,
|
|
1185
|
+
`version` INTEGER NOT NULL DEFAULT 0,
|
|
1186
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1187
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1188
|
+
|
|
1189
|
+
INDEX `payment_installments_tenantId_idx`(`tenantId`),
|
|
1190
|
+
INDEX `payment_installments_paymentPhaseId_idx`(`paymentPhaseId`),
|
|
1191
|
+
INDEX `payment_installments_dueDate_idx`(`dueDate`),
|
|
1192
|
+
INDEX `payment_installments_status_idx`(`status`),
|
|
1193
|
+
PRIMARY KEY (`id`)
|
|
1194
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1195
|
+
|
|
1196
|
+
-- CreateTable
|
|
1197
|
+
CREATE TABLE `application_payments` (
|
|
1198
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1199
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1200
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1201
|
+
`phaseId` VARCHAR(191) NULL,
|
|
1202
|
+
`installmentId` VARCHAR(191) NULL,
|
|
1203
|
+
`payerId` VARCHAR(191) NULL,
|
|
1204
|
+
`amount` DOUBLE NOT NULL,
|
|
1205
|
+
`principalAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1206
|
+
`interestAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1207
|
+
`lateFeeAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1208
|
+
`paymentMethod` VARCHAR(191) NOT NULL,
|
|
1209
|
+
`status` ENUM('INITIATED', 'PENDING', 'COMPLETED', 'FAILED', 'REFUNDED') NOT NULL DEFAULT 'INITIATED',
|
|
1210
|
+
`reference` VARCHAR(191) NULL,
|
|
1211
|
+
`gatewayResponse` TEXT NULL,
|
|
1212
|
+
`processedAt` DATETIME(3) NULL,
|
|
1213
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1214
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1215
|
+
|
|
1216
|
+
UNIQUE INDEX `application_payments_reference_key`(`reference`),
|
|
1217
|
+
INDEX `application_payments_tenantId_idx`(`tenantId`),
|
|
1218
|
+
INDEX `application_payments_applicationId_idx`(`applicationId`),
|
|
1219
|
+
INDEX `application_payments_phaseId_idx`(`phaseId`),
|
|
1220
|
+
INDEX `application_payments_installmentId_idx`(`installmentId`),
|
|
1221
|
+
INDEX `application_payments_payerId_idx`(`payerId`),
|
|
1222
|
+
INDEX `application_payments_status_idx`(`status`),
|
|
1223
|
+
INDEX `application_payments_reference_idx`(`reference`),
|
|
1224
|
+
PRIMARY KEY (`id`)
|
|
1225
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1226
|
+
|
|
1227
|
+
-- CreateTable
|
|
1228
|
+
CREATE TABLE `application_documents` (
|
|
1229
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1230
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1231
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1232
|
+
`phaseId` VARCHAR(191) NULL,
|
|
1233
|
+
`stepId` VARCHAR(191) NULL,
|
|
1234
|
+
`documentType` VARCHAR(191) NULL,
|
|
1235
|
+
`documentName` VARCHAR(191) NULL,
|
|
1236
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1237
|
+
`url` VARCHAR(191) NOT NULL,
|
|
1238
|
+
`type` VARCHAR(191) NOT NULL,
|
|
1239
|
+
`uploadedById` VARCHAR(191) NULL,
|
|
1240
|
+
`expectedUploader` ENUM('CUSTOMER', 'LENDER', 'DEVELOPER', 'LEGAL', 'INSURER', 'PLATFORM') NULL,
|
|
1241
|
+
`expectedOrganizationId` VARCHAR(191) NULL,
|
|
1242
|
+
`documentDate` DATETIME(3) NULL,
|
|
1243
|
+
`expiresAt` DATETIME(3) NULL,
|
|
1244
|
+
`expiryDays` INTEGER NULL,
|
|
1245
|
+
`isExpired` BOOLEAN NOT NULL DEFAULT false,
|
|
1246
|
+
`expiredAt` DATETIME(3) NULL,
|
|
1247
|
+
`expiryWarningAt` DATETIME(3) NULL,
|
|
1248
|
+
`revalidatedAt` DATETIME(3) NULL,
|
|
1249
|
+
`status` ENUM('DRAFT', 'PENDING', 'PENDING_SIGNATURE', 'SENT', 'VIEWED', 'SIGNED', 'APPROVED', 'REJECTED', 'EXPIRED', 'CANCELLED', 'NEEDS_REUPLOAD') NOT NULL DEFAULT 'PENDING',
|
|
1250
|
+
`version` INTEGER NOT NULL DEFAULT 1,
|
|
1251
|
+
`replacesDocumentId` VARCHAR(191) NULL,
|
|
1252
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1253
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1254
|
+
|
|
1255
|
+
INDEX `application_documents_tenantId_idx`(`tenantId`),
|
|
1256
|
+
INDEX `application_documents_applicationId_idx`(`applicationId`),
|
|
1257
|
+
INDEX `application_documents_phaseId_idx`(`phaseId`),
|
|
1258
|
+
INDEX `application_documents_stepId_idx`(`stepId`),
|
|
1259
|
+
INDEX `application_documents_type_idx`(`type`),
|
|
1260
|
+
INDEX `application_documents_documentType_idx`(`documentType`),
|
|
1261
|
+
INDEX `application_documents_status_idx`(`status`),
|
|
1262
|
+
INDEX `application_documents_replacesDocumentId_idx`(`replacesDocumentId`),
|
|
1263
|
+
INDEX `application_documents_isExpired_idx`(`isExpired`),
|
|
1264
|
+
INDEX `application_documents_expiresAt_idx`(`expiresAt`),
|
|
1265
|
+
PRIMARY KEY (`id`)
|
|
1266
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1267
|
+
|
|
1268
|
+
-- CreateTable
|
|
1269
|
+
CREATE TABLE `document_reviews` (
|
|
1270
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1271
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1272
|
+
`documentId` VARCHAR(191) NOT NULL,
|
|
1273
|
+
`organizationId` VARCHAR(191) NULL,
|
|
1274
|
+
`organizationTypeId` VARCHAR(191) NULL,
|
|
1275
|
+
`reviewerId` VARCHAR(191) NULL,
|
|
1276
|
+
`reviewerName` VARCHAR(191) NULL,
|
|
1277
|
+
`decision` ENUM('PENDING', 'APPROVED', 'REJECTED', 'CHANGES_REQUESTED', 'WAIVED') NOT NULL DEFAULT 'PENDING',
|
|
1278
|
+
`comments` TEXT NULL,
|
|
1279
|
+
`concerns` JSON NULL,
|
|
1280
|
+
`requestedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1281
|
+
`dueAt` DATETIME(3) NULL,
|
|
1282
|
+
`reviewedAt` DATETIME(3) NULL,
|
|
1283
|
+
`reviewOrder` INTEGER NOT NULL DEFAULT 0,
|
|
1284
|
+
`parentReviewId` VARCHAR(191) NULL,
|
|
1285
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1286
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1287
|
+
|
|
1288
|
+
INDEX `document_reviews_tenantId_idx`(`tenantId`),
|
|
1289
|
+
INDEX `document_reviews_documentId_idx`(`documentId`),
|
|
1290
|
+
INDEX `document_reviews_organizationId_idx`(`organizationId`),
|
|
1291
|
+
INDEX `document_reviews_organizationTypeId_idx`(`organizationTypeId`),
|
|
1292
|
+
INDEX `document_reviews_decision_idx`(`decision`),
|
|
1293
|
+
INDEX `document_reviews_reviewerId_idx`(`reviewerId`),
|
|
1294
|
+
INDEX `document_reviews_parentReviewId_idx`(`parentReviewId`),
|
|
1295
|
+
UNIQUE INDEX `document_reviews_documentId_organizationId_key`(`documentId`, `organizationId`),
|
|
1296
|
+
PRIMARY KEY (`id`)
|
|
1297
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1298
|
+
|
|
1299
|
+
-- CreateTable
|
|
1300
|
+
CREATE TABLE `approval_stage_progress` (
|
|
1301
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1302
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1303
|
+
`documentationPhaseId` VARCHAR(191) NOT NULL,
|
|
1304
|
+
`approvalStageId` VARCHAR(191) NOT NULL,
|
|
1305
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1306
|
+
`order` INTEGER NOT NULL,
|
|
1307
|
+
`organizationTypeId` VARCHAR(191) NOT NULL,
|
|
1308
|
+
`autoTransition` BOOLEAN NOT NULL DEFAULT false,
|
|
1309
|
+
`waitForAllDocuments` BOOLEAN NOT NULL DEFAULT true,
|
|
1310
|
+
`allowEarlyVisibility` BOOLEAN NOT NULL DEFAULT false,
|
|
1311
|
+
`onRejection` ENUM('CASCADE_BACK', 'RESTART_CURRENT', 'RESTART_FROM_STAGE') NOT NULL DEFAULT 'CASCADE_BACK',
|
|
1312
|
+
`restartFromStageOrder` INTEGER NULL,
|
|
1313
|
+
`status` ENUM('PENDING', 'IN_PROGRESS', 'AWAITING_TRANSITION', 'COMPLETED') NOT NULL DEFAULT 'PENDING',
|
|
1314
|
+
`activatedAt` DATETIME(3) NULL,
|
|
1315
|
+
`completedAt` DATETIME(3) NULL,
|
|
1316
|
+
`completedById` VARCHAR(191) NULL,
|
|
1317
|
+
`transitionComment` TEXT NULL,
|
|
1318
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1319
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1320
|
+
|
|
1321
|
+
INDEX `approval_stage_progress_tenantId_idx`(`tenantId`),
|
|
1322
|
+
INDEX `approval_stage_progress_documentationPhaseId_idx`(`documentationPhaseId`),
|
|
1323
|
+
INDEX `approval_stage_progress_approvalStageId_idx`(`approvalStageId`),
|
|
1324
|
+
INDEX `approval_stage_progress_status_idx`(`status`),
|
|
1325
|
+
UNIQUE INDEX `approval_stage_progress_documentationPhaseId_order_key`(`documentationPhaseId`, `order`),
|
|
1326
|
+
PRIMARY KEY (`id`)
|
|
1327
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1328
|
+
|
|
1329
|
+
-- CreateTable
|
|
1330
|
+
CREATE TABLE `document_approvals` (
|
|
1331
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1332
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1333
|
+
`documentId` VARCHAR(191) NOT NULL,
|
|
1334
|
+
`stageProgressId` VARCHAR(191) NOT NULL,
|
|
1335
|
+
`reviewerId` VARCHAR(191) NOT NULL,
|
|
1336
|
+
`organizationTypeId` VARCHAR(191) NOT NULL,
|
|
1337
|
+
`decision` ENUM('PENDING', 'APPROVED', 'REJECTED', 'CHANGES_REQUESTED', 'WAIVED') NOT NULL,
|
|
1338
|
+
`comment` TEXT NULL,
|
|
1339
|
+
`reviewedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1340
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1341
|
+
|
|
1342
|
+
INDEX `document_approvals_tenantId_idx`(`tenantId`),
|
|
1343
|
+
INDEX `document_approvals_documentId_idx`(`documentId`),
|
|
1344
|
+
INDEX `document_approvals_stageProgressId_idx`(`stageProgressId`),
|
|
1345
|
+
INDEX `document_approvals_reviewerId_idx`(`reviewerId`),
|
|
1346
|
+
INDEX `document_approvals_organizationTypeId_idx`(`organizationTypeId`),
|
|
1347
|
+
INDEX `document_approvals_decision_idx`(`decision`),
|
|
1348
|
+
PRIMARY KEY (`id`)
|
|
1349
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1350
|
+
|
|
1351
|
+
-- CreateTable
|
|
1352
|
+
CREATE TABLE `document_templates` (
|
|
1353
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1354
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1355
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1356
|
+
`code` VARCHAR(191) NOT NULL,
|
|
1357
|
+
`description` VARCHAR(191) NULL,
|
|
1358
|
+
`version` INTEGER NOT NULL DEFAULT 1,
|
|
1359
|
+
`htmlTemplate` TEXT NOT NULL,
|
|
1360
|
+
`cssStyles` TEXT NULL,
|
|
1361
|
+
`mergeFields` JSON NULL,
|
|
1362
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
1363
|
+
`isDefault` BOOLEAN NOT NULL DEFAULT false,
|
|
1364
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1365
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1366
|
+
|
|
1367
|
+
INDEX `document_templates_tenantId_idx`(`tenantId`),
|
|
1368
|
+
INDEX `document_templates_code_idx`(`code`),
|
|
1369
|
+
UNIQUE INDEX `document_templates_tenantId_code_version_key`(`tenantId`, `code`, `version`),
|
|
1370
|
+
PRIMARY KEY (`id`)
|
|
1371
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1372
|
+
|
|
1373
|
+
-- CreateTable
|
|
1374
|
+
CREATE TABLE `offer_letters` (
|
|
1375
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1376
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1377
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1378
|
+
`templateId` VARCHAR(191) NULL,
|
|
1379
|
+
`letterNumber` VARCHAR(191) NOT NULL,
|
|
1380
|
+
`type` ENUM('PROVISIONAL', 'FINAL') NOT NULL,
|
|
1381
|
+
`status` ENUM('DRAFT', 'GENERATED', 'SENT', 'VIEWED', 'SIGNED', 'EXPIRED', 'CANCELLED') NOT NULL DEFAULT 'DRAFT',
|
|
1382
|
+
`htmlContent` TEXT NULL,
|
|
1383
|
+
`pdfUrl` VARCHAR(191) NULL,
|
|
1384
|
+
`pdfKey` VARCHAR(191) NULL,
|
|
1385
|
+
`mergeData` JSON NULL,
|
|
1386
|
+
`sentAt` DATETIME(3) NULL,
|
|
1387
|
+
`viewedAt` DATETIME(3) NULL,
|
|
1388
|
+
`signedAt` DATETIME(3) NULL,
|
|
1389
|
+
`signatureIp` VARCHAR(191) NULL,
|
|
1390
|
+
`signatureData` JSON NULL,
|
|
1391
|
+
`expiresAt` DATETIME(3) NULL,
|
|
1392
|
+
`expiredAt` DATETIME(3) NULL,
|
|
1393
|
+
`cancelledAt` DATETIME(3) NULL,
|
|
1394
|
+
`cancelReason` VARCHAR(191) NULL,
|
|
1395
|
+
`generatedById` VARCHAR(191) NULL,
|
|
1396
|
+
`sentById` VARCHAR(191) NULL,
|
|
1397
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1398
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1399
|
+
|
|
1400
|
+
UNIQUE INDEX `offer_letters_letterNumber_key`(`letterNumber`),
|
|
1401
|
+
INDEX `offer_letters_tenantId_idx`(`tenantId`),
|
|
1402
|
+
INDEX `offer_letters_applicationId_idx`(`applicationId`),
|
|
1403
|
+
INDEX `offer_letters_type_idx`(`type`),
|
|
1404
|
+
INDEX `offer_letters_status_idx`(`status`),
|
|
1405
|
+
PRIMARY KEY (`id`)
|
|
1406
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1407
|
+
|
|
1408
|
+
-- CreateTable
|
|
1409
|
+
CREATE TABLE `application_terminations` (
|
|
1410
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1411
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1412
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1413
|
+
`requestNumber` VARCHAR(191) NOT NULL,
|
|
1414
|
+
`initiatedBy` ENUM('BUYER', 'SELLER', 'ADMIN', 'SYSTEM') NOT NULL,
|
|
1415
|
+
`initiatorId` VARCHAR(191) NULL,
|
|
1416
|
+
`type` ENUM('BUYER_WITHDRAWAL', 'SELLER_WITHDRAWAL', 'MUTUAL_AGREEMENT', 'PAYMENT_DEFAULT', 'DOCUMENT_FAILURE', 'FRAUD', 'FORCE_MAJEURE', 'PROPERTY_UNAVAILABLE', 'REGULATORY', 'OTHER') NOT NULL,
|
|
1417
|
+
`reason` TEXT NULL,
|
|
1418
|
+
`supportingDocs` JSON NULL,
|
|
1419
|
+
`status` ENUM('REQUESTED', 'PENDING_REVIEW', 'PENDING_REFUND', 'REFUND_IN_PROGRESS', 'REFUND_COMPLETED', 'COMPLETED', 'REJECTED', 'CANCELLED') NOT NULL DEFAULT 'REQUESTED',
|
|
1420
|
+
`requiresApproval` BOOLEAN NOT NULL DEFAULT true,
|
|
1421
|
+
`autoApproveEligible` BOOLEAN NOT NULL DEFAULT false,
|
|
1422
|
+
`reviewedBy` VARCHAR(191) NULL,
|
|
1423
|
+
`reviewedAt` DATETIME(3) NULL,
|
|
1424
|
+
`reviewNotes` TEXT NULL,
|
|
1425
|
+
`rejectionReason` TEXT NULL,
|
|
1426
|
+
`applicationSnapshot` JSON NOT NULL,
|
|
1427
|
+
`totalApplicationAmount` DOUBLE NOT NULL,
|
|
1428
|
+
`totalPaidToDate` DOUBLE NOT NULL,
|
|
1429
|
+
`outstandingBalance` DOUBLE NOT NULL,
|
|
1430
|
+
`refundableAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1431
|
+
`penaltyAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1432
|
+
`forfeitedAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1433
|
+
`adminFeeAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1434
|
+
`netRefundAmount` DOUBLE NOT NULL DEFAULT 0,
|
|
1435
|
+
`settlementNotes` TEXT NULL,
|
|
1436
|
+
`refundStatus` ENUM('PENDING', 'APPROVED', 'REJECTED', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED') NOT NULL DEFAULT 'PENDING',
|
|
1437
|
+
`refundReference` VARCHAR(191) NULL,
|
|
1438
|
+
`refundMethod` VARCHAR(191) NULL,
|
|
1439
|
+
`refundAccountDetails` JSON NULL,
|
|
1440
|
+
`refundInitiatedAt` DATETIME(3) NULL,
|
|
1441
|
+
`refundCompletedAt` DATETIME(3) NULL,
|
|
1442
|
+
`refundFailureReason` TEXT NULL,
|
|
1443
|
+
`unitReleasedAt` DATETIME(3) NULL,
|
|
1444
|
+
`unitReservedForId` VARCHAR(191) NULL,
|
|
1445
|
+
`requestedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1446
|
+
`approvedAt` DATETIME(3) NULL,
|
|
1447
|
+
`executedAt` DATETIME(3) NULL,
|
|
1448
|
+
`completedAt` DATETIME(3) NULL,
|
|
1449
|
+
`cancelledAt` DATETIME(3) NULL,
|
|
1450
|
+
`idempotencyKey` VARCHAR(191) NULL,
|
|
1451
|
+
`metadata` JSON NULL,
|
|
1452
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1453
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1454
|
+
|
|
1455
|
+
UNIQUE INDEX `application_terminations_requestNumber_key`(`requestNumber`),
|
|
1456
|
+
UNIQUE INDEX `application_terminations_idempotencyKey_key`(`idempotencyKey`),
|
|
1457
|
+
INDEX `application_terminations_applicationId_idx`(`applicationId`),
|
|
1458
|
+
INDEX `application_terminations_tenantId_idx`(`tenantId`),
|
|
1459
|
+
INDEX `application_terminations_status_idx`(`status`),
|
|
1460
|
+
INDEX `application_terminations_type_idx`(`type`),
|
|
1461
|
+
INDEX `application_terminations_initiatorId_idx`(`initiatorId`),
|
|
1462
|
+
INDEX `application_terminations_requestedAt_idx`(`requestedAt`),
|
|
1463
|
+
PRIMARY KEY (`id`)
|
|
1464
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1465
|
+
|
|
1466
|
+
-- CreateTable
|
|
1467
|
+
CREATE TABLE `payment_method_change_requests` (
|
|
1468
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1469
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1470
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1471
|
+
`fromPaymentMethodId` VARCHAR(191) NOT NULL,
|
|
1472
|
+
`toPaymentMethodId` VARCHAR(191) NOT NULL,
|
|
1473
|
+
`requestorId` VARCHAR(191) NOT NULL,
|
|
1474
|
+
`reason` TEXT NULL,
|
|
1475
|
+
`requiredDocumentTypes` VARCHAR(191) NULL,
|
|
1476
|
+
`submittedDocuments` JSON NULL,
|
|
1477
|
+
`currentOutstanding` DOUBLE NULL,
|
|
1478
|
+
`newTermMonths` INTEGER NULL,
|
|
1479
|
+
`newInterestRate` DOUBLE NULL,
|
|
1480
|
+
`newMonthlyPayment` DOUBLE NULL,
|
|
1481
|
+
`penaltyAmount` DOUBLE NULL,
|
|
1482
|
+
`financialImpactNotes` TEXT NULL,
|
|
1483
|
+
`status` ENUM('PENDING_DOCUMENTS', 'DOCUMENTS_SUBMITTED', 'UNDER_REVIEW', 'APPROVED', 'REJECTED', 'EXECUTED', 'CANCELLED') NOT NULL DEFAULT 'PENDING_DOCUMENTS',
|
|
1484
|
+
`reviewerId` VARCHAR(191) NULL,
|
|
1485
|
+
`reviewNotes` TEXT NULL,
|
|
1486
|
+
`reviewedAt` DATETIME(3) NULL,
|
|
1487
|
+
`executedAt` DATETIME(3) NULL,
|
|
1488
|
+
`previousPhaseData` JSON NULL,
|
|
1489
|
+
`newPhaseData` JSON NULL,
|
|
1490
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1491
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1492
|
+
|
|
1493
|
+
INDEX `payment_method_change_requests_tenantId_idx`(`tenantId`),
|
|
1494
|
+
INDEX `payment_method_change_requests_applicationId_idx`(`applicationId`),
|
|
1495
|
+
INDEX `payment_method_change_requests_status_idx`(`status`),
|
|
1496
|
+
INDEX `payment_method_change_requests_requestorId_idx`(`requestorId`),
|
|
1497
|
+
PRIMARY KEY (`id`)
|
|
1498
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1499
|
+
|
|
1500
|
+
-- CreateTable
|
|
1501
|
+
CREATE TABLE `document_requirement_rules` (
|
|
1502
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1503
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1504
|
+
`context` ENUM('APPLICATION_PHASE', 'PAYMENT_METHOD_CHANGE') NOT NULL,
|
|
1505
|
+
`paymentMethodId` VARCHAR(191) NULL,
|
|
1506
|
+
`phaseType` VARCHAR(191) NULL,
|
|
1507
|
+
`fromPaymentMethodId` VARCHAR(191) NULL,
|
|
1508
|
+
`toPaymentMethodId` VARCHAR(191) NULL,
|
|
1509
|
+
`documentType` VARCHAR(191) NOT NULL,
|
|
1510
|
+
`isRequired` BOOLEAN NOT NULL DEFAULT true,
|
|
1511
|
+
`description` VARCHAR(191) NULL,
|
|
1512
|
+
`maxSizeBytes` INTEGER NULL,
|
|
1513
|
+
`allowedMimeTypes` VARCHAR(191) NULL,
|
|
1514
|
+
`expiryDays` INTEGER NULL,
|
|
1515
|
+
`requiresManualReview` BOOLEAN NOT NULL DEFAULT false,
|
|
1516
|
+
`isActive` BOOLEAN NOT NULL DEFAULT true,
|
|
1517
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1518
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1519
|
+
|
|
1520
|
+
INDEX `document_requirement_rules_tenantId_idx`(`tenantId`),
|
|
1521
|
+
INDEX `document_requirement_rules_context_idx`(`context`),
|
|
1522
|
+
INDEX `document_requirement_rules_paymentMethodId_idx`(`paymentMethodId`),
|
|
1523
|
+
INDEX `document_requirement_rules_phaseType_idx`(`phaseType`),
|
|
1524
|
+
INDEX `document_requirement_rules_fromPaymentMethodId_toPaymentMeth_idx`(`fromPaymentMethodId`, `toPaymentMethodId`),
|
|
1525
|
+
PRIMARY KEY (`id`)
|
|
1526
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1527
|
+
|
|
1528
|
+
-- CreateTable
|
|
1529
|
+
CREATE TABLE `event_channels` (
|
|
1530
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1531
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1532
|
+
`code` VARCHAR(191) NOT NULL,
|
|
1533
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1534
|
+
`description` TEXT NULL,
|
|
1535
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
1536
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1537
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1538
|
+
|
|
1539
|
+
INDEX `event_channels_tenantId_idx`(`tenantId`),
|
|
1540
|
+
UNIQUE INDEX `event_channels_tenantId_code_key`(`tenantId`, `code`),
|
|
1541
|
+
PRIMARY KEY (`id`)
|
|
1542
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1543
|
+
|
|
1544
|
+
-- CreateTable
|
|
1545
|
+
CREATE TABLE `event_types` (
|
|
1546
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1547
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1548
|
+
`channelId` VARCHAR(191) NOT NULL,
|
|
1549
|
+
`code` VARCHAR(191) NOT NULL,
|
|
1550
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1551
|
+
`description` TEXT NULL,
|
|
1552
|
+
`payloadSchema` JSON NULL,
|
|
1553
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
1554
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1555
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1556
|
+
|
|
1557
|
+
INDEX `event_types_tenantId_idx`(`tenantId`),
|
|
1558
|
+
INDEX `event_types_channelId_idx`(`channelId`),
|
|
1559
|
+
UNIQUE INDEX `event_types_tenantId_code_key`(`tenantId`, `code`),
|
|
1560
|
+
UNIQUE INDEX `event_types_channelId_code_key`(`channelId`, `code`),
|
|
1561
|
+
PRIMARY KEY (`id`)
|
|
1562
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1563
|
+
|
|
1564
|
+
-- CreateTable
|
|
1565
|
+
CREATE TABLE `event_handlers` (
|
|
1566
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1567
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1568
|
+
`eventTypeId` VARCHAR(191) NOT NULL,
|
|
1569
|
+
`name` VARCHAR(191) NOT NULL,
|
|
1570
|
+
`description` TEXT NULL,
|
|
1571
|
+
`handlerType` ENUM('SEND_EMAIL', 'SEND_SMS', 'SEND_PUSH', 'CALL_WEBHOOK', 'ADVANCE_WORKFLOW', 'RUN_AUTOMATION', 'LOCK_UNIT') NOT NULL,
|
|
1572
|
+
`config` JSON NOT NULL,
|
|
1573
|
+
`priority` INTEGER NOT NULL DEFAULT 100,
|
|
1574
|
+
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
|
1575
|
+
`maxRetries` INTEGER NOT NULL DEFAULT 3,
|
|
1576
|
+
`retryDelayMs` INTEGER NOT NULL DEFAULT 1000,
|
|
1577
|
+
`filterCondition` TEXT NULL,
|
|
1578
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1579
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1580
|
+
|
|
1581
|
+
INDEX `event_handlers_tenantId_idx`(`tenantId`),
|
|
1582
|
+
INDEX `event_handlers_eventTypeId_idx`(`eventTypeId`),
|
|
1583
|
+
INDEX `event_handlers_handlerType_idx`(`handlerType`),
|
|
1584
|
+
PRIMARY KEY (`id`)
|
|
1585
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1586
|
+
|
|
1587
|
+
-- CreateTable
|
|
1588
|
+
CREATE TABLE `domain_events` (
|
|
1589
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1590
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1591
|
+
`eventType` VARCHAR(191) NOT NULL,
|
|
1592
|
+
`aggregateType` VARCHAR(191) NOT NULL,
|
|
1593
|
+
`aggregateId` VARCHAR(191) NOT NULL,
|
|
1594
|
+
`queueName` VARCHAR(191) NOT NULL,
|
|
1595
|
+
`payload` TEXT NOT NULL,
|
|
1596
|
+
`occurredAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1597
|
+
`actorId` VARCHAR(191) NULL,
|
|
1598
|
+
`actorRole` VARCHAR(191) NULL,
|
|
1599
|
+
`status` VARCHAR(191) NOT NULL DEFAULT 'PENDING',
|
|
1600
|
+
`processedAt` DATETIME(3) NULL,
|
|
1601
|
+
`sentAt` DATETIME(3) NULL,
|
|
1602
|
+
`failureCount` INTEGER NOT NULL DEFAULT 0,
|
|
1603
|
+
`lastError` TEXT NULL,
|
|
1604
|
+
`nextRetryAt` DATETIME(3) NULL,
|
|
1605
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1606
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1607
|
+
|
|
1608
|
+
INDEX `domain_events_tenantId_idx`(`tenantId`),
|
|
1609
|
+
INDEX `domain_events_status_nextRetryAt_idx`(`status`, `nextRetryAt`),
|
|
1610
|
+
INDEX `domain_events_eventType_idx`(`eventType`),
|
|
1611
|
+
INDEX `domain_events_aggregateType_aggregateId_idx`(`aggregateType`, `aggregateId`),
|
|
1612
|
+
INDEX `domain_events_queueName_idx`(`queueName`),
|
|
1613
|
+
INDEX `domain_events_occurredAt_idx`(`occurredAt`),
|
|
1614
|
+
PRIMARY KEY (`id`)
|
|
1615
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1616
|
+
|
|
1617
|
+
-- CreateTable
|
|
1618
|
+
CREATE TABLE `property_transfer_requests` (
|
|
1619
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1620
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1621
|
+
`sourceApplicationId` VARCHAR(191) NOT NULL,
|
|
1622
|
+
`targetPropertyUnitId` VARCHAR(191) NOT NULL,
|
|
1623
|
+
`requestedById` VARCHAR(191) NOT NULL,
|
|
1624
|
+
`reviewedById` VARCHAR(191) NULL,
|
|
1625
|
+
`status` ENUM('PENDING', 'APPROVED', 'REJECTED', 'IN_PROGRESS', 'COMPLETED', 'FAILED') NOT NULL DEFAULT 'PENDING',
|
|
1626
|
+
`reason` TEXT NULL,
|
|
1627
|
+
`reviewNotes` TEXT NULL,
|
|
1628
|
+
`priceAdjustmentHandling` VARCHAR(191) NULL,
|
|
1629
|
+
`sourceTotalAmount` DOUBLE NULL,
|
|
1630
|
+
`targetTotalAmount` DOUBLE NULL,
|
|
1631
|
+
`priceAdjustment` DOUBLE NULL,
|
|
1632
|
+
`refundedAmount` DOUBLE NULL,
|
|
1633
|
+
`refundTransactionId` VARCHAR(191) NULL,
|
|
1634
|
+
`refundedAt` DATETIME(3) NULL,
|
|
1635
|
+
`targetApplicationId` VARCHAR(191) NULL,
|
|
1636
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1637
|
+
`reviewedAt` DATETIME(3) NULL,
|
|
1638
|
+
`completedAt` DATETIME(3) NULL,
|
|
1639
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1640
|
+
|
|
1641
|
+
INDEX `property_transfer_requests_tenantId_idx`(`tenantId`),
|
|
1642
|
+
INDEX `property_transfer_requests_sourceApplicationId_idx`(`sourceApplicationId`),
|
|
1643
|
+
INDEX `property_transfer_requests_targetPropertyUnitId_idx`(`targetPropertyUnitId`),
|
|
1644
|
+
INDEX `property_transfer_requests_requestedById_idx`(`requestedById`),
|
|
1645
|
+
INDEX `property_transfer_requests_status_idx`(`status`),
|
|
1646
|
+
PRIMARY KEY (`id`)
|
|
1647
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1648
|
+
|
|
1649
|
+
-- CreateTable
|
|
1650
|
+
CREATE TABLE `approval_requests` (
|
|
1651
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1652
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1653
|
+
`type` ENUM('PROPERTY_TRANSFER', 'PROPERTY_UPDATE', 'USER_WORKFLOW', 'CREDIT_CHECK', 'APPLICATION_TERMINATION', 'REFUND_APPROVAL') NOT NULL,
|
|
1654
|
+
`status` ENUM('PENDING', 'IN_REVIEW', 'APPROVED', 'REJECTED', 'CANCELLED', 'EXPIRED') NOT NULL DEFAULT 'PENDING',
|
|
1655
|
+
`priority` ENUM('LOW', 'NORMAL', 'HIGH', 'URGENT') NOT NULL DEFAULT 'NORMAL',
|
|
1656
|
+
`entityType` VARCHAR(191) NOT NULL,
|
|
1657
|
+
`entityId` VARCHAR(191) NOT NULL,
|
|
1658
|
+
`title` VARCHAR(255) NOT NULL,
|
|
1659
|
+
`description` TEXT NULL,
|
|
1660
|
+
`payload` JSON NULL,
|
|
1661
|
+
`requestedById` VARCHAR(191) NOT NULL,
|
|
1662
|
+
`assigneeId` VARCHAR(191) NULL,
|
|
1663
|
+
`reviewedById` VARCHAR(191) NULL,
|
|
1664
|
+
`reviewNotes` TEXT NULL,
|
|
1665
|
+
`decision` ENUM('APPROVED', 'REJECTED', 'REQUEST_CHANGES') NULL,
|
|
1666
|
+
`expiresAt` DATETIME(3) NULL,
|
|
1667
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1668
|
+
`assignedAt` DATETIME(3) NULL,
|
|
1669
|
+
`reviewedAt` DATETIME(3) NULL,
|
|
1670
|
+
`completedAt` DATETIME(3) NULL,
|
|
1671
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1672
|
+
|
|
1673
|
+
INDEX `approval_requests_tenantId_idx`(`tenantId`),
|
|
1674
|
+
INDEX `approval_requests_type_idx`(`type`),
|
|
1675
|
+
INDEX `approval_requests_status_idx`(`status`),
|
|
1676
|
+
INDEX `approval_requests_priority_idx`(`priority`),
|
|
1677
|
+
INDEX `approval_requests_entityType_entityId_idx`(`entityType`, `entityId`),
|
|
1678
|
+
INDEX `approval_requests_requestedById_idx`(`requestedById`),
|
|
1679
|
+
INDEX `approval_requests_assigneeId_idx`(`assigneeId`),
|
|
1680
|
+
INDEX `approval_requests_createdAt_idx`(`createdAt`),
|
|
1681
|
+
INDEX `approval_requests_type_status_idx`(`type`, `status`),
|
|
1682
|
+
PRIMARY KEY (`id`)
|
|
1683
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1684
|
+
|
|
1685
|
+
-- CreateTable
|
|
1686
|
+
CREATE TABLE `workflow_blockers` (
|
|
1687
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1688
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1689
|
+
`applicationId` VARCHAR(191) NOT NULL,
|
|
1690
|
+
`phaseId` VARCHAR(191) NULL,
|
|
1691
|
+
`stepId` VARCHAR(191) NULL,
|
|
1692
|
+
`blockerActor` ENUM('CUSTOMER', 'ADMIN', 'SYSTEM', 'EXTERNAL') NOT NULL,
|
|
1693
|
+
`blockerCategory` ENUM('UPLOAD', 'RESUBMISSION', 'SIGNATURE', 'REVIEW', 'APPROVAL', 'PAYMENT', 'PROCESSING', 'EXTERNAL_CHECK', 'QUESTIONNAIRE') NOT NULL,
|
|
1694
|
+
`urgency` ENUM('LOW', 'NORMAL', 'HIGH', 'CRITICAL') NOT NULL DEFAULT 'NORMAL',
|
|
1695
|
+
`actionRequired` VARCHAR(500) NOT NULL,
|
|
1696
|
+
`context` TEXT NULL,
|
|
1697
|
+
`expectedByDate` DATETIME(3) NULL,
|
|
1698
|
+
`isOverdue` BOOLEAN NOT NULL DEFAULT false,
|
|
1699
|
+
`overdueAt` DATETIME(3) NULL,
|
|
1700
|
+
`startedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1701
|
+
`resolvedAt` DATETIME(3) NULL,
|
|
1702
|
+
`durationMs` INTEGER NULL,
|
|
1703
|
+
`resolvedByActor` VARCHAR(191) NULL,
|
|
1704
|
+
`resolutionTrigger` VARCHAR(191) NULL,
|
|
1705
|
+
`reminderCount` INTEGER NOT NULL DEFAULT 0,
|
|
1706
|
+
`lastReminderAt` DATETIME(3) NULL,
|
|
1707
|
+
`nextReminderAt` DATETIME(3) NULL,
|
|
1708
|
+
`metadata` JSON NULL,
|
|
1709
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1710
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1711
|
+
|
|
1712
|
+
INDEX `workflow_blockers_tenantId_idx`(`tenantId`),
|
|
1713
|
+
INDEX `workflow_blockers_applicationId_idx`(`applicationId`),
|
|
1714
|
+
INDEX `workflow_blockers_phaseId_idx`(`phaseId`),
|
|
1715
|
+
INDEX `workflow_blockers_stepId_idx`(`stepId`),
|
|
1716
|
+
INDEX `workflow_blockers_blockerActor_idx`(`blockerActor`),
|
|
1717
|
+
INDEX `workflow_blockers_blockerCategory_idx`(`blockerCategory`),
|
|
1718
|
+
INDEX `workflow_blockers_urgency_idx`(`urgency`),
|
|
1719
|
+
INDEX `workflow_blockers_isOverdue_idx`(`isOverdue`),
|
|
1720
|
+
INDEX `workflow_blockers_startedAt_idx`(`startedAt`),
|
|
1721
|
+
INDEX `workflow_blockers_resolvedAt_idx`(`resolvedAt`),
|
|
1722
|
+
INDEX `workflow_blockers_tenantId_blockerActor_resolvedAt_idx`(`tenantId`, `blockerActor`, `resolvedAt`),
|
|
1723
|
+
INDEX `workflow_blockers_tenantId_blockerCategory_resolvedAt_idx`(`tenantId`, `blockerCategory`, `resolvedAt`),
|
|
1724
|
+
INDEX `workflow_blockers_tenantId_isOverdue_blockerActor_idx`(`tenantId`, `isOverdue`, `blockerActor`),
|
|
1725
|
+
PRIMARY KEY (`id`)
|
|
1726
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1727
|
+
|
|
1728
|
+
-- CreateTable
|
|
1729
|
+
CREATE TABLE `scheduled_jobs` (
|
|
1730
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1731
|
+
`tenantId` VARCHAR(191) NULL,
|
|
1732
|
+
`jobType` ENUM('DOCUMENT_EXPIRY_CHECK', 'SLA_BREACH_CHECK', 'PAYMENT_REMINDER', 'DOCUMENT_EXPIRY_WARNING') NOT NULL,
|
|
1733
|
+
`status` ENUM('PENDING', 'RUNNING', 'COMPLETED', 'FAILED', 'CANCELLED') NOT NULL DEFAULT 'PENDING',
|
|
1734
|
+
`scheduledAt` DATETIME(3) NOT NULL,
|
|
1735
|
+
`startedAt` DATETIME(3) NULL,
|
|
1736
|
+
`completedAt` DATETIME(3) NULL,
|
|
1737
|
+
`durationMs` INTEGER NULL,
|
|
1738
|
+
`parameters` JSON NULL,
|
|
1739
|
+
`itemsProcessed` INTEGER NOT NULL DEFAULT 0,
|
|
1740
|
+
`itemsAffected` INTEGER NOT NULL DEFAULT 0,
|
|
1741
|
+
`errorCount` INTEGER NOT NULL DEFAULT 0,
|
|
1742
|
+
`errors` JSON NULL,
|
|
1743
|
+
`summary` TEXT NULL,
|
|
1744
|
+
`attemptNumber` INTEGER NOT NULL DEFAULT 1,
|
|
1745
|
+
`maxAttempts` INTEGER NOT NULL DEFAULT 3,
|
|
1746
|
+
`nextRetryAt` DATETIME(3) NULL,
|
|
1747
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1748
|
+
`updatedAt` DATETIME(3) NOT NULL,
|
|
1749
|
+
|
|
1750
|
+
INDEX `scheduled_jobs_tenantId_idx`(`tenantId`),
|
|
1751
|
+
INDEX `scheduled_jobs_jobType_idx`(`jobType`),
|
|
1752
|
+
INDEX `scheduled_jobs_status_idx`(`status`),
|
|
1753
|
+
INDEX `scheduled_jobs_scheduledAt_idx`(`scheduledAt`),
|
|
1754
|
+
INDEX `scheduled_jobs_jobType_status_scheduledAt_idx`(`jobType`, `status`, `scheduledAt`),
|
|
1755
|
+
PRIMARY KEY (`id`)
|
|
1756
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1757
|
+
|
|
1758
|
+
-- CreateTable
|
|
1759
|
+
CREATE TABLE `document_expiry_warnings` (
|
|
1760
|
+
`id` VARCHAR(191) NOT NULL,
|
|
1761
|
+
`tenantId` VARCHAR(191) NOT NULL,
|
|
1762
|
+
`documentId` VARCHAR(191) NOT NULL,
|
|
1763
|
+
`expiresAt` DATETIME(3) NOT NULL,
|
|
1764
|
+
`daysUntil` INTEGER NOT NULL,
|
|
1765
|
+
`warningSent` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1766
|
+
`notificationSent` BOOLEAN NOT NULL DEFAULT false,
|
|
1767
|
+
`notificationId` VARCHAR(191) NULL,
|
|
1768
|
+
`resolved` BOOLEAN NOT NULL DEFAULT false,
|
|
1769
|
+
`resolvedAt` DATETIME(3) NULL,
|
|
1770
|
+
`resolvedBy` VARCHAR(191) NULL,
|
|
1771
|
+
`newDocumentId` VARCHAR(191) NULL,
|
|
1772
|
+
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
1773
|
+
|
|
1774
|
+
INDEX `document_expiry_warnings_tenantId_idx`(`tenantId`),
|
|
1775
|
+
INDEX `document_expiry_warnings_documentId_idx`(`documentId`),
|
|
1776
|
+
INDEX `document_expiry_warnings_expiresAt_idx`(`expiresAt`),
|
|
1777
|
+
INDEX `document_expiry_warnings_resolved_idx`(`resolved`),
|
|
1778
|
+
UNIQUE INDEX `document_expiry_warnings_documentId_daysUntil_key`(`documentId`, `daysUntil`),
|
|
1779
|
+
PRIMARY KEY (`id`)
|
|
1780
|
+
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
1781
|
+
|
|
1782
|
+
-- AddForeignKey
|
|
1783
|
+
ALTER TABLE `organization_types` ADD CONSTRAINT `organization_types_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1784
|
+
|
|
1785
|
+
-- AddForeignKey
|
|
1786
|
+
ALTER TABLE `organization_type_assignments` ADD CONSTRAINT `organization_type_assignments_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1787
|
+
|
|
1788
|
+
-- AddForeignKey
|
|
1789
|
+
ALTER TABLE `organization_type_assignments` ADD CONSTRAINT `organization_type_assignments_typeId_fkey` FOREIGN KEY (`typeId`) REFERENCES `organization_types`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1790
|
+
|
|
1791
|
+
-- AddForeignKey
|
|
1792
|
+
ALTER TABLE `users` ADD CONSTRAINT `users_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1793
|
+
|
|
1794
|
+
-- AddForeignKey
|
|
1795
|
+
ALTER TABLE `users` ADD CONSTRAINT `users_walletId_fkey` FOREIGN KEY (`walletId`) REFERENCES `wallets`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1796
|
+
|
|
1797
|
+
-- AddForeignKey
|
|
1798
|
+
ALTER TABLE `roles` ADD CONSTRAINT `roles_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1799
|
+
|
|
1800
|
+
-- AddForeignKey
|
|
1801
|
+
ALTER TABLE `permissions` ADD CONSTRAINT `permissions_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1802
|
+
|
|
1803
|
+
-- AddForeignKey
|
|
1804
|
+
ALTER TABLE `role_permissions` ADD CONSTRAINT `role_permissions_roleId_fkey` FOREIGN KEY (`roleId`) REFERENCES `roles`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1805
|
+
|
|
1806
|
+
-- AddForeignKey
|
|
1807
|
+
ALTER TABLE `role_permissions` ADD CONSTRAINT `role_permissions_permissionId_fkey` FOREIGN KEY (`permissionId`) REFERENCES `permissions`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1808
|
+
|
|
1809
|
+
-- AddForeignKey
|
|
1810
|
+
ALTER TABLE `user_roles` ADD CONSTRAINT `user_roles_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1811
|
+
|
|
1812
|
+
-- AddForeignKey
|
|
1813
|
+
ALTER TABLE `user_roles` ADD CONSTRAINT `user_roles_roleId_fkey` FOREIGN KEY (`roleId`) REFERENCES `roles`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1814
|
+
|
|
1815
|
+
-- AddForeignKey
|
|
1816
|
+
ALTER TABLE `tenant_memberships` ADD CONSTRAINT `tenant_memberships_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1817
|
+
|
|
1818
|
+
-- AddForeignKey
|
|
1819
|
+
ALTER TABLE `tenant_memberships` ADD CONSTRAINT `tenant_memberships_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1820
|
+
|
|
1821
|
+
-- AddForeignKey
|
|
1822
|
+
ALTER TABLE `tenant_memberships` ADD CONSTRAINT `tenant_memberships_roleId_fkey` FOREIGN KEY (`roleId`) REFERENCES `roles`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
1823
|
+
|
|
1824
|
+
-- AddForeignKey
|
|
1825
|
+
ALTER TABLE `organizations` ADD CONSTRAINT `organizations_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1826
|
+
|
|
1827
|
+
-- AddForeignKey
|
|
1828
|
+
ALTER TABLE `organization_members` ADD CONSTRAINT `organization_members_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1829
|
+
|
|
1830
|
+
-- AddForeignKey
|
|
1831
|
+
ALTER TABLE `organization_members` ADD CONSTRAINT `organization_members_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1832
|
+
|
|
1833
|
+
-- AddForeignKey
|
|
1834
|
+
ALTER TABLE `bank_document_requirements` ADD CONSTRAINT `bank_document_requirements_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1835
|
+
|
|
1836
|
+
-- AddForeignKey
|
|
1837
|
+
ALTER TABLE `bank_document_requirements` ADD CONSTRAINT `bank_document_requirements_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1838
|
+
|
|
1839
|
+
-- AddForeignKey
|
|
1840
|
+
ALTER TABLE `bank_document_requirements` ADD CONSTRAINT `bank_document_requirements_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1841
|
+
|
|
1842
|
+
-- AddForeignKey
|
|
1843
|
+
ALTER TABLE `api_keys` ADD CONSTRAINT `api_keys_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1844
|
+
|
|
1845
|
+
-- AddForeignKey
|
|
1846
|
+
ALTER TABLE `refresh_tokens` ADD CONSTRAINT `refresh_tokens_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1847
|
+
|
|
1848
|
+
-- AddForeignKey
|
|
1849
|
+
ALTER TABLE `password_resets` ADD CONSTRAINT `password_resets_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1850
|
+
|
|
1851
|
+
-- AddForeignKey
|
|
1852
|
+
ALTER TABLE `user_suspensions` ADD CONSTRAINT `user_suspensions_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1853
|
+
|
|
1854
|
+
-- AddForeignKey
|
|
1855
|
+
ALTER TABLE `email_preferences` ADD CONSTRAINT `email_preferences_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1856
|
+
|
|
1857
|
+
-- AddForeignKey
|
|
1858
|
+
ALTER TABLE `device_endpoints` ADD CONSTRAINT `device_endpoints_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1859
|
+
|
|
1860
|
+
-- AddForeignKey
|
|
1861
|
+
ALTER TABLE `socials` ADD CONSTRAINT `socials_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1862
|
+
|
|
1863
|
+
-- AddForeignKey
|
|
1864
|
+
ALTER TABLE `socials` ADD CONSTRAINT `socials_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1865
|
+
|
|
1866
|
+
-- AddForeignKey
|
|
1867
|
+
ALTER TABLE `wallets` ADD CONSTRAINT `wallets_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1868
|
+
|
|
1869
|
+
-- AddForeignKey
|
|
1870
|
+
ALTER TABLE `transactions` ADD CONSTRAINT `transactions_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1871
|
+
|
|
1872
|
+
-- AddForeignKey
|
|
1873
|
+
ALTER TABLE `transactions` ADD CONSTRAINT `transactions_walletId_fkey` FOREIGN KEY (`walletId`) REFERENCES `wallets`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1874
|
+
|
|
1875
|
+
-- AddForeignKey
|
|
1876
|
+
ALTER TABLE `settings` ADD CONSTRAINT `settings_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1877
|
+
|
|
1878
|
+
-- AddForeignKey
|
|
1879
|
+
ALTER TABLE `properties` ADD CONSTRAINT `properties_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1880
|
+
|
|
1881
|
+
-- AddForeignKey
|
|
1882
|
+
ALTER TABLE `properties` ADD CONSTRAINT `properties_userId_fkey` FOREIGN KEY (`userId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1883
|
+
|
|
1884
|
+
-- AddForeignKey
|
|
1885
|
+
ALTER TABLE `properties` ADD CONSTRAINT `properties_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1886
|
+
|
|
1887
|
+
-- AddForeignKey
|
|
1888
|
+
ALTER TABLE `properties` ADD CONSTRAINT `properties_displayImageId_fkey` FOREIGN KEY (`displayImageId`) REFERENCES `property_media`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1889
|
+
|
|
1890
|
+
-- AddForeignKey
|
|
1891
|
+
ALTER TABLE `property_media` ADD CONSTRAINT `property_media_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1892
|
+
|
|
1893
|
+
-- AddForeignKey
|
|
1894
|
+
ALTER TABLE `property_media` ADD CONSTRAINT `property_media_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1895
|
+
|
|
1896
|
+
-- AddForeignKey
|
|
1897
|
+
ALTER TABLE `property_documents` ADD CONSTRAINT `property_documents_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1898
|
+
|
|
1899
|
+
-- AddForeignKey
|
|
1900
|
+
ALTER TABLE `property_documents` ADD CONSTRAINT `property_documents_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1901
|
+
|
|
1902
|
+
-- AddForeignKey
|
|
1903
|
+
ALTER TABLE `amenities` ADD CONSTRAINT `amenities_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1904
|
+
|
|
1905
|
+
-- AddForeignKey
|
|
1906
|
+
ALTER TABLE `property_variants` ADD CONSTRAINT `property_variants_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1907
|
+
|
|
1908
|
+
-- AddForeignKey
|
|
1909
|
+
ALTER TABLE `property_variants` ADD CONSTRAINT `property_variants_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1910
|
+
|
|
1911
|
+
-- AddForeignKey
|
|
1912
|
+
ALTER TABLE `property_variant_amenities` ADD CONSTRAINT `property_variant_amenities_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1913
|
+
|
|
1914
|
+
-- AddForeignKey
|
|
1915
|
+
ALTER TABLE `property_variant_amenities` ADD CONSTRAINT `property_variant_amenities_variantId_fkey` FOREIGN KEY (`variantId`) REFERENCES `property_variants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1916
|
+
|
|
1917
|
+
-- AddForeignKey
|
|
1918
|
+
ALTER TABLE `property_variant_amenities` ADD CONSTRAINT `property_variant_amenities_amenityId_fkey` FOREIGN KEY (`amenityId`) REFERENCES `amenities`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1919
|
+
|
|
1920
|
+
-- AddForeignKey
|
|
1921
|
+
ALTER TABLE `property_variant_media` ADD CONSTRAINT `property_variant_media_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1922
|
+
|
|
1923
|
+
-- AddForeignKey
|
|
1924
|
+
ALTER TABLE `property_variant_media` ADD CONSTRAINT `property_variant_media_variantId_fkey` FOREIGN KEY (`variantId`) REFERENCES `property_variants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1925
|
+
|
|
1926
|
+
-- AddForeignKey
|
|
1927
|
+
ALTER TABLE `property_units` ADD CONSTRAINT `property_units_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1928
|
+
|
|
1929
|
+
-- AddForeignKey
|
|
1930
|
+
ALTER TABLE `property_units` ADD CONSTRAINT `property_units_variantId_fkey` FOREIGN KEY (`variantId`) REFERENCES `property_variants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1931
|
+
|
|
1932
|
+
-- AddForeignKey
|
|
1933
|
+
ALTER TABLE `property_amenities` ADD CONSTRAINT `property_amenities_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1934
|
+
|
|
1935
|
+
-- AddForeignKey
|
|
1936
|
+
ALTER TABLE `property_amenities` ADD CONSTRAINT `property_amenities_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1937
|
+
|
|
1938
|
+
-- AddForeignKey
|
|
1939
|
+
ALTER TABLE `property_amenities` ADD CONSTRAINT `property_amenities_amenityId_fkey` FOREIGN KEY (`amenityId`) REFERENCES `amenities`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1940
|
+
|
|
1941
|
+
-- AddForeignKey
|
|
1942
|
+
ALTER TABLE `documentation_plans` ADD CONSTRAINT `documentation_plans_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1943
|
+
|
|
1944
|
+
-- AddForeignKey
|
|
1945
|
+
ALTER TABLE `document_definitions` ADD CONSTRAINT `document_definitions_planId_fkey` FOREIGN KEY (`planId`) REFERENCES `documentation_plans`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1946
|
+
|
|
1947
|
+
-- AddForeignKey
|
|
1948
|
+
ALTER TABLE `approval_stages` ADD CONSTRAINT `approval_stages_planId_fkey` FOREIGN KEY (`planId`) REFERENCES `documentation_plans`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1949
|
+
|
|
1950
|
+
-- AddForeignKey
|
|
1951
|
+
ALTER TABLE `approval_stages` ADD CONSTRAINT `approval_stages_organizationTypeId_fkey` FOREIGN KEY (`organizationTypeId`) REFERENCES `organization_types`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
1952
|
+
|
|
1953
|
+
-- AddForeignKey
|
|
1954
|
+
ALTER TABLE `questionnaire_plans` ADD CONSTRAINT `questionnaire_plans_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1955
|
+
|
|
1956
|
+
-- AddForeignKey
|
|
1957
|
+
ALTER TABLE `questionnaire_plan_questions` ADD CONSTRAINT `questionnaire_plan_questions_questionnairePlanId_fkey` FOREIGN KEY (`questionnairePlanId`) REFERENCES `questionnaire_plans`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1958
|
+
|
|
1959
|
+
-- AddForeignKey
|
|
1960
|
+
ALTER TABLE `payment_plans` ADD CONSTRAINT `payment_plans_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1961
|
+
|
|
1962
|
+
-- AddForeignKey
|
|
1963
|
+
ALTER TABLE `property_payment_methods` ADD CONSTRAINT `property_payment_methods_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1964
|
+
|
|
1965
|
+
-- AddForeignKey
|
|
1966
|
+
ALTER TABLE `property_payment_method_links` ADD CONSTRAINT `property_payment_method_links_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1967
|
+
|
|
1968
|
+
-- AddForeignKey
|
|
1969
|
+
ALTER TABLE `property_payment_method_links` ADD CONSTRAINT `property_payment_method_links_propertyId_fkey` FOREIGN KEY (`propertyId`) REFERENCES `properties`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1970
|
+
|
|
1971
|
+
-- AddForeignKey
|
|
1972
|
+
ALTER TABLE `property_payment_method_links` ADD CONSTRAINT `property_payment_method_links_paymentMethodId_fkey` FOREIGN KEY (`paymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1973
|
+
|
|
1974
|
+
-- AddForeignKey
|
|
1975
|
+
ALTER TABLE `property_payment_method_phases` ADD CONSTRAINT `property_payment_method_phases_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1976
|
+
|
|
1977
|
+
-- AddForeignKey
|
|
1978
|
+
ALTER TABLE `property_payment_method_phases` ADD CONSTRAINT `property_payment_method_phases_paymentMethodId_fkey` FOREIGN KEY (`paymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1979
|
+
|
|
1980
|
+
-- AddForeignKey
|
|
1981
|
+
ALTER TABLE `property_payment_method_phases` ADD CONSTRAINT `property_payment_method_phases_paymentPlanId_fkey` FOREIGN KEY (`paymentPlanId`) REFERENCES `payment_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1982
|
+
|
|
1983
|
+
-- AddForeignKey
|
|
1984
|
+
ALTER TABLE `property_payment_method_phases` ADD CONSTRAINT `property_payment_method_phases_documentationPlanId_fkey` FOREIGN KEY (`documentationPlanId`) REFERENCES `documentation_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1985
|
+
|
|
1986
|
+
-- AddForeignKey
|
|
1987
|
+
ALTER TABLE `property_payment_method_phases` ADD CONSTRAINT `property_payment_method_phases_questionnairePlanId_fkey` FOREIGN KEY (`questionnairePlanId`) REFERENCES `questionnaire_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
1988
|
+
|
|
1989
|
+
-- AddForeignKey
|
|
1990
|
+
ALTER TABLE `phase_event_attachments` ADD CONSTRAINT `phase_event_attachments_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1991
|
+
|
|
1992
|
+
-- AddForeignKey
|
|
1993
|
+
ALTER TABLE `phase_event_attachments` ADD CONSTRAINT `phase_event_attachments_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1994
|
+
|
|
1995
|
+
-- AddForeignKey
|
|
1996
|
+
ALTER TABLE `phase_event_attachments` ADD CONSTRAINT `phase_event_attachments_handlerId_fkey` FOREIGN KEY (`handlerId`) REFERENCES `event_handlers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
1997
|
+
|
|
1998
|
+
-- AddForeignKey
|
|
1999
|
+
ALTER TABLE `payment_method_phase_steps` ADD CONSTRAINT `payment_method_phase_steps_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2000
|
+
|
|
2001
|
+
-- AddForeignKey
|
|
2002
|
+
ALTER TABLE `payment_method_phase_steps` ADD CONSTRAINT `payment_method_phase_steps_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2003
|
+
|
|
2004
|
+
-- AddForeignKey
|
|
2005
|
+
ALTER TABLE `step_event_attachments` ADD CONSTRAINT `step_event_attachments_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2006
|
+
|
|
2007
|
+
-- AddForeignKey
|
|
2008
|
+
ALTER TABLE `step_event_attachments` ADD CONSTRAINT `step_event_attachments_stepId_fkey` FOREIGN KEY (`stepId`) REFERENCES `payment_method_phase_steps`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2009
|
+
|
|
2010
|
+
-- AddForeignKey
|
|
2011
|
+
ALTER TABLE `step_event_attachments` ADD CONSTRAINT `step_event_attachments_handlerId_fkey` FOREIGN KEY (`handlerId`) REFERENCES `event_handlers`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2012
|
+
|
|
2013
|
+
-- AddForeignKey
|
|
2014
|
+
ALTER TABLE `payment_method_phase_documents` ADD CONSTRAINT `payment_method_phase_documents_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2015
|
+
|
|
2016
|
+
-- AddForeignKey
|
|
2017
|
+
ALTER TABLE `payment_method_phase_documents` ADD CONSTRAINT `payment_method_phase_documents_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2018
|
+
|
|
2019
|
+
-- AddForeignKey
|
|
2020
|
+
ALTER TABLE `payment_method_phase_fields` ADD CONSTRAINT `payment_method_phase_fields_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2021
|
+
|
|
2022
|
+
-- AddForeignKey
|
|
2023
|
+
ALTER TABLE `payment_method_phase_fields` ADD CONSTRAINT `payment_method_phase_fields_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2024
|
+
|
|
2025
|
+
-- AddForeignKey
|
|
2026
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2027
|
+
|
|
2028
|
+
-- AddForeignKey
|
|
2029
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_propertyUnitId_fkey` FOREIGN KEY (`propertyUnitId`) REFERENCES `property_units`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2030
|
+
|
|
2031
|
+
-- AddForeignKey
|
|
2032
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_buyerId_fkey` FOREIGN KEY (`buyerId`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2033
|
+
|
|
2034
|
+
-- AddForeignKey
|
|
2035
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_sellerId_fkey` FOREIGN KEY (`sellerId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2036
|
+
|
|
2037
|
+
-- AddForeignKey
|
|
2038
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_paymentMethodId_fkey` FOREIGN KEY (`paymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2039
|
+
|
|
2040
|
+
-- AddForeignKey
|
|
2041
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_currentPhaseId_fkey` FOREIGN KEY (`currentPhaseId`) REFERENCES `application_phases`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2042
|
+
|
|
2043
|
+
-- AddForeignKey
|
|
2044
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_transferredFromId_fkey` FOREIGN KEY (`transferredFromId`) REFERENCES `applications`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2045
|
+
|
|
2046
|
+
-- AddForeignKey
|
|
2047
|
+
ALTER TABLE `applications` ADD CONSTRAINT `applications_supersededById_fkey` FOREIGN KEY (`supersededById`) REFERENCES `applications`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2048
|
+
|
|
2049
|
+
-- AddForeignKey
|
|
2050
|
+
ALTER TABLE `application_organizations` ADD CONSTRAINT `application_organizations_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2051
|
+
|
|
2052
|
+
-- AddForeignKey
|
|
2053
|
+
ALTER TABLE `application_organizations` ADD CONSTRAINT `application_organizations_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2054
|
+
|
|
2055
|
+
-- AddForeignKey
|
|
2056
|
+
ALTER TABLE `application_organizations` ADD CONSTRAINT `application_organizations_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2057
|
+
|
|
2058
|
+
-- AddForeignKey
|
|
2059
|
+
ALTER TABLE `application_organizations` ADD CONSTRAINT `application_organizations_assignedAsTypeId_fkey` FOREIGN KEY (`assignedAsTypeId`) REFERENCES `organization_types`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2060
|
+
|
|
2061
|
+
-- AddForeignKey
|
|
2062
|
+
ALTER TABLE `application_refunds` ADD CONSTRAINT `application_refunds_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2063
|
+
|
|
2064
|
+
-- AddForeignKey
|
|
2065
|
+
ALTER TABLE `application_refunds` ADD CONSTRAINT `application_refunds_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2066
|
+
|
|
2067
|
+
-- AddForeignKey
|
|
2068
|
+
ALTER TABLE `application_refunds` ADD CONSTRAINT `application_refunds_requestedById_fkey` FOREIGN KEY (`requestedById`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2069
|
+
|
|
2070
|
+
-- AddForeignKey
|
|
2071
|
+
ALTER TABLE `application_refunds` ADD CONSTRAINT `application_refunds_approvedById_fkey` FOREIGN KEY (`approvedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2072
|
+
|
|
2073
|
+
-- AddForeignKey
|
|
2074
|
+
ALTER TABLE `application_refunds` ADD CONSTRAINT `application_refunds_processedById_fkey` FOREIGN KEY (`processedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2075
|
+
|
|
2076
|
+
-- AddForeignKey
|
|
2077
|
+
ALTER TABLE `application_phases` ADD CONSTRAINT `application_phases_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2078
|
+
|
|
2079
|
+
-- AddForeignKey
|
|
2080
|
+
ALTER TABLE `application_phases` ADD CONSTRAINT `application_phases_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2081
|
+
|
|
2082
|
+
-- AddForeignKey
|
|
2083
|
+
ALTER TABLE `application_phases` ADD CONSTRAINT `application_phases_phaseTemplateId_fkey` FOREIGN KEY (`phaseTemplateId`) REFERENCES `property_payment_method_phases`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2084
|
+
|
|
2085
|
+
-- AddForeignKey
|
|
2086
|
+
ALTER TABLE `questionnaire_phases` ADD CONSTRAINT `questionnaire_phases_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2087
|
+
|
|
2088
|
+
-- AddForeignKey
|
|
2089
|
+
ALTER TABLE `questionnaire_phases` ADD CONSTRAINT `questionnaire_phases_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `application_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2090
|
+
|
|
2091
|
+
-- AddForeignKey
|
|
2092
|
+
ALTER TABLE `questionnaire_phases` ADD CONSTRAINT `questionnaire_phases_questionnairePlanId_fkey` FOREIGN KEY (`questionnairePlanId`) REFERENCES `questionnaire_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2093
|
+
|
|
2094
|
+
-- AddForeignKey
|
|
2095
|
+
ALTER TABLE `questionnaire_phase_reviews` ADD CONSTRAINT `questionnaire_phase_reviews_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2096
|
+
|
|
2097
|
+
-- AddForeignKey
|
|
2098
|
+
ALTER TABLE `questionnaire_phase_reviews` ADD CONSTRAINT `questionnaire_phase_reviews_questionnairePhaseId_fkey` FOREIGN KEY (`questionnairePhaseId`) REFERENCES `questionnaire_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2099
|
+
|
|
2100
|
+
-- AddForeignKey
|
|
2101
|
+
ALTER TABLE `questionnaire_phase_reviews` ADD CONSTRAINT `questionnaire_phase_reviews_reviewerId_fkey` FOREIGN KEY (`reviewerId`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2102
|
+
|
|
2103
|
+
-- AddForeignKey
|
|
2104
|
+
ALTER TABLE `documentation_phases` ADD CONSTRAINT `documentation_phases_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2105
|
+
|
|
2106
|
+
-- AddForeignKey
|
|
2107
|
+
ALTER TABLE `documentation_phases` ADD CONSTRAINT `documentation_phases_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `application_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2108
|
+
|
|
2109
|
+
-- AddForeignKey
|
|
2110
|
+
ALTER TABLE `documentation_phases` ADD CONSTRAINT `documentation_phases_documentationPlanId_fkey` FOREIGN KEY (`documentationPlanId`) REFERENCES `documentation_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2111
|
+
|
|
2112
|
+
-- AddForeignKey
|
|
2113
|
+
ALTER TABLE `documentation_phases` ADD CONSTRAINT `documentation_phases_sourceQuestionnairePhaseId_fkey` FOREIGN KEY (`sourceQuestionnairePhaseId`) REFERENCES `questionnaire_phases`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2114
|
+
|
|
2115
|
+
-- AddForeignKey
|
|
2116
|
+
ALTER TABLE `payment_phases` ADD CONSTRAINT `payment_phases_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2117
|
+
|
|
2118
|
+
-- AddForeignKey
|
|
2119
|
+
ALTER TABLE `payment_phases` ADD CONSTRAINT `payment_phases_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `application_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2120
|
+
|
|
2121
|
+
-- AddForeignKey
|
|
2122
|
+
ALTER TABLE `payment_phases` ADD CONSTRAINT `payment_phases_paymentPlanId_fkey` FOREIGN KEY (`paymentPlanId`) REFERENCES `payment_plans`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2123
|
+
|
|
2124
|
+
-- AddForeignKey
|
|
2125
|
+
ALTER TABLE `questionnaire_fields` ADD CONSTRAINT `questionnaire_fields_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2126
|
+
|
|
2127
|
+
-- AddForeignKey
|
|
2128
|
+
ALTER TABLE `questionnaire_fields` ADD CONSTRAINT `questionnaire_fields_questionnairePhaseId_fkey` FOREIGN KEY (`questionnairePhaseId`) REFERENCES `questionnaire_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2129
|
+
|
|
2130
|
+
-- AddForeignKey
|
|
2131
|
+
ALTER TABLE `application_events` ADD CONSTRAINT `application_events_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2132
|
+
|
|
2133
|
+
-- AddForeignKey
|
|
2134
|
+
ALTER TABLE `application_events` ADD CONSTRAINT `application_events_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2135
|
+
|
|
2136
|
+
-- AddForeignKey
|
|
2137
|
+
ALTER TABLE `payment_installments` ADD CONSTRAINT `payment_installments_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2138
|
+
|
|
2139
|
+
-- AddForeignKey
|
|
2140
|
+
ALTER TABLE `payment_installments` ADD CONSTRAINT `payment_installments_paymentPhaseId_fkey` FOREIGN KEY (`paymentPhaseId`) REFERENCES `payment_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2141
|
+
|
|
2142
|
+
-- AddForeignKey
|
|
2143
|
+
ALTER TABLE `application_payments` ADD CONSTRAINT `application_payments_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2144
|
+
|
|
2145
|
+
-- AddForeignKey
|
|
2146
|
+
ALTER TABLE `application_payments` ADD CONSTRAINT `application_payments_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2147
|
+
|
|
2148
|
+
-- AddForeignKey
|
|
2149
|
+
ALTER TABLE `application_payments` ADD CONSTRAINT `application_payments_phaseId_fkey` FOREIGN KEY (`phaseId`) REFERENCES `application_phases`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2150
|
+
|
|
2151
|
+
-- AddForeignKey
|
|
2152
|
+
ALTER TABLE `application_payments` ADD CONSTRAINT `application_payments_installmentId_fkey` FOREIGN KEY (`installmentId`) REFERENCES `payment_installments`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2153
|
+
|
|
2154
|
+
-- AddForeignKey
|
|
2155
|
+
ALTER TABLE `application_payments` ADD CONSTRAINT `application_payments_payerId_fkey` FOREIGN KEY (`payerId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2156
|
+
|
|
2157
|
+
-- AddForeignKey
|
|
2158
|
+
ALTER TABLE `application_documents` ADD CONSTRAINT `application_documents_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2159
|
+
|
|
2160
|
+
-- AddForeignKey
|
|
2161
|
+
ALTER TABLE `application_documents` ADD CONSTRAINT `application_documents_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2162
|
+
|
|
2163
|
+
-- AddForeignKey
|
|
2164
|
+
ALTER TABLE `application_documents` ADD CONSTRAINT `application_documents_uploadedById_fkey` FOREIGN KEY (`uploadedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2165
|
+
|
|
2166
|
+
-- AddForeignKey
|
|
2167
|
+
ALTER TABLE `application_documents` ADD CONSTRAINT `application_documents_replacesDocumentId_fkey` FOREIGN KEY (`replacesDocumentId`) REFERENCES `application_documents`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2168
|
+
|
|
2169
|
+
-- AddForeignKey
|
|
2170
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2171
|
+
|
|
2172
|
+
-- AddForeignKey
|
|
2173
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_documentId_fkey` FOREIGN KEY (`documentId`) REFERENCES `application_documents`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2174
|
+
|
|
2175
|
+
-- AddForeignKey
|
|
2176
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_organizationId_fkey` FOREIGN KEY (`organizationId`) REFERENCES `organizations`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2177
|
+
|
|
2178
|
+
-- AddForeignKey
|
|
2179
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_organizationTypeId_fkey` FOREIGN KEY (`organizationTypeId`) REFERENCES `organization_types`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2180
|
+
|
|
2181
|
+
-- AddForeignKey
|
|
2182
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_reviewerId_fkey` FOREIGN KEY (`reviewerId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2183
|
+
|
|
2184
|
+
-- AddForeignKey
|
|
2185
|
+
ALTER TABLE `document_reviews` ADD CONSTRAINT `document_reviews_parentReviewId_fkey` FOREIGN KEY (`parentReviewId`) REFERENCES `document_reviews`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2186
|
+
|
|
2187
|
+
-- AddForeignKey
|
|
2188
|
+
ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2189
|
+
|
|
2190
|
+
-- AddForeignKey
|
|
2191
|
+
ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_documentationPhaseId_fkey` FOREIGN KEY (`documentationPhaseId`) REFERENCES `documentation_phases`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2192
|
+
|
|
2193
|
+
-- AddForeignKey
|
|
2194
|
+
ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_approvalStageId_fkey` FOREIGN KEY (`approvalStageId`) REFERENCES `approval_stages`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2195
|
+
|
|
2196
|
+
-- AddForeignKey
|
|
2197
|
+
ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_organizationTypeId_fkey` FOREIGN KEY (`organizationTypeId`) REFERENCES `organization_types`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2198
|
+
|
|
2199
|
+
-- AddForeignKey
|
|
2200
|
+
ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_completedById_fkey` FOREIGN KEY (`completedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2201
|
+
|
|
2202
|
+
-- AddForeignKey
|
|
2203
|
+
ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2204
|
+
|
|
2205
|
+
-- AddForeignKey
|
|
2206
|
+
ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_documentId_fkey` FOREIGN KEY (`documentId`) REFERENCES `application_documents`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2207
|
+
|
|
2208
|
+
-- AddForeignKey
|
|
2209
|
+
ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_stageProgressId_fkey` FOREIGN KEY (`stageProgressId`) REFERENCES `approval_stage_progress`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2210
|
+
|
|
2211
|
+
-- AddForeignKey
|
|
2212
|
+
ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_reviewerId_fkey` FOREIGN KEY (`reviewerId`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2213
|
+
|
|
2214
|
+
-- AddForeignKey
|
|
2215
|
+
ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_organizationTypeId_fkey` FOREIGN KEY (`organizationTypeId`) REFERENCES `organization_types`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2216
|
+
|
|
2217
|
+
-- AddForeignKey
|
|
2218
|
+
ALTER TABLE `document_templates` ADD CONSTRAINT `document_templates_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2219
|
+
|
|
2220
|
+
-- AddForeignKey
|
|
2221
|
+
ALTER TABLE `offer_letters` ADD CONSTRAINT `offer_letters_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2222
|
+
|
|
2223
|
+
-- AddForeignKey
|
|
2224
|
+
ALTER TABLE `offer_letters` ADD CONSTRAINT `offer_letters_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2225
|
+
|
|
2226
|
+
-- AddForeignKey
|
|
2227
|
+
ALTER TABLE `offer_letters` ADD CONSTRAINT `offer_letters_templateId_fkey` FOREIGN KEY (`templateId`) REFERENCES `document_templates`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2228
|
+
|
|
2229
|
+
-- AddForeignKey
|
|
2230
|
+
ALTER TABLE `offer_letters` ADD CONSTRAINT `offer_letters_generatedById_fkey` FOREIGN KEY (`generatedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2231
|
+
|
|
2232
|
+
-- AddForeignKey
|
|
2233
|
+
ALTER TABLE `offer_letters` ADD CONSTRAINT `offer_letters_sentById_fkey` FOREIGN KEY (`sentById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2234
|
+
|
|
2235
|
+
-- AddForeignKey
|
|
2236
|
+
ALTER TABLE `application_terminations` ADD CONSTRAINT `application_terminations_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2237
|
+
|
|
2238
|
+
-- AddForeignKey
|
|
2239
|
+
ALTER TABLE `application_terminations` ADD CONSTRAINT `application_terminations_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2240
|
+
|
|
2241
|
+
-- AddForeignKey
|
|
2242
|
+
ALTER TABLE `application_terminations` ADD CONSTRAINT `application_terminations_initiatorId_fkey` FOREIGN KEY (`initiatorId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2243
|
+
|
|
2244
|
+
-- AddForeignKey
|
|
2245
|
+
ALTER TABLE `application_terminations` ADD CONSTRAINT `application_terminations_reviewedBy_fkey` FOREIGN KEY (`reviewedBy`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2246
|
+
|
|
2247
|
+
-- AddForeignKey
|
|
2248
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2249
|
+
|
|
2250
|
+
-- AddForeignKey
|
|
2251
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_applicationId_fkey` FOREIGN KEY (`applicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2252
|
+
|
|
2253
|
+
-- AddForeignKey
|
|
2254
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_fromPaymentMethodId_fkey` FOREIGN KEY (`fromPaymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2255
|
+
|
|
2256
|
+
-- AddForeignKey
|
|
2257
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_toPaymentMethodId_fkey` FOREIGN KEY (`toPaymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2258
|
+
|
|
2259
|
+
-- AddForeignKey
|
|
2260
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_requestorId_fkey` FOREIGN KEY (`requestorId`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2261
|
+
|
|
2262
|
+
-- AddForeignKey
|
|
2263
|
+
ALTER TABLE `payment_method_change_requests` ADD CONSTRAINT `payment_method_change_requests_reviewerId_fkey` FOREIGN KEY (`reviewerId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2264
|
+
|
|
2265
|
+
-- AddForeignKey
|
|
2266
|
+
ALTER TABLE `document_requirement_rules` ADD CONSTRAINT `document_requirement_rules_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2267
|
+
|
|
2268
|
+
-- AddForeignKey
|
|
2269
|
+
ALTER TABLE `document_requirement_rules` ADD CONSTRAINT `document_requirement_rules_paymentMethodId_fkey` FOREIGN KEY (`paymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2270
|
+
|
|
2271
|
+
-- AddForeignKey
|
|
2272
|
+
ALTER TABLE `document_requirement_rules` ADD CONSTRAINT `document_requirement_rules_fromPaymentMethodId_fkey` FOREIGN KEY (`fromPaymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2273
|
+
|
|
2274
|
+
-- AddForeignKey
|
|
2275
|
+
ALTER TABLE `document_requirement_rules` ADD CONSTRAINT `document_requirement_rules_toPaymentMethodId_fkey` FOREIGN KEY (`toPaymentMethodId`) REFERENCES `property_payment_methods`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2276
|
+
|
|
2277
|
+
-- AddForeignKey
|
|
2278
|
+
ALTER TABLE `event_channels` ADD CONSTRAINT `event_channels_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2279
|
+
|
|
2280
|
+
-- AddForeignKey
|
|
2281
|
+
ALTER TABLE `event_types` ADD CONSTRAINT `event_types_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2282
|
+
|
|
2283
|
+
-- AddForeignKey
|
|
2284
|
+
ALTER TABLE `event_types` ADD CONSTRAINT `event_types_channelId_fkey` FOREIGN KEY (`channelId`) REFERENCES `event_channels`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2285
|
+
|
|
2286
|
+
-- AddForeignKey
|
|
2287
|
+
ALTER TABLE `event_handlers` ADD CONSTRAINT `event_handlers_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2288
|
+
|
|
2289
|
+
-- AddForeignKey
|
|
2290
|
+
ALTER TABLE `event_handlers` ADD CONSTRAINT `event_handlers_eventTypeId_fkey` FOREIGN KEY (`eventTypeId`) REFERENCES `event_types`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2291
|
+
|
|
2292
|
+
-- AddForeignKey
|
|
2293
|
+
ALTER TABLE `domain_events` ADD CONSTRAINT `domain_events_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2294
|
+
|
|
2295
|
+
-- AddForeignKey
|
|
2296
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2297
|
+
|
|
2298
|
+
-- AddForeignKey
|
|
2299
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_sourceApplicationId_fkey` FOREIGN KEY (`sourceApplicationId`) REFERENCES `applications`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2300
|
+
|
|
2301
|
+
-- AddForeignKey
|
|
2302
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_targetPropertyUnitId_fkey` FOREIGN KEY (`targetPropertyUnitId`) REFERENCES `property_units`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2303
|
+
|
|
2304
|
+
-- AddForeignKey
|
|
2305
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_requestedById_fkey` FOREIGN KEY (`requestedById`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2306
|
+
|
|
2307
|
+
-- AddForeignKey
|
|
2308
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_reviewedById_fkey` FOREIGN KEY (`reviewedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2309
|
+
|
|
2310
|
+
-- AddForeignKey
|
|
2311
|
+
ALTER TABLE `property_transfer_requests` ADD CONSTRAINT `property_transfer_requests_targetApplicationId_fkey` FOREIGN KEY (`targetApplicationId`) REFERENCES `applications`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2312
|
+
|
|
2313
|
+
-- AddForeignKey
|
|
2314
|
+
ALTER TABLE `approval_requests` ADD CONSTRAINT `approval_requests_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2315
|
+
|
|
2316
|
+
-- AddForeignKey
|
|
2317
|
+
ALTER TABLE `approval_requests` ADD CONSTRAINT `approval_requests_requestedById_fkey` FOREIGN KEY (`requestedById`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
2318
|
+
|
|
2319
|
+
-- AddForeignKey
|
|
2320
|
+
ALTER TABLE `approval_requests` ADD CONSTRAINT `approval_requests_assigneeId_fkey` FOREIGN KEY (`assigneeId`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2321
|
+
|
|
2322
|
+
-- AddForeignKey
|
|
2323
|
+
ALTER TABLE `approval_requests` ADD CONSTRAINT `approval_requests_reviewedById_fkey` FOREIGN KEY (`reviewedById`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
2324
|
+
|
|
2325
|
+
-- AddForeignKey
|
|
2326
|
+
ALTER TABLE `workflow_blockers` ADD CONSTRAINT `workflow_blockers_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
2327
|
+
|