@valentine-efagene/qshelter-common 2.0.108 → 2.0.109

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@valentine-efagene/qshelter-common",
3
- "version": "2.0.108",
3
+ "version": "2.0.109",
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,10 @@
1
+ -- AlterTable
2
+ ALTER TABLE `documentation_plan_steps` ADD COLUMN `allowedMimeTypes` VARCHAR(191) NULL,
3
+ ADD COLUMN `condition` JSON NULL,
4
+ ADD COLUMN `description` TEXT NULL,
5
+ ADD COLUMN `expiryDays` INTEGER NULL,
6
+ ADD COLUMN `isRequired` BOOLEAN NOT NULL DEFAULT true,
7
+ ADD COLUMN `maxFiles` INTEGER NOT NULL DEFAULT 1,
8
+ ADD COLUMN `maxSizeBytes` INTEGER NULL,
9
+ ADD COLUMN `minFiles` INTEGER NOT NULL DEFAULT 1,
10
+ ADD COLUMN `requiresManualReview` BOOLEAN NOT NULL DEFAULT false;
@@ -1081,6 +1081,14 @@ model DocumentationPlanStep {
1081
1081
  minFiles Int @default(1) // Minimum number of files required
1082
1082
  maxFiles Int @default(1) // Maximum number of files allowed
1083
1083
 
1084
+ // Conditional logic - when is this step required?
1085
+ // NULL = always required (unconditional)
1086
+ // Examples:
1087
+ // { "questionKey": "mortgage_type", "operator": "EQUALS", "value": "JOINT" }
1088
+ // { "questionKey": "employment_status", "operator": "IN", "values": ["SELF_EMPLOYED", "BUSINESS_OWNER"] }
1089
+ // { "all": [{ "questionKey": "has_spouse", "operator": "EQUALS", "value": "YES" }, { "questionKey": "spouse_employed", "operator": "EQUALS", "value": "YES" }] }
1090
+ condition Json?
1091
+
1084
1092
  createdAt DateTime @default(now())
1085
1093
  updatedAt DateTime @updatedAt
1086
1094