@valentine-efagene/qshelter-common 2.0.31 → 2.0.32
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/commonInputTypes.d.ts +22 -0
- package/dist/generated/client/internal/class.js +2 -2
- package/dist/generated/client/internal/prismaNamespace.d.ts +3 -0
- package/dist/generated/client/internal/prismaNamespace.js +3 -0
- package/dist/generated/client/internal/prismaNamespaceBrowser.d.ts +3 -0
- package/dist/generated/client/internal/prismaNamespaceBrowser.js +3 -0
- package/dist/generated/client/models/ContractPhase.d.ts +52 -1
- package/dist/generated/client/models/PaymentPlan.d.ts +42 -1
- package/dist/generated/client/models/PropertyPaymentMethodPhase.d.ts +51 -1
- package/package.json +1 -1
- package/prisma/migrations/20260101110958_add_collect_funds/migration.sql +8 -0
- package/prisma/schema.prisma +84 -69
|
@@ -36,6 +36,7 @@ export type PropertyPaymentMethodPhaseMinAggregateOutputType = {
|
|
|
36
36
|
order: number | null;
|
|
37
37
|
interestRate: number | null;
|
|
38
38
|
percentOfPrice: number | null;
|
|
39
|
+
collectFunds: boolean | null;
|
|
39
40
|
requiresPreviousPhaseCompletion: boolean | null;
|
|
40
41
|
minimumCompletionPercentage: number | null;
|
|
41
42
|
completionCriterion: $Enums.CompletionCriterion | null;
|
|
@@ -53,6 +54,7 @@ export type PropertyPaymentMethodPhaseMaxAggregateOutputType = {
|
|
|
53
54
|
order: number | null;
|
|
54
55
|
interestRate: number | null;
|
|
55
56
|
percentOfPrice: number | null;
|
|
57
|
+
collectFunds: boolean | null;
|
|
56
58
|
requiresPreviousPhaseCompletion: boolean | null;
|
|
57
59
|
minimumCompletionPercentage: number | null;
|
|
58
60
|
completionCriterion: $Enums.CompletionCriterion | null;
|
|
@@ -70,6 +72,7 @@ export type PropertyPaymentMethodPhaseCountAggregateOutputType = {
|
|
|
70
72
|
order: number;
|
|
71
73
|
interestRate: number;
|
|
72
74
|
percentOfPrice: number;
|
|
75
|
+
collectFunds: number;
|
|
73
76
|
requiresPreviousPhaseCompletion: number;
|
|
74
77
|
minimumCompletionPercentage: number;
|
|
75
78
|
completionCriterion: number;
|
|
@@ -102,6 +105,7 @@ export type PropertyPaymentMethodPhaseMinAggregateInputType = {
|
|
|
102
105
|
order?: true;
|
|
103
106
|
interestRate?: true;
|
|
104
107
|
percentOfPrice?: true;
|
|
108
|
+
collectFunds?: true;
|
|
105
109
|
requiresPreviousPhaseCompletion?: true;
|
|
106
110
|
minimumCompletionPercentage?: true;
|
|
107
111
|
completionCriterion?: true;
|
|
@@ -119,6 +123,7 @@ export type PropertyPaymentMethodPhaseMaxAggregateInputType = {
|
|
|
119
123
|
order?: true;
|
|
120
124
|
interestRate?: true;
|
|
121
125
|
percentOfPrice?: true;
|
|
126
|
+
collectFunds?: true;
|
|
122
127
|
requiresPreviousPhaseCompletion?: true;
|
|
123
128
|
minimumCompletionPercentage?: true;
|
|
124
129
|
completionCriterion?: true;
|
|
@@ -136,6 +141,7 @@ export type PropertyPaymentMethodPhaseCountAggregateInputType = {
|
|
|
136
141
|
order?: true;
|
|
137
142
|
interestRate?: true;
|
|
138
143
|
percentOfPrice?: true;
|
|
144
|
+
collectFunds?: true;
|
|
139
145
|
requiresPreviousPhaseCompletion?: true;
|
|
140
146
|
minimumCompletionPercentage?: true;
|
|
141
147
|
completionCriterion?: true;
|
|
@@ -232,6 +238,7 @@ export type PropertyPaymentMethodPhaseGroupByOutputType = {
|
|
|
232
238
|
order: number;
|
|
233
239
|
interestRate: number | null;
|
|
234
240
|
percentOfPrice: number | null;
|
|
241
|
+
collectFunds: boolean | null;
|
|
235
242
|
requiresPreviousPhaseCompletion: boolean;
|
|
236
243
|
minimumCompletionPercentage: number | null;
|
|
237
244
|
completionCriterion: $Enums.CompletionCriterion | null;
|
|
@@ -262,6 +269,7 @@ export type PropertyPaymentMethodPhaseWhereInput = {
|
|
|
262
269
|
order?: Prisma.IntFilter<"PropertyPaymentMethodPhase"> | number;
|
|
263
270
|
interestRate?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
264
271
|
percentOfPrice?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
272
|
+
collectFunds?: Prisma.BoolNullableFilter<"PropertyPaymentMethodPhase"> | boolean | null;
|
|
265
273
|
requiresPreviousPhaseCompletion?: Prisma.BoolFilter<"PropertyPaymentMethodPhase"> | boolean;
|
|
266
274
|
minimumCompletionPercentage?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
267
275
|
completionCriterion?: Prisma.EnumCompletionCriterionNullableFilter<"PropertyPaymentMethodPhase"> | $Enums.CompletionCriterion | null;
|
|
@@ -285,6 +293,7 @@ export type PropertyPaymentMethodPhaseOrderByWithRelationInput = {
|
|
|
285
293
|
order?: Prisma.SortOrder;
|
|
286
294
|
interestRate?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
287
295
|
percentOfPrice?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
296
|
+
collectFunds?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
288
297
|
requiresPreviousPhaseCompletion?: Prisma.SortOrder;
|
|
289
298
|
minimumCompletionPercentage?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
290
299
|
completionCriterion?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
@@ -312,6 +321,7 @@ export type PropertyPaymentMethodPhaseWhereUniqueInput = Prisma.AtLeast<{
|
|
|
312
321
|
order?: Prisma.IntFilter<"PropertyPaymentMethodPhase"> | number;
|
|
313
322
|
interestRate?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
314
323
|
percentOfPrice?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
324
|
+
collectFunds?: Prisma.BoolNullableFilter<"PropertyPaymentMethodPhase"> | boolean | null;
|
|
315
325
|
requiresPreviousPhaseCompletion?: Prisma.BoolFilter<"PropertyPaymentMethodPhase"> | boolean;
|
|
316
326
|
minimumCompletionPercentage?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
317
327
|
completionCriterion?: Prisma.EnumCompletionCriterionNullableFilter<"PropertyPaymentMethodPhase"> | $Enums.CompletionCriterion | null;
|
|
@@ -335,6 +345,7 @@ export type PropertyPaymentMethodPhaseOrderByWithAggregationInput = {
|
|
|
335
345
|
order?: Prisma.SortOrder;
|
|
336
346
|
interestRate?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
337
347
|
percentOfPrice?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
348
|
+
collectFunds?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
338
349
|
requiresPreviousPhaseCompletion?: Prisma.SortOrder;
|
|
339
350
|
minimumCompletionPercentage?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
340
351
|
completionCriterion?: Prisma.SortOrderInput | Prisma.SortOrder;
|
|
@@ -362,6 +373,7 @@ export type PropertyPaymentMethodPhaseScalarWhereWithAggregatesInput = {
|
|
|
362
373
|
order?: Prisma.IntWithAggregatesFilter<"PropertyPaymentMethodPhase"> | number;
|
|
363
374
|
interestRate?: Prisma.FloatNullableWithAggregatesFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
364
375
|
percentOfPrice?: Prisma.FloatNullableWithAggregatesFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
376
|
+
collectFunds?: Prisma.BoolNullableWithAggregatesFilter<"PropertyPaymentMethodPhase"> | boolean | null;
|
|
365
377
|
requiresPreviousPhaseCompletion?: Prisma.BoolWithAggregatesFilter<"PropertyPaymentMethodPhase"> | boolean;
|
|
366
378
|
minimumCompletionPercentage?: Prisma.FloatNullableWithAggregatesFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
367
379
|
completionCriterion?: Prisma.EnumCompletionCriterionNullableWithAggregatesFilter<"PropertyPaymentMethodPhase"> | $Enums.CompletionCriterion | null;
|
|
@@ -379,6 +391,7 @@ export type PropertyPaymentMethodPhaseCreateInput = {
|
|
|
379
391
|
order: number;
|
|
380
392
|
interestRate?: number | null;
|
|
381
393
|
percentOfPrice?: number | null;
|
|
394
|
+
collectFunds?: boolean | null;
|
|
382
395
|
requiresPreviousPhaseCompletion?: boolean;
|
|
383
396
|
minimumCompletionPercentage?: number | null;
|
|
384
397
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -402,6 +415,7 @@ export type PropertyPaymentMethodPhaseUncheckedCreateInput = {
|
|
|
402
415
|
order: number;
|
|
403
416
|
interestRate?: number | null;
|
|
404
417
|
percentOfPrice?: number | null;
|
|
418
|
+
collectFunds?: boolean | null;
|
|
405
419
|
requiresPreviousPhaseCompletion?: boolean;
|
|
406
420
|
minimumCompletionPercentage?: number | null;
|
|
407
421
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -421,6 +435,7 @@ export type PropertyPaymentMethodPhaseUpdateInput = {
|
|
|
421
435
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
422
436
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
423
437
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
438
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
424
439
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
425
440
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
426
441
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -444,6 +459,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateInput = {
|
|
|
444
459
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
445
460
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
446
461
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
462
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
447
463
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
448
464
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
449
465
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -465,6 +481,7 @@ export type PropertyPaymentMethodPhaseCreateManyInput = {
|
|
|
465
481
|
order: number;
|
|
466
482
|
interestRate?: number | null;
|
|
467
483
|
percentOfPrice?: number | null;
|
|
484
|
+
collectFunds?: boolean | null;
|
|
468
485
|
requiresPreviousPhaseCompletion?: boolean;
|
|
469
486
|
minimumCompletionPercentage?: number | null;
|
|
470
487
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -482,6 +499,7 @@ export type PropertyPaymentMethodPhaseUpdateManyMutationInput = {
|
|
|
482
499
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
483
500
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
484
501
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
502
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
485
503
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
486
504
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
487
505
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -501,6 +519,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateManyInput = {
|
|
|
501
519
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
502
520
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
503
521
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
522
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
504
523
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
505
524
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
506
525
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -533,6 +552,7 @@ export type PropertyPaymentMethodPhaseCountOrderByAggregateInput = {
|
|
|
533
552
|
order?: Prisma.SortOrder;
|
|
534
553
|
interestRate?: Prisma.SortOrder;
|
|
535
554
|
percentOfPrice?: Prisma.SortOrder;
|
|
555
|
+
collectFunds?: Prisma.SortOrder;
|
|
536
556
|
requiresPreviousPhaseCompletion?: Prisma.SortOrder;
|
|
537
557
|
minimumCompletionPercentage?: Prisma.SortOrder;
|
|
538
558
|
completionCriterion?: Prisma.SortOrder;
|
|
@@ -558,6 +578,7 @@ export type PropertyPaymentMethodPhaseMaxOrderByAggregateInput = {
|
|
|
558
578
|
order?: Prisma.SortOrder;
|
|
559
579
|
interestRate?: Prisma.SortOrder;
|
|
560
580
|
percentOfPrice?: Prisma.SortOrder;
|
|
581
|
+
collectFunds?: Prisma.SortOrder;
|
|
561
582
|
requiresPreviousPhaseCompletion?: Prisma.SortOrder;
|
|
562
583
|
minimumCompletionPercentage?: Prisma.SortOrder;
|
|
563
584
|
completionCriterion?: Prisma.SortOrder;
|
|
@@ -575,6 +596,7 @@ export type PropertyPaymentMethodPhaseMinOrderByAggregateInput = {
|
|
|
575
596
|
order?: Prisma.SortOrder;
|
|
576
597
|
interestRate?: Prisma.SortOrder;
|
|
577
598
|
percentOfPrice?: Prisma.SortOrder;
|
|
599
|
+
collectFunds?: Prisma.SortOrder;
|
|
578
600
|
requiresPreviousPhaseCompletion?: Prisma.SortOrder;
|
|
579
601
|
minimumCompletionPercentage?: Prisma.SortOrder;
|
|
580
602
|
completionCriterion?: Prisma.SortOrder;
|
|
@@ -673,6 +695,9 @@ export type EnumPhaseCategoryFieldUpdateOperationsInput = {
|
|
|
673
695
|
export type EnumPhaseTypeFieldUpdateOperationsInput = {
|
|
674
696
|
set?: $Enums.PhaseType;
|
|
675
697
|
};
|
|
698
|
+
export type NullableBoolFieldUpdateOperationsInput = {
|
|
699
|
+
set?: boolean | null;
|
|
700
|
+
};
|
|
676
701
|
export type NullableEnumCompletionCriterionFieldUpdateOperationsInput = {
|
|
677
702
|
set?: $Enums.CompletionCriterion | null;
|
|
678
703
|
};
|
|
@@ -709,6 +734,7 @@ export type PropertyPaymentMethodPhaseCreateWithoutPaymentPlanInput = {
|
|
|
709
734
|
order: number;
|
|
710
735
|
interestRate?: number | null;
|
|
711
736
|
percentOfPrice?: number | null;
|
|
737
|
+
collectFunds?: boolean | null;
|
|
712
738
|
requiresPreviousPhaseCompletion?: boolean;
|
|
713
739
|
minimumCompletionPercentage?: number | null;
|
|
714
740
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -730,6 +756,7 @@ export type PropertyPaymentMethodPhaseUncheckedCreateWithoutPaymentPlanInput = {
|
|
|
730
756
|
order: number;
|
|
731
757
|
interestRate?: number | null;
|
|
732
758
|
percentOfPrice?: number | null;
|
|
759
|
+
collectFunds?: boolean | null;
|
|
733
760
|
requiresPreviousPhaseCompletion?: boolean;
|
|
734
761
|
minimumCompletionPercentage?: number | null;
|
|
735
762
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -775,6 +802,7 @@ export type PropertyPaymentMethodPhaseScalarWhereInput = {
|
|
|
775
802
|
order?: Prisma.IntFilter<"PropertyPaymentMethodPhase"> | number;
|
|
776
803
|
interestRate?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
777
804
|
percentOfPrice?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
805
|
+
collectFunds?: Prisma.BoolNullableFilter<"PropertyPaymentMethodPhase"> | boolean | null;
|
|
778
806
|
requiresPreviousPhaseCompletion?: Prisma.BoolFilter<"PropertyPaymentMethodPhase"> | boolean;
|
|
779
807
|
minimumCompletionPercentage?: Prisma.FloatNullableFilter<"PropertyPaymentMethodPhase"> | number | null;
|
|
780
808
|
completionCriterion?: Prisma.EnumCompletionCriterionNullableFilter<"PropertyPaymentMethodPhase"> | $Enums.CompletionCriterion | null;
|
|
@@ -792,6 +820,7 @@ export type PropertyPaymentMethodPhaseCreateWithoutPaymentMethodInput = {
|
|
|
792
820
|
order: number;
|
|
793
821
|
interestRate?: number | null;
|
|
794
822
|
percentOfPrice?: number | null;
|
|
823
|
+
collectFunds?: boolean | null;
|
|
795
824
|
requiresPreviousPhaseCompletion?: boolean;
|
|
796
825
|
minimumCompletionPercentage?: number | null;
|
|
797
826
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -813,6 +842,7 @@ export type PropertyPaymentMethodPhaseUncheckedCreateWithoutPaymentMethodInput =
|
|
|
813
842
|
order: number;
|
|
814
843
|
interestRate?: number | null;
|
|
815
844
|
percentOfPrice?: number | null;
|
|
845
|
+
collectFunds?: boolean | null;
|
|
816
846
|
requiresPreviousPhaseCompletion?: boolean;
|
|
817
847
|
minimumCompletionPercentage?: number | null;
|
|
818
848
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -853,6 +883,7 @@ export type PropertyPaymentMethodPhaseCreateWithoutStepsInput = {
|
|
|
853
883
|
order: number;
|
|
854
884
|
interestRate?: number | null;
|
|
855
885
|
percentOfPrice?: number | null;
|
|
886
|
+
collectFunds?: boolean | null;
|
|
856
887
|
requiresPreviousPhaseCompletion?: boolean;
|
|
857
888
|
minimumCompletionPercentage?: number | null;
|
|
858
889
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -875,6 +906,7 @@ export type PropertyPaymentMethodPhaseUncheckedCreateWithoutStepsInput = {
|
|
|
875
906
|
order: number;
|
|
876
907
|
interestRate?: number | null;
|
|
877
908
|
percentOfPrice?: number | null;
|
|
909
|
+
collectFunds?: boolean | null;
|
|
878
910
|
requiresPreviousPhaseCompletion?: boolean;
|
|
879
911
|
minimumCompletionPercentage?: number | null;
|
|
880
912
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -906,6 +938,7 @@ export type PropertyPaymentMethodPhaseUpdateWithoutStepsInput = {
|
|
|
906
938
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
907
939
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
908
940
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
941
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
909
942
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
910
943
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
911
944
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -928,6 +961,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateWithoutStepsInput = {
|
|
|
928
961
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
929
962
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
930
963
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
964
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
931
965
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
932
966
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
933
967
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -946,6 +980,7 @@ export type PropertyPaymentMethodPhaseCreateWithoutRequiredDocumentsInput = {
|
|
|
946
980
|
order: number;
|
|
947
981
|
interestRate?: number | null;
|
|
948
982
|
percentOfPrice?: number | null;
|
|
983
|
+
collectFunds?: boolean | null;
|
|
949
984
|
requiresPreviousPhaseCompletion?: boolean;
|
|
950
985
|
minimumCompletionPercentage?: number | null;
|
|
951
986
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -968,6 +1003,7 @@ export type PropertyPaymentMethodPhaseUncheckedCreateWithoutRequiredDocumentsInp
|
|
|
968
1003
|
order: number;
|
|
969
1004
|
interestRate?: number | null;
|
|
970
1005
|
percentOfPrice?: number | null;
|
|
1006
|
+
collectFunds?: boolean | null;
|
|
971
1007
|
requiresPreviousPhaseCompletion?: boolean;
|
|
972
1008
|
minimumCompletionPercentage?: number | null;
|
|
973
1009
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -999,6 +1035,7 @@ export type PropertyPaymentMethodPhaseUpdateWithoutRequiredDocumentsInput = {
|
|
|
999
1035
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1000
1036
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1001
1037
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1038
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1002
1039
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1003
1040
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1004
1041
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1021,6 +1058,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateWithoutRequiredDocumentsInp
|
|
|
1021
1058
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1022
1059
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1023
1060
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1061
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1024
1062
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1025
1063
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1026
1064
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1040,6 +1078,7 @@ export type PropertyPaymentMethodPhaseCreateManyPaymentPlanInput = {
|
|
|
1040
1078
|
order: number;
|
|
1041
1079
|
interestRate?: number | null;
|
|
1042
1080
|
percentOfPrice?: number | null;
|
|
1081
|
+
collectFunds?: boolean | null;
|
|
1043
1082
|
requiresPreviousPhaseCompletion?: boolean;
|
|
1044
1083
|
minimumCompletionPercentage?: number | null;
|
|
1045
1084
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -1057,6 +1096,7 @@ export type PropertyPaymentMethodPhaseUpdateWithoutPaymentPlanInput = {
|
|
|
1057
1096
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1058
1097
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1059
1098
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1099
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1060
1100
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1061
1101
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1062
1102
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1078,6 +1118,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateWithoutPaymentPlanInput = {
|
|
|
1078
1118
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1079
1119
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1080
1120
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1121
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1081
1122
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1082
1123
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1083
1124
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1098,6 +1139,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateManyWithoutPaymentPlanInput
|
|
|
1098
1139
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1099
1140
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1100
1141
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1142
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1101
1143
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1102
1144
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1103
1145
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1116,6 +1158,7 @@ export type PropertyPaymentMethodPhaseCreateManyPaymentMethodInput = {
|
|
|
1116
1158
|
order: number;
|
|
1117
1159
|
interestRate?: number | null;
|
|
1118
1160
|
percentOfPrice?: number | null;
|
|
1161
|
+
collectFunds?: boolean | null;
|
|
1119
1162
|
requiresPreviousPhaseCompletion?: boolean;
|
|
1120
1163
|
minimumCompletionPercentage?: number | null;
|
|
1121
1164
|
completionCriterion?: $Enums.CompletionCriterion | null;
|
|
@@ -1133,6 +1176,7 @@ export type PropertyPaymentMethodPhaseUpdateWithoutPaymentMethodInput = {
|
|
|
1133
1176
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1134
1177
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1135
1178
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1179
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1136
1180
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1137
1181
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1138
1182
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1154,6 +1198,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateWithoutPaymentMethodInput =
|
|
|
1154
1198
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1155
1199
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1156
1200
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1201
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1157
1202
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1158
1203
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1159
1204
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1174,6 +1219,7 @@ export type PropertyPaymentMethodPhaseUncheckedUpdateManyWithoutPaymentMethodInp
|
|
|
1174
1219
|
order?: Prisma.IntFieldUpdateOperationsInput | number;
|
|
1175
1220
|
interestRate?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1176
1221
|
percentOfPrice?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1222
|
+
collectFunds?: Prisma.NullableBoolFieldUpdateOperationsInput | boolean | null;
|
|
1177
1223
|
requiresPreviousPhaseCompletion?: Prisma.BoolFieldUpdateOperationsInput | boolean;
|
|
1178
1224
|
minimumCompletionPercentage?: Prisma.NullableFloatFieldUpdateOperationsInput | number | null;
|
|
1179
1225
|
completionCriterion?: Prisma.NullableEnumCompletionCriterionFieldUpdateOperationsInput | $Enums.CompletionCriterion | null;
|
|
@@ -1225,6 +1271,7 @@ export type PropertyPaymentMethodPhaseSelect<ExtArgs extends runtime.Types.Exten
|
|
|
1225
1271
|
order?: boolean;
|
|
1226
1272
|
interestRate?: boolean;
|
|
1227
1273
|
percentOfPrice?: boolean;
|
|
1274
|
+
collectFunds?: boolean;
|
|
1228
1275
|
requiresPreviousPhaseCompletion?: boolean;
|
|
1229
1276
|
minimumCompletionPercentage?: boolean;
|
|
1230
1277
|
completionCriterion?: boolean;
|
|
@@ -1249,6 +1296,7 @@ export type PropertyPaymentMethodPhaseSelectScalar = {
|
|
|
1249
1296
|
order?: boolean;
|
|
1250
1297
|
interestRate?: boolean;
|
|
1251
1298
|
percentOfPrice?: boolean;
|
|
1299
|
+
collectFunds?: boolean;
|
|
1252
1300
|
requiresPreviousPhaseCompletion?: boolean;
|
|
1253
1301
|
minimumCompletionPercentage?: boolean;
|
|
1254
1302
|
completionCriterion?: boolean;
|
|
@@ -1257,7 +1305,7 @@ export type PropertyPaymentMethodPhaseSelectScalar = {
|
|
|
1257
1305
|
createdAt?: boolean;
|
|
1258
1306
|
updatedAt?: boolean;
|
|
1259
1307
|
};
|
|
1260
|
-
export type PropertyPaymentMethodPhaseOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "paymentMethodId" | "paymentPlanId" | "name" | "description" | "phaseCategory" | "phaseType" | "order" | "interestRate" | "percentOfPrice" | "requiresPreviousPhaseCompletion" | "minimumCompletionPercentage" | "completionCriterion" | "stepDefinitionsSnapshot" | "requiredDocumentSnapshot" | "createdAt" | "updatedAt", ExtArgs["result"]["propertyPaymentMethodPhase"]>;
|
|
1308
|
+
export type PropertyPaymentMethodPhaseOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "paymentMethodId" | "paymentPlanId" | "name" | "description" | "phaseCategory" | "phaseType" | "order" | "interestRate" | "percentOfPrice" | "collectFunds" | "requiresPreviousPhaseCompletion" | "minimumCompletionPercentage" | "completionCriterion" | "stepDefinitionsSnapshot" | "requiredDocumentSnapshot" | "createdAt" | "updatedAt", ExtArgs["result"]["propertyPaymentMethodPhase"]>;
|
|
1261
1309
|
export type PropertyPaymentMethodPhaseInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
|
1262
1310
|
paymentMethod?: boolean | Prisma.PropertyPaymentMethodDefaultArgs<ExtArgs>;
|
|
1263
1311
|
paymentPlan?: boolean | Prisma.PropertyPaymentMethodPhase$paymentPlanArgs<ExtArgs>;
|
|
@@ -1284,6 +1332,7 @@ export type $PropertyPaymentMethodPhasePayload<ExtArgs extends runtime.Types.Ext
|
|
|
1284
1332
|
order: number;
|
|
1285
1333
|
interestRate: number | null;
|
|
1286
1334
|
percentOfPrice: number | null;
|
|
1335
|
+
collectFunds: boolean | null;
|
|
1287
1336
|
requiresPreviousPhaseCompletion: boolean;
|
|
1288
1337
|
minimumCompletionPercentage: number | null;
|
|
1289
1338
|
completionCriterion: $Enums.CompletionCriterion | null;
|
|
@@ -1607,6 +1656,7 @@ export interface PropertyPaymentMethodPhaseFieldRefs {
|
|
|
1607
1656
|
readonly order: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Int'>;
|
|
1608
1657
|
readonly interestRate: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Float'>;
|
|
1609
1658
|
readonly percentOfPrice: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Float'>;
|
|
1659
|
+
readonly collectFunds: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Boolean'>;
|
|
1610
1660
|
readonly requiresPreviousPhaseCompletion: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Boolean'>;
|
|
1611
1661
|
readonly minimumCompletionPercentage: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'Float'>;
|
|
1612
1662
|
readonly completionCriterion: Prisma.FieldRef<"PropertyPaymentMethodPhase", 'CompletionCriterion'>;
|
package/package.json
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- AlterTable
|
|
2
|
+
ALTER TABLE `contract_phases` ADD COLUMN `collectFunds` BOOLEAN NOT NULL DEFAULT true;
|
|
3
|
+
|
|
4
|
+
-- AlterTable
|
|
5
|
+
ALTER TABLE `payment_plans` ADD COLUMN `collectFunds` BOOLEAN NOT NULL DEFAULT true;
|
|
6
|
+
|
|
7
|
+
-- AlterTable
|
|
8
|
+
ALTER TABLE `property_payment_method_phases` ADD COLUMN `collectFunds` BOOLEAN NULL;
|
package/prisma/schema.prisma
CHANGED
|
@@ -104,37 +104,37 @@ enum ApprovalDecision {
|
|
|
104
104
|
// =============================================================================
|
|
105
105
|
|
|
106
106
|
enum TerminationType {
|
|
107
|
-
BUYER_WITHDRAWAL
|
|
108
|
-
SELLER_WITHDRAWAL
|
|
109
|
-
MUTUAL_AGREEMENT
|
|
110
|
-
PAYMENT_DEFAULT
|
|
111
|
-
DOCUMENT_FAILURE
|
|
112
|
-
FRAUD
|
|
113
|
-
FORCE_MAJEURE
|
|
114
|
-
PROPERTY_UNAVAILABLE
|
|
115
|
-
REGULATORY
|
|
116
|
-
OTHER
|
|
107
|
+
BUYER_WITHDRAWAL // Buyer wants to cancel (voluntary)
|
|
108
|
+
SELLER_WITHDRAWAL // Seller/developer cancels
|
|
109
|
+
MUTUAL_AGREEMENT // Both parties agree to terminate
|
|
110
|
+
PAYMENT_DEFAULT // Buyer failed payment obligations
|
|
111
|
+
DOCUMENT_FAILURE // Buyer failed to provide required documents
|
|
112
|
+
FRAUD // Fraudulent activity detected
|
|
113
|
+
FORCE_MAJEURE // External circumstances (disaster, etc.)
|
|
114
|
+
PROPERTY_UNAVAILABLE // Property no longer available
|
|
115
|
+
REGULATORY // Regulatory/legal requirement
|
|
116
|
+
OTHER // Other reasons (with notes)
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
enum TerminationStatus {
|
|
120
|
-
REQUESTED
|
|
121
|
-
PENDING_REVIEW
|
|
122
|
-
PENDING_REFUND
|
|
123
|
-
REFUND_IN_PROGRESS
|
|
124
|
-
REFUND_COMPLETED
|
|
125
|
-
COMPLETED
|
|
126
|
-
REJECTED
|
|
127
|
-
CANCELLED
|
|
120
|
+
REQUESTED // Initial request submitted
|
|
121
|
+
PENDING_REVIEW // Awaiting admin review
|
|
122
|
+
PENDING_REFUND // Approved, awaiting refund processing
|
|
123
|
+
REFUND_IN_PROGRESS // Refund being processed
|
|
124
|
+
REFUND_COMPLETED // Refund completed
|
|
125
|
+
COMPLETED // Termination fully executed (no refund or refund done)
|
|
126
|
+
REJECTED // Termination request rejected
|
|
127
|
+
CANCELLED // Termination request was cancelled
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
enum RefundStatus {
|
|
131
|
-
NOT_APPLICABLE
|
|
132
|
-
PENDING
|
|
133
|
-
INITIATED
|
|
134
|
-
PROCESSING
|
|
135
|
-
PARTIAL_COMPLETED
|
|
136
|
-
COMPLETED
|
|
137
|
-
FAILED
|
|
131
|
+
NOT_APPLICABLE // No refund needed (no payments made)
|
|
132
|
+
PENDING // Refund not yet initiated
|
|
133
|
+
INITIATED // Refund request sent to payment gateway
|
|
134
|
+
PROCESSING // Gateway processing refund
|
|
135
|
+
PARTIAL_COMPLETED // Some refund completed (penalties deducted)
|
|
136
|
+
COMPLETED // Full refund completed
|
|
137
|
+
FAILED // Refund failed (needs manual intervention)
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
enum TerminationInitiator {
|
|
@@ -206,8 +206,8 @@ model User {
|
|
|
206
206
|
reviewedChangeRequests PaymentMethodChangeRequest[] @relation("ChangeReviewer")
|
|
207
207
|
|
|
208
208
|
// Contract terminations
|
|
209
|
-
initiatedTerminations
|
|
210
|
-
reviewedTerminations
|
|
209
|
+
initiatedTerminations ContractTermination[] @relation("TerminationInitiator")
|
|
210
|
+
reviewedTerminations ContractTermination[] @relation("TerminationReviewer")
|
|
211
211
|
|
|
212
212
|
@@index([email])
|
|
213
213
|
@@index([tenantId])
|
|
@@ -284,7 +284,7 @@ model Tenant {
|
|
|
284
284
|
documentRequirementRules DocumentRequirementRule[]
|
|
285
285
|
|
|
286
286
|
// Contract terminations
|
|
287
|
-
contractTerminations
|
|
287
|
+
contractTerminations ContractTermination[]
|
|
288
288
|
|
|
289
289
|
@@index([subdomain])
|
|
290
290
|
@@map("tenants")
|
|
@@ -669,6 +669,11 @@ model PaymentPlan {
|
|
|
669
669
|
calculateInterestDaily Boolean @default(false)
|
|
670
670
|
gracePeriodDays Int @default(0)
|
|
671
671
|
|
|
672
|
+
// Fund collection behavior
|
|
673
|
+
// true = we collect funds via wallet/gateway (e.g., downpayment)
|
|
674
|
+
// false = external payment, we only track/reconcile (e.g., bank mortgage)
|
|
675
|
+
collectFunds Boolean @default(true)
|
|
676
|
+
|
|
672
677
|
createdAt DateTime @default(now())
|
|
673
678
|
updatedAt DateTime @updatedAt
|
|
674
679
|
|
|
@@ -765,6 +770,11 @@ model PropertyPaymentMethodPhase {
|
|
|
765
770
|
interestRate Float?
|
|
766
771
|
percentOfPrice Float? // e.g., 10.0 for 10% downpayment
|
|
767
772
|
|
|
773
|
+
// Fund collection behavior (inherited from PaymentPlan if not set)
|
|
774
|
+
// true = we collect funds via wallet/gateway (e.g., downpayment)
|
|
775
|
+
// false = external payment, we only track/reconcile (e.g., bank mortgage)
|
|
776
|
+
collectFunds Boolean? // null = inherit from PaymentPlan
|
|
777
|
+
|
|
768
778
|
// Activation rules
|
|
769
779
|
requiresPreviousPhaseCompletion Boolean @default(true)
|
|
770
780
|
minimumCompletionPercentage Float?
|
|
@@ -879,11 +889,11 @@ model Contract {
|
|
|
879
889
|
updatedAt DateTime @updatedAt
|
|
880
890
|
|
|
881
891
|
// Relations
|
|
882
|
-
phases
|
|
883
|
-
documents
|
|
884
|
-
payments
|
|
885
|
-
transitions
|
|
886
|
-
events
|
|
892
|
+
phases ContractPhase[]
|
|
893
|
+
documents ContractDocument[]
|
|
894
|
+
payments ContractPayment[]
|
|
895
|
+
transitions ContractTransition[]
|
|
896
|
+
events ContractEvent[]
|
|
887
897
|
terminations ContractTermination[]
|
|
888
898
|
|
|
889
899
|
// Prequalification that led to this contract (optional)
|
|
@@ -928,6 +938,11 @@ model ContractPhase {
|
|
|
928
938
|
remainingAmount Float?
|
|
929
939
|
interestRate Float?
|
|
930
940
|
|
|
941
|
+
// Fund collection behavior (snapshotted from template at contract creation)
|
|
942
|
+
// true = we collect funds via wallet/gateway (e.g., downpayment)
|
|
943
|
+
// false = external payment, we only track/reconcile (e.g., bank mortgage)
|
|
944
|
+
collectFunds Boolean @default(true)
|
|
945
|
+
|
|
931
946
|
// Progress counters (for efficient activation checks)
|
|
932
947
|
approvedDocumentsCount Int @default(0)
|
|
933
948
|
requiredDocumentsCount Int @default(0)
|
|
@@ -1183,62 +1198,62 @@ model ContractTermination {
|
|
|
1183
1198
|
requestNumber String @unique // TRM-XXXXXX
|
|
1184
1199
|
|
|
1185
1200
|
// Who initiated and why
|
|
1186
|
-
initiatedBy
|
|
1187
|
-
initiatorId
|
|
1188
|
-
initiator
|
|
1189
|
-
type
|
|
1190
|
-
reason
|
|
1191
|
-
supportingDocs Json?
|
|
1201
|
+
initiatedBy TerminationInitiator
|
|
1202
|
+
initiatorId String? // userId if BUYER/SELLER/ADMIN
|
|
1203
|
+
initiator User? @relation("TerminationInitiator", fields: [initiatorId], references: [id])
|
|
1204
|
+
type TerminationType
|
|
1205
|
+
reason String? @db.Text
|
|
1206
|
+
supportingDocs Json? // [{type, url, uploadedAt}]
|
|
1192
1207
|
|
|
1193
1208
|
// Workflow status
|
|
1194
|
-
status
|
|
1195
|
-
requiresApproval
|
|
1196
|
-
autoApproveEligible Boolean
|
|
1209
|
+
status TerminationStatus @default(REQUESTED)
|
|
1210
|
+
requiresApproval Boolean @default(true)
|
|
1211
|
+
autoApproveEligible Boolean @default(false) // Pre-signature, no payments
|
|
1197
1212
|
|
|
1198
1213
|
// Admin review
|
|
1199
|
-
reviewedBy
|
|
1200
|
-
reviewer
|
|
1201
|
-
reviewedAt
|
|
1202
|
-
reviewNotes
|
|
1203
|
-
rejectionReason String?
|
|
1214
|
+
reviewedBy String?
|
|
1215
|
+
reviewer User? @relation("TerminationReviewer", fields: [reviewedBy], references: [id])
|
|
1216
|
+
reviewedAt DateTime?
|
|
1217
|
+
reviewNotes String? @db.Text
|
|
1218
|
+
rejectionReason String? @db.Text
|
|
1204
1219
|
|
|
1205
1220
|
// Financial snapshot at time of request
|
|
1206
|
-
contractSnapshot
|
|
1221
|
+
contractSnapshot Json // Full contract state snapshot
|
|
1207
1222
|
totalContractAmount Float
|
|
1208
1223
|
totalPaidToDate Float
|
|
1209
1224
|
outstandingBalance Float
|
|
1210
1225
|
|
|
1211
1226
|
// Settlement calculation
|
|
1212
|
-
refundableAmount
|
|
1213
|
-
penaltyAmount
|
|
1214
|
-
forfeitedAmount
|
|
1215
|
-
adminFeeAmount
|
|
1216
|
-
netRefundAmount
|
|
1217
|
-
settlementNotes
|
|
1227
|
+
refundableAmount Float @default(0) // Amount eligible for refund
|
|
1228
|
+
penaltyAmount Float @default(0) // Penalties/fees to deduct
|
|
1229
|
+
forfeitedAmount Float @default(0) // Amount forfeited (non-refundable deposits)
|
|
1230
|
+
adminFeeAmount Float @default(0) // Processing fees
|
|
1231
|
+
netRefundAmount Float @default(0) // refundableAmount - penaltyAmount - adminFeeAmount
|
|
1232
|
+
settlementNotes String? @db.Text
|
|
1218
1233
|
|
|
1219
1234
|
// Refund processing
|
|
1220
|
-
refundStatus
|
|
1221
|
-
refundReference
|
|
1222
|
-
refundMethod
|
|
1223
|
-
refundAccountDetails Json?
|
|
1224
|
-
refundInitiatedAt
|
|
1225
|
-
refundCompletedAt
|
|
1226
|
-
refundFailureReason
|
|
1235
|
+
refundStatus RefundStatus @default(NOT_APPLICABLE)
|
|
1236
|
+
refundReference String? // Payment gateway reference
|
|
1237
|
+
refundMethod String? // ORIGINAL_METHOD, BANK_TRANSFER, CHECK, WALLET
|
|
1238
|
+
refundAccountDetails Json? // Encrypted bank details if needed
|
|
1239
|
+
refundInitiatedAt DateTime?
|
|
1240
|
+
refundCompletedAt DateTime?
|
|
1241
|
+
refundFailureReason String? @db.Text
|
|
1227
1242
|
|
|
1228
1243
|
// Property unit handling
|
|
1229
1244
|
unitReleasedAt DateTime?
|
|
1230
|
-
unitReservedForId String?
|
|
1245
|
+
unitReservedForId String? // If unit being held for another buyer
|
|
1231
1246
|
|
|
1232
1247
|
// Timing
|
|
1233
|
-
requestedAt
|
|
1234
|
-
approvedAt
|
|
1235
|
-
executedAt
|
|
1236
|
-
completedAt
|
|
1237
|
-
cancelledAt
|
|
1248
|
+
requestedAt DateTime @default(now())
|
|
1249
|
+
approvedAt DateTime?
|
|
1250
|
+
executedAt DateTime?
|
|
1251
|
+
completedAt DateTime?
|
|
1252
|
+
cancelledAt DateTime?
|
|
1238
1253
|
|
|
1239
1254
|
// Idempotency and audit
|
|
1240
|
-
idempotencyKey
|
|
1241
|
-
metadata
|
|
1255
|
+
idempotencyKey String? @unique
|
|
1256
|
+
metadata Json?
|
|
1242
1257
|
|
|
1243
1258
|
createdAt DateTime @default(now())
|
|
1244
1259
|
updatedAt DateTime @updatedAt
|