@valentine-efagene/qshelter-common 2.0.105 → 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.
@@ -1071,6 +1071,24 @@ model DocumentationPlanStep {
1071
1071
  documentType String?
1072
1072
  metadata Json?
1073
1073
 
1074
+ // Document validation rules (for UPLOAD steps)
1075
+ isRequired Boolean @default(true)
1076
+ description String? @db.Text // Instructions for the user
1077
+ maxSizeBytes Int? // Max file size allowed (e.g., 5242880 for 5MB)
1078
+ allowedMimeTypes String? // CSV: application/pdf,image/jpeg,image/png
1079
+ expiryDays Int? // Document must not be older than X days
1080
+ requiresManualReview Boolean @default(false)
1081
+ minFiles Int @default(1) // Minimum number of files required
1082
+ maxFiles Int @default(1) // Maximum number of files allowed
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
+
1074
1092
  createdAt DateTime @default(now())
1075
1093
  updatedAt DateTime @updatedAt
1076
1094