@valentine-efagene/qshelter-common 2.0.138 → 2.0.140

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/generated/client/browser.d.ts +17 -17
  2. package/dist/generated/client/client.d.ts +17 -17
  3. package/dist/generated/client/commonInputTypes.d.ts +142 -202
  4. package/dist/generated/client/enums.d.ts +23 -0
  5. package/dist/generated/client/enums.js +21 -1
  6. package/dist/generated/client/internal/class.d.ts +37 -37
  7. package/dist/generated/client/internal/class.js +2 -2
  8. package/dist/generated/client/internal/prismaNamespace.d.ts +348 -377
  9. package/dist/generated/client/internal/prismaNamespace.js +91 -116
  10. package/dist/generated/client/internal/prismaNamespaceBrowser.d.ts +97 -122
  11. package/dist/generated/client/internal/prismaNamespaceBrowser.js +91 -116
  12. package/dist/generated/client/models/ApplicationDocument.d.ts +290 -1
  13. package/dist/generated/client/models/ApprovalStage.d.ts +1605 -0
  14. package/dist/generated/client/models/ApprovalStage.js +1 -0
  15. package/dist/generated/client/models/ApprovalStageProgress.d.ts +2329 -0
  16. package/dist/generated/client/models/ApprovalStageProgress.js +1 -0
  17. package/dist/generated/client/models/DocumentApproval.d.ts +1611 -0
  18. package/dist/generated/client/models/DocumentApproval.js +1 -0
  19. package/dist/generated/client/models/DocumentDefinition.d.ts +1475 -0
  20. package/dist/generated/client/models/DocumentDefinition.js +1 -0
  21. package/dist/generated/client/models/DocumentReview.d.ts +0 -3
  22. package/dist/generated/client/models/DocumentationPhase.d.ts +215 -629
  23. package/dist/generated/client/models/DocumentationPlan.d.ts +188 -57
  24. package/dist/generated/client/models/PaymentMethodPhaseStep.d.ts +3 -0
  25. package/dist/generated/client/models/Tenant.d.ts +640 -1203
  26. package/dist/generated/client/models/User.d.ts +414 -817
  27. package/dist/generated/client/models/index.d.ts +4 -4
  28. package/dist/generated/client/models/index.js +4 -4
  29. package/dist/generated/client/models.d.ts +4 -4
  30. package/dist/src/utils/documentation-enums.d.ts +10 -1
  31. package/dist/src/utils/documentation-enums.js +8 -0
  32. package/package.json +1 -1
  33. package/prisma/migrations/20260119190336_add_document_approval_workflow/migration.sql +134 -0
  34. package/prisma/schema.prisma +229 -214
@@ -8,16 +8,16 @@ export * from './ApplicationPhase';
8
8
  export * from './ApplicationRefund';
9
9
  export * from './ApplicationTermination';
10
10
  export * from './ApprovalRequest';
11
+ export * from './ApprovalStage';
12
+ export * from './ApprovalStageProgress';
11
13
  export * from './DeviceEndpoint';
14
+ export * from './DocumentApproval';
15
+ export * from './DocumentDefinition';
12
16
  export * from './DocumentRequirementRule';
13
17
  export * from './DocumentReview';
14
18
  export * from './DocumentTemplate';
15
19
  export * from './DocumentationPhase';
16
20
  export * from './DocumentationPlan';
17
- export * from './DocumentationPlanStep';
18
- export * from './DocumentationStep';
19
- export * from './DocumentationStepApproval';
20
- export * from './DocumentationStepDocument';
21
21
  export * from './DomainEvent';
22
22
  export * from './EmailPreference';
23
23
  export * from './EventChannel';
@@ -8,16 +8,16 @@ export * from './ApplicationPhase';
8
8
  export * from './ApplicationRefund';
9
9
  export * from './ApplicationTermination';
10
10
  export * from './ApprovalRequest';
11
+ export * from './ApprovalStage';
12
+ export * from './ApprovalStageProgress';
11
13
  export * from './DeviceEndpoint';
14
+ export * from './DocumentApproval';
15
+ export * from './DocumentDefinition';
12
16
  export * from './DocumentRequirementRule';
13
17
  export * from './DocumentReview';
14
18
  export * from './DocumentTemplate';
15
19
  export * from './DocumentationPhase';
16
20
  export * from './DocumentationPlan';
17
- export * from './DocumentationPlanStep';
18
- export * from './DocumentationStep';
19
- export * from './DocumentationStepApproval';
20
- export * from './DocumentationStepDocument';
21
21
  export * from './DomainEvent';
22
22
  export * from './EmailPreference';
23
23
  export * from './EventChannel';
@@ -28,7 +28,8 @@ export type * from './models/PropertyVariantMedia.js';
28
28
  export type * from './models/PropertyUnit.js';
29
29
  export type * from './models/PropertyAmenity.js';
30
30
  export type * from './models/DocumentationPlan.js';
31
- export type * from './models/DocumentationPlanStep.js';
31
+ export type * from './models/DocumentDefinition.js';
32
+ export type * from './models/ApprovalStage.js';
32
33
  export type * from './models/QuestionnairePlan.js';
33
34
  export type * from './models/QuestionnairePlanQuestion.js';
34
35
  export type * from './models/PaymentPlan.js';
@@ -48,13 +49,12 @@ export type * from './models/DocumentationPhase.js';
48
49
  export type * from './models/PaymentPhase.js';
49
50
  export type * from './models/QuestionnaireField.js';
50
51
  export type * from './models/ApplicationEvent.js';
51
- export type * from './models/DocumentationStep.js';
52
- export type * from './models/DocumentationStepDocument.js';
53
- export type * from './models/DocumentationStepApproval.js';
54
52
  export type * from './models/PaymentInstallment.js';
55
53
  export type * from './models/ApplicationPayment.js';
56
54
  export type * from './models/ApplicationDocument.js';
57
55
  export type * from './models/DocumentReview.js';
56
+ export type * from './models/ApprovalStageProgress.js';
57
+ export type * from './models/DocumentApproval.js';
58
58
  export type * from './models/DocumentTemplate.js';
59
59
  export type * from './models/OfferLetter.js';
60
60
  export type * from './models/ApplicationTermination.js';
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Documentation-related enums for documentation plan steps.
3
3
  * Used in DocumentationPlanStep metadata to indicate upload responsibility.
4
+ *
5
+ * NOTE: The UploadedBy Prisma enum is now the source of truth.
6
+ * This constant object is kept for backward compatibility.
4
7
  */
5
8
  /**
6
9
  * Indicates who is responsible for uploading a document in a documentation step.
10
+ * @deprecated Use the UploadedBy Prisma enum instead
7
11
  */
8
12
  export declare const UPLOADED_BY: {
9
13
  /** Document is uploaded by the customer/applicant */
@@ -16,10 +20,15 @@ export declare const UPLOADED_BY: {
16
20
  readonly DEVELOPER: "DEVELOPER";
17
21
  /** Document is uploaded by the system (auto-generated) */
18
22
  readonly SYSTEM: "SYSTEM";
23
+ /** Document is uploaded by the platform staff */
24
+ readonly PLATFORM: "PLATFORM";
19
25
  /** Document is uploaded by a legal officer */
20
26
  readonly LEGAL: "LEGAL";
27
+ /** Document is uploaded by an insurer */
28
+ readonly INSURER: "INSURER";
21
29
  };
22
30
  /**
23
31
  * Type representing a valid uploadedBy value.
32
+ * @deprecated Use the UploadedBy Prisma enum instead
24
33
  */
25
- export type UploadedBy = (typeof UPLOADED_BY)[keyof typeof UPLOADED_BY];
34
+ export type UploadedByType = (typeof UPLOADED_BY)[keyof typeof UPLOADED_BY];
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Documentation-related enums for documentation plan steps.
3
3
  * Used in DocumentationPlanStep metadata to indicate upload responsibility.
4
+ *
5
+ * NOTE: The UploadedBy Prisma enum is now the source of truth.
6
+ * This constant object is kept for backward compatibility.
4
7
  */
5
8
  /**
6
9
  * Indicates who is responsible for uploading a document in a documentation step.
10
+ * @deprecated Use the UploadedBy Prisma enum instead
7
11
  */
8
12
  export const UPLOADED_BY = {
9
13
  /** Document is uploaded by the customer/applicant */
@@ -16,6 +20,10 @@ export const UPLOADED_BY = {
16
20
  DEVELOPER: 'DEVELOPER',
17
21
  /** Document is uploaded by the system (auto-generated) */
18
22
  SYSTEM: 'SYSTEM',
23
+ /** Document is uploaded by the platform staff */
24
+ PLATFORM: 'PLATFORM',
19
25
  /** Document is uploaded by a legal officer */
20
26
  LEGAL: 'LEGAL',
27
+ /** Document is uploaded by an insurer */
28
+ INSURER: 'INSURER',
21
29
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valentine-efagene/qshelter-common",
3
- "version": "2.0.138",
3
+ "version": "2.0.140",
4
4
  "description": "Shared database schemas and utilities for QShelter services",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -0,0 +1,134 @@
1
+ -- AlterTable
2
+ ALTER TABLE `application_documents` ADD COLUMN `documentName` VARCHAR(191) NULL,
3
+ ADD COLUMN `documentType` VARCHAR(191) NULL,
4
+ MODIFY `status` ENUM('DRAFT', 'PENDING', 'PENDING_SIGNATURE', 'SENT', 'VIEWED', 'SIGNED', 'APPROVED', 'REJECTED', 'EXPIRED', 'CANCELLED', 'NEEDS_REUPLOAD') NOT NULL DEFAULT 'PENDING';
5
+
6
+ -- CreateTable
7
+ CREATE TABLE `document_definitions` (
8
+ `id` VARCHAR(191) NOT NULL,
9
+ `planId` VARCHAR(191) NOT NULL,
10
+ `documentType` VARCHAR(191) NOT NULL,
11
+ `documentName` VARCHAR(191) NOT NULL,
12
+ `uploadedBy` ENUM('CUSTOMER', 'LENDER', 'DEVELOPER', 'LEGAL', 'INSURER', 'PLATFORM') NOT NULL DEFAULT 'CUSTOMER',
13
+ `order` INTEGER NOT NULL,
14
+ `isRequired` BOOLEAN NOT NULL DEFAULT true,
15
+ `description` TEXT NULL,
16
+ `maxSizeBytes` INTEGER NULL,
17
+ `allowedMimeTypes` VARCHAR(191) NULL,
18
+ `expiryDays` INTEGER NULL,
19
+ `minFiles` INTEGER NOT NULL DEFAULT 1,
20
+ `maxFiles` INTEGER NOT NULL DEFAULT 1,
21
+ `condition` JSON NULL,
22
+ `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
23
+ `updatedAt` DATETIME(3) NOT NULL,
24
+
25
+ INDEX `document_definitions_planId_idx`(`planId`),
26
+ PRIMARY KEY (`id`)
27
+ ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
28
+
29
+ -- CreateTable
30
+ CREATE TABLE `approval_stages` (
31
+ `id` VARCHAR(191) NOT NULL,
32
+ `planId` VARCHAR(191) NOT NULL,
33
+ `name` VARCHAR(191) NOT NULL,
34
+ `order` INTEGER NOT NULL,
35
+ `reviewParty` ENUM('INTERNAL', 'BANK', 'DEVELOPER', 'LEGAL', 'GOVERNMENT', 'INSURER', 'CUSTOMER') NOT NULL,
36
+ `autoTransition` BOOLEAN NOT NULL DEFAULT false,
37
+ `waitForAllDocuments` BOOLEAN NOT NULL DEFAULT true,
38
+ `allowEarlyVisibility` BOOLEAN NOT NULL DEFAULT false,
39
+ `onRejection` ENUM('CASCADE_BACK', 'RESTART_CURRENT', 'RESTART_FROM_STAGE') NOT NULL DEFAULT 'CASCADE_BACK',
40
+ `restartFromStageOrder` INTEGER NULL,
41
+ `organizationId` VARCHAR(191) NULL,
42
+ `slaHours` INTEGER NULL,
43
+ `description` TEXT NULL,
44
+ `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
45
+ `updatedAt` DATETIME(3) NOT NULL,
46
+
47
+ INDEX `approval_stages_planId_idx`(`planId`),
48
+ UNIQUE INDEX `approval_stages_planId_order_key`(`planId`, `order`),
49
+ PRIMARY KEY (`id`)
50
+ ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
51
+
52
+ -- CreateTable
53
+ CREATE TABLE `approval_stage_progress` (
54
+ `id` VARCHAR(191) NOT NULL,
55
+ `tenantId` VARCHAR(191) NOT NULL,
56
+ `documentationPhaseId` VARCHAR(191) NOT NULL,
57
+ `approvalStageId` VARCHAR(191) NOT NULL,
58
+ `name` VARCHAR(191) NOT NULL,
59
+ `order` INTEGER NOT NULL,
60
+ `reviewParty` ENUM('INTERNAL', 'BANK', 'DEVELOPER', 'LEGAL', 'GOVERNMENT', 'INSURER', 'CUSTOMER') NOT NULL,
61
+ `autoTransition` BOOLEAN NOT NULL DEFAULT false,
62
+ `waitForAllDocuments` BOOLEAN NOT NULL DEFAULT true,
63
+ `allowEarlyVisibility` BOOLEAN NOT NULL DEFAULT false,
64
+ `onRejection` ENUM('CASCADE_BACK', 'RESTART_CURRENT', 'RESTART_FROM_STAGE') NOT NULL DEFAULT 'CASCADE_BACK',
65
+ `restartFromStageOrder` INTEGER NULL,
66
+ `status` ENUM('PENDING', 'IN_PROGRESS', 'AWAITING_TRANSITION', 'COMPLETED') NOT NULL DEFAULT 'PENDING',
67
+ `activatedAt` DATETIME(3) NULL,
68
+ `completedAt` DATETIME(3) NULL,
69
+ `completedById` VARCHAR(191) NULL,
70
+ `transitionComment` TEXT NULL,
71
+ `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
72
+ `updatedAt` DATETIME(3) NOT NULL,
73
+
74
+ INDEX `approval_stage_progress_tenantId_idx`(`tenantId`),
75
+ INDEX `approval_stage_progress_documentationPhaseId_idx`(`documentationPhaseId`),
76
+ INDEX `approval_stage_progress_approvalStageId_idx`(`approvalStageId`),
77
+ INDEX `approval_stage_progress_status_idx`(`status`),
78
+ UNIQUE INDEX `approval_stage_progress_documentationPhaseId_order_key`(`documentationPhaseId`, `order`),
79
+ PRIMARY KEY (`id`)
80
+ ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
81
+
82
+ -- CreateTable
83
+ CREATE TABLE `document_approvals` (
84
+ `id` VARCHAR(191) NOT NULL,
85
+ `tenantId` VARCHAR(191) NOT NULL,
86
+ `documentId` VARCHAR(191) NOT NULL,
87
+ `stageProgressId` VARCHAR(191) NOT NULL,
88
+ `reviewerId` VARCHAR(191) NOT NULL,
89
+ `reviewParty` ENUM('INTERNAL', 'BANK', 'DEVELOPER', 'LEGAL', 'GOVERNMENT', 'INSURER', 'CUSTOMER') NOT NULL,
90
+ `decision` ENUM('PENDING', 'APPROVED', 'REJECTED', 'CHANGES_REQUESTED', 'WAIVED') NOT NULL,
91
+ `comment` TEXT NULL,
92
+ `reviewedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
93
+ `createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
94
+
95
+ INDEX `document_approvals_tenantId_idx`(`tenantId`),
96
+ INDEX `document_approvals_documentId_idx`(`documentId`),
97
+ INDEX `document_approvals_stageProgressId_idx`(`stageProgressId`),
98
+ INDEX `document_approvals_reviewerId_idx`(`reviewerId`),
99
+ INDEX `document_approvals_decision_idx`(`decision`),
100
+ PRIMARY KEY (`id`)
101
+ ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
102
+
103
+ -- CreateIndex
104
+ CREATE INDEX `application_documents_documentType_idx` ON `application_documents`(`documentType`);
105
+
106
+ -- AddForeignKey
107
+ ALTER TABLE `document_definitions` ADD CONSTRAINT `document_definitions_planId_fkey` FOREIGN KEY (`planId`) REFERENCES `documentation_plans`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
108
+
109
+ -- AddForeignKey
110
+ ALTER TABLE `approval_stages` ADD CONSTRAINT `approval_stages_planId_fkey` FOREIGN KEY (`planId`) REFERENCES `documentation_plans`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
111
+
112
+ -- AddForeignKey
113
+ ALTER TABLE `approval_stage_progress` ADD CONSTRAINT `approval_stage_progress_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
114
+
115
+ -- AddForeignKey
116
+ 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;
117
+
118
+ -- AddForeignKey
119
+ 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;
120
+
121
+ -- AddForeignKey
122
+ 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;
123
+
124
+ -- AddForeignKey
125
+ ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_tenantId_fkey` FOREIGN KEY (`tenantId`) REFERENCES `tenants`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
126
+
127
+ -- AddForeignKey
128
+ ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_documentId_fkey` FOREIGN KEY (`documentId`) REFERENCES `application_documents`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
129
+
130
+ -- AddForeignKey
131
+ ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_stageProgressId_fkey` FOREIGN KEY (`stageProgressId`) REFERENCES `approval_stage_progress`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
132
+
133
+ -- AddForeignKey
134
+ ALTER TABLE `document_approvals` ADD CONSTRAINT `document_approvals_reviewerId_fkey` FOREIGN KEY (`reviewerId`) REFERENCES `users`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;