@dynamatix/gb-schemas 2.22.1 → 2.22.2

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 (31) hide show
  1. package/README.md +308 -308
  2. package/dist/applicants/applicant-direct-debit.model.d.ts +86 -0
  3. package/dist/applicants/applicant-direct-debit.model.d.ts.map +1 -0
  4. package/dist/applicants/applicant-expenditure.model.d.ts.map +1 -1
  5. package/dist/applicants/applicant-expenditure.model.js +53 -0
  6. package/dist/applicants/applicant-income-source.model.d.ts +26 -0
  7. package/dist/applicants/applicant-income-source.model.d.ts.map +1 -0
  8. package/dist/applicants/applicant-income.model.d.ts +160 -0
  9. package/dist/applicants/applicant-income.model.d.ts.map +1 -0
  10. package/dist/applicants/applicant-other-income.model.d.ts +85 -0
  11. package/dist/applicants/applicant-other-income.model.d.ts.map +1 -0
  12. package/dist/applicants/applicant-welcome-call.model.js +9 -9
  13. package/dist/applicants/applicant.model.d.ts.map +1 -1
  14. package/dist/applicants/applicant.model.js +6 -0
  15. package/dist/applications/application-document.model.d.ts +158 -0
  16. package/dist/applications/application-document.model.d.ts.map +1 -0
  17. package/dist/applications/application.model.d.ts +12 -12
  18. package/dist/applications/application.model.js +4 -4
  19. package/dist/applications/document.model.d.ts +158 -0
  20. package/dist/applications/document.model.d.ts.map +1 -0
  21. package/dist/applications/euc-country-tier.model.d.ts +65 -0
  22. package/dist/applications/euc-country-tier.model.d.ts.map +1 -0
  23. package/dist/applications/euc-country-tier.model.js +24 -0
  24. package/dist/applications/euc-country-tier.type.d.ts +7 -0
  25. package/dist/applications/euc-country-tier.type.d.ts.map +1 -0
  26. package/dist/applications/euc-country-tier.type.js +1 -0
  27. package/dist/applications/productfeatures.model.d.ts +368 -0
  28. package/dist/applications/productfeatures.model.d.ts.map +1 -0
  29. package/dist/shared/document-type-model.d.ts +48 -0
  30. package/dist/shared/document-type-model.d.ts.map +1 -0
  31. package/package.json +90 -90
@@ -0,0 +1,86 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import mongoose from 'mongoose';
30
+ declare const applicantDirectDebitSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
31
+ timestamps: true;
32
+ }, {
33
+ createdAt: NativeDate;
34
+ updatedAt: NativeDate;
35
+ } & {
36
+ isConfirmDeclaration: string;
37
+ addressLine1?: string | null | undefined;
38
+ addressLine2?: string | null | undefined;
39
+ accountNumber?: string | null | undefined;
40
+ branch?: string | null | undefined;
41
+ city?: string | null | undefined;
42
+ contactPostcode?: string | null | undefined;
43
+ institution?: string | null | undefined;
44
+ nameOfAccountHolder?: string | null | undefined;
45
+ sortCode?: string | null | undefined;
46
+ selectedPaymentDay?: string | null | undefined;
47
+ Applicants?: string | null | undefined;
48
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
49
+ createdAt: NativeDate;
50
+ updatedAt: NativeDate;
51
+ } & {
52
+ isConfirmDeclaration: string;
53
+ addressLine1?: string | null | undefined;
54
+ addressLine2?: string | null | undefined;
55
+ accountNumber?: string | null | undefined;
56
+ branch?: string | null | undefined;
57
+ city?: string | null | undefined;
58
+ contactPostcode?: string | null | undefined;
59
+ institution?: string | null | undefined;
60
+ nameOfAccountHolder?: string | null | undefined;
61
+ sortCode?: string | null | undefined;
62
+ selectedPaymentDay?: string | null | undefined;
63
+ Applicants?: string | null | undefined;
64
+ }>, {}> & mongoose.FlatRecord<{
65
+ createdAt: NativeDate;
66
+ updatedAt: NativeDate;
67
+ } & {
68
+ isConfirmDeclaration: string;
69
+ addressLine1?: string | null | undefined;
70
+ addressLine2?: string | null | undefined;
71
+ accountNumber?: string | null | undefined;
72
+ branch?: string | null | undefined;
73
+ city?: string | null | undefined;
74
+ contactPostcode?: string | null | undefined;
75
+ institution?: string | null | undefined;
76
+ nameOfAccountHolder?: string | null | undefined;
77
+ sortCode?: string | null | undefined;
78
+ selectedPaymentDay?: string | null | undefined;
79
+ Applicants?: string | null | undefined;
80
+ }> & {
81
+ _id: mongoose.Types.ObjectId;
82
+ } & {
83
+ __v: number;
84
+ }>;
85
+ export default applicantDirectDebitSchema;
86
+ //# sourceMappingURL=applicant-direct-debit.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicant-direct-debit.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-direct-debit.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAaR,CAAC;AAEzB,eAAe,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"applicant-expenditure.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-expenditure.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AA6K5D,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAsE,CAAC;AACtG,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"applicant-expenditure.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-expenditure.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AA6O5D,QAAA,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAsE,CAAC;AACtG,eAAe,yBAAyB,CAAC"}
@@ -136,6 +136,59 @@ const virtualEssentialExpenditure = applicantExpenditureSchema.virtual("Expendit
136
136
  },
137
137
  });
138
138
  virtualEssentialExpenditure.description = "Populated lookup value for essential expenditure.";
139
+ // Virtual property 'applicant' – the applicant this row belongs to, populated by the form configuration
140
+ // (applicant -> applicationId -> applicants -> expenditures) to build the household Declared columns.
141
+ const virtualApplicant = applicantExpenditureSchema.virtual("applicant", {
142
+ ref: "Applicant",
143
+ localField: "applicantId",
144
+ foreignField: "_id",
145
+ justOne: true,
146
+ });
147
+ virtualApplicant.description = "Populated applicant this expenditure record belongs to.";
148
+ // The Nth applicant on the application – `this.applicant.applicationId.applicants` must be populated.
149
+ function getHouseholdApplicant(doc, position) {
150
+ const applicants = doc.applicant?.applicationId?.applicants;
151
+ return Array.isArray(applicants) ? applicants[position - 1] ?? null : null;
152
+ }
153
+ // The Nth applicant's full name, or null when there is no such applicant.
154
+ function getHouseholdApplicantName(doc, position) {
155
+ const applicant = getHouseholdApplicant(doc, position);
156
+ return applicant ? `${applicant.firstName ?? ''} ${applicant.lastName ?? ''}`.trim() : null;
157
+ }
158
+ // The Nth applicant's declared amount for this row's expenditure type – that applicant's
159
+ // `expenditures` must be populated. Null when the applicant has no record of this type.
160
+ function getHouseholdApplicantDeclared(doc, position) {
161
+ const expenditures = getHouseholdApplicant(doc, position)?.expenditures;
162
+ if (!Array.isArray(expenditures))
163
+ return null;
164
+ const expenditure = expenditures.find((item) => String(item.expenditureTypeLid) === String(doc.expenditureTypeLid));
165
+ return expenditure?.declared ?? null;
166
+ }
167
+ // virtual properties 'applicantName1'..'applicantName4' / 'declaredApplicant1'..'declaredApplicant4'
168
+ applicantExpenditureSchema.virtual('applicantName1').get(function () {
169
+ return getHouseholdApplicantName(this, 1);
170
+ });
171
+ applicantExpenditureSchema.virtual('declaredApplicant1').get(function () {
172
+ return getHouseholdApplicantDeclared(this, 1);
173
+ });
174
+ applicantExpenditureSchema.virtual('applicantName2').get(function () {
175
+ return getHouseholdApplicantName(this, 2);
176
+ });
177
+ applicantExpenditureSchema.virtual('declaredApplicant2').get(function () {
178
+ return getHouseholdApplicantDeclared(this, 2);
179
+ });
180
+ applicantExpenditureSchema.virtual('applicantName3').get(function () {
181
+ return getHouseholdApplicantName(this, 3);
182
+ });
183
+ applicantExpenditureSchema.virtual('declaredApplicant3').get(function () {
184
+ return getHouseholdApplicantDeclared(this, 3);
185
+ });
186
+ applicantExpenditureSchema.virtual('applicantName4').get(function () {
187
+ return getHouseholdApplicantName(this, 4);
188
+ });
189
+ applicantExpenditureSchema.virtual('declaredApplicant4').get(function () {
190
+ return getHouseholdApplicantDeclared(this, 4);
191
+ });
139
192
  applyAuditMiddleware(applicantExpenditureSchema, "Applicant_Expenditure");
140
193
  // Apply workflow plugin to the schema
141
194
  applicantExpenditureSchema.index({ applicantId: 1 });
@@ -0,0 +1,26 @@
1
+ import mongoose from "mongoose";
2
+ declare const applicantIncomeSourceSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
3
+ employmentStatusLid: mongoose.Types.ObjectId;
4
+ incomeFromEmployment?: string | null | undefined;
5
+ incomeFromPension?: string | null | undefined;
6
+ incomeFromProperty?: string | null | undefined;
7
+ incomeFromSavings?: string | null | undefined;
8
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
9
+ employmentStatusLid: mongoose.Types.ObjectId;
10
+ incomeFromEmployment?: string | null | undefined;
11
+ incomeFromPension?: string | null | undefined;
12
+ incomeFromProperty?: string | null | undefined;
13
+ incomeFromSavings?: string | null | undefined;
14
+ }>> & mongoose.FlatRecord<{
15
+ employmentStatusLid: mongoose.Types.ObjectId;
16
+ incomeFromEmployment?: string | null | undefined;
17
+ incomeFromPension?: string | null | undefined;
18
+ incomeFromProperty?: string | null | undefined;
19
+ incomeFromSavings?: string | null | undefined;
20
+ }> & {
21
+ _id: mongoose.Types.ObjectId;
22
+ } & {
23
+ __v: number;
24
+ }>;
25
+ export default applicantIncomeSourceSchema;
26
+ //# sourceMappingURL=applicant-income-source.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicant-income-source.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-income-source.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AAEH,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,160 @@
1
+ import mongoose from "mongoose";
2
+ import { Pound } from "../value-objects/pound";
3
+ declare const incomeSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
4
+ toJSON: {
5
+ getters: true;
6
+ };
7
+ toObject: {
8
+ getters: true;
9
+ };
10
+ }, {
11
+ pageValidFlag: string;
12
+ businessTypeLid: mongoose.Types.ObjectId;
13
+ natureOfBusiness: string;
14
+ yearEnd1: number;
15
+ yearEnd2: number;
16
+ yearEnd3: number;
17
+ accountantsAddressLine1: string;
18
+ accountantsAddressLine2: string;
19
+ accountantsAddressLine3: string;
20
+ accountantsCity: string;
21
+ accountantsCountryLid: mongoose.Types.ObjectId;
22
+ accountantsEmail: string;
23
+ accountantsPostCode: string;
24
+ accountantsPractice: string;
25
+ accountantsTelephoneNumber: string;
26
+ businessAddressLine1: string;
27
+ businessAddressLine2: string;
28
+ businessAddressLine3: string;
29
+ businessCity: string;
30
+ businessCountryLid: mongoose.Types.ObjectId;
31
+ businessPostCode: string;
32
+ businessTelephoneNumber: string;
33
+ charteredCertifiedOrOtherLid: mongoose.Types.ObjectId;
34
+ contactName: string;
35
+ currentYearEnd: string;
36
+ dateEstablished: string;
37
+ doYouHaveAccountant: boolean;
38
+ isBusinessAddressDifferent: boolean;
39
+ nameOfBusiness: string;
40
+ netAssets1: Pound;
41
+ netAssets2: Pound;
42
+ netAssets3: Pound;
43
+ percentageOfShareholding: number;
44
+ registeredAddressLine1: string;
45
+ registeredAddressLine2: string;
46
+ registeredAddressLine3: string;
47
+ registeredCity: string;
48
+ registeredCountryLid: mongoose.Types.ObjectId;
49
+ registeredPostCode: string;
50
+ registeredTelephone: string;
51
+ selfEmployedDate: string;
52
+ turnover1: Pound;
53
+ turnover2: Pound;
54
+ turnover3: Pound;
55
+ year1: Pound;
56
+ year2: Pound;
57
+ year3: Pound;
58
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
59
+ pageValidFlag: string;
60
+ businessTypeLid: mongoose.Types.ObjectId;
61
+ natureOfBusiness: string;
62
+ yearEnd1: number;
63
+ yearEnd2: number;
64
+ yearEnd3: number;
65
+ accountantsAddressLine1: string;
66
+ accountantsAddressLine2: string;
67
+ accountantsAddressLine3: string;
68
+ accountantsCity: string;
69
+ accountantsCountryLid: mongoose.Types.ObjectId;
70
+ accountantsEmail: string;
71
+ accountantsPostCode: string;
72
+ accountantsPractice: string;
73
+ accountantsTelephoneNumber: string;
74
+ businessAddressLine1: string;
75
+ businessAddressLine2: string;
76
+ businessAddressLine3: string;
77
+ businessCity: string;
78
+ businessCountryLid: mongoose.Types.ObjectId;
79
+ businessPostCode: string;
80
+ businessTelephoneNumber: string;
81
+ charteredCertifiedOrOtherLid: mongoose.Types.ObjectId;
82
+ contactName: string;
83
+ currentYearEnd: string;
84
+ dateEstablished: string;
85
+ doYouHaveAccountant: boolean;
86
+ isBusinessAddressDifferent: boolean;
87
+ nameOfBusiness: string;
88
+ netAssets1: Pound;
89
+ netAssets2: Pound;
90
+ netAssets3: Pound;
91
+ percentageOfShareholding: number;
92
+ registeredAddressLine1: string;
93
+ registeredAddressLine2: string;
94
+ registeredAddressLine3: string;
95
+ registeredCity: string;
96
+ registeredCountryLid: mongoose.Types.ObjectId;
97
+ registeredPostCode: string;
98
+ registeredTelephone: string;
99
+ selfEmployedDate: string;
100
+ turnover1: Pound;
101
+ turnover2: Pound;
102
+ turnover3: Pound;
103
+ year1: Pound;
104
+ year2: Pound;
105
+ year3: Pound;
106
+ }>> & mongoose.FlatRecord<{
107
+ pageValidFlag: string;
108
+ businessTypeLid: mongoose.Types.ObjectId;
109
+ natureOfBusiness: string;
110
+ yearEnd1: number;
111
+ yearEnd2: number;
112
+ yearEnd3: number;
113
+ accountantsAddressLine1: string;
114
+ accountantsAddressLine2: string;
115
+ accountantsAddressLine3: string;
116
+ accountantsCity: string;
117
+ accountantsCountryLid: mongoose.Types.ObjectId;
118
+ accountantsEmail: string;
119
+ accountantsPostCode: string;
120
+ accountantsPractice: string;
121
+ accountantsTelephoneNumber: string;
122
+ businessAddressLine1: string;
123
+ businessAddressLine2: string;
124
+ businessAddressLine3: string;
125
+ businessCity: string;
126
+ businessCountryLid: mongoose.Types.ObjectId;
127
+ businessPostCode: string;
128
+ businessTelephoneNumber: string;
129
+ charteredCertifiedOrOtherLid: mongoose.Types.ObjectId;
130
+ contactName: string;
131
+ currentYearEnd: string;
132
+ dateEstablished: string;
133
+ doYouHaveAccountant: boolean;
134
+ isBusinessAddressDifferent: boolean;
135
+ nameOfBusiness: string;
136
+ netAssets1: Pound;
137
+ netAssets2: Pound;
138
+ netAssets3: Pound;
139
+ percentageOfShareholding: number;
140
+ registeredAddressLine1: string;
141
+ registeredAddressLine2: string;
142
+ registeredAddressLine3: string;
143
+ registeredCity: string;
144
+ registeredCountryLid: mongoose.Types.ObjectId;
145
+ registeredPostCode: string;
146
+ registeredTelephone: string;
147
+ selfEmployedDate: string;
148
+ turnover1: Pound;
149
+ turnover2: Pound;
150
+ turnover3: Pound;
151
+ year1: Pound;
152
+ year2: Pound;
153
+ year3: Pound;
154
+ }> & {
155
+ _id: mongoose.Types.ObjectId;
156
+ } & {
157
+ __v: number;
158
+ }>;
159
+ export default incomeSchema;
160
+ //# sourceMappingURL=applicant-income.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicant-income.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-income.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -0,0 +1,85 @@
1
+ import mongoose from "mongoose";
2
+ import { Pound } from "../value-objects/pound";
3
+ declare const applicantOtherIncomeSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
4
+ toJSON: {
5
+ getters: true;
6
+ };
7
+ toObject: {
8
+ getters: true;
9
+ };
10
+ }, {
11
+ maintenance: Pound;
12
+ sourceDetails1: string;
13
+ amount1: Pound;
14
+ payFrequency1Lid: mongoose.Types.ObjectId;
15
+ guaranteed1: boolean;
16
+ sourceDetails2: string;
17
+ amount2: Pound;
18
+ payFrequency2Lid: mongoose.Types.ObjectId;
19
+ guaranteed2: boolean;
20
+ sourceDetails3: string;
21
+ amount3: Pound;
22
+ payFrequency3Lid: mongoose.Types.ObjectId;
23
+ guaranteed3: boolean;
24
+ sourceDetails4: string;
25
+ amount4: Pound;
26
+ payFrequency4Lid: mongoose.Types.ObjectId;
27
+ guaranteed4: boolean;
28
+ taxCredits: Pound;
29
+ otherBenefits: Pound;
30
+ grossPensionIncome: Pound;
31
+ privatePensionIncome: Pound;
32
+ statePensionIncome: Pound;
33
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
34
+ maintenance: Pound;
35
+ sourceDetails1: string;
36
+ amount1: Pound;
37
+ payFrequency1Lid: mongoose.Types.ObjectId;
38
+ guaranteed1: boolean;
39
+ sourceDetails2: string;
40
+ amount2: Pound;
41
+ payFrequency2Lid: mongoose.Types.ObjectId;
42
+ guaranteed2: boolean;
43
+ sourceDetails3: string;
44
+ amount3: Pound;
45
+ payFrequency3Lid: mongoose.Types.ObjectId;
46
+ guaranteed3: boolean;
47
+ sourceDetails4: string;
48
+ amount4: Pound;
49
+ payFrequency4Lid: mongoose.Types.ObjectId;
50
+ guaranteed4: boolean;
51
+ taxCredits: Pound;
52
+ otherBenefits: Pound;
53
+ grossPensionIncome: Pound;
54
+ privatePensionIncome: Pound;
55
+ statePensionIncome: Pound;
56
+ }>> & mongoose.FlatRecord<{
57
+ maintenance: Pound;
58
+ sourceDetails1: string;
59
+ amount1: Pound;
60
+ payFrequency1Lid: mongoose.Types.ObjectId;
61
+ guaranteed1: boolean;
62
+ sourceDetails2: string;
63
+ amount2: Pound;
64
+ payFrequency2Lid: mongoose.Types.ObjectId;
65
+ guaranteed2: boolean;
66
+ sourceDetails3: string;
67
+ amount3: Pound;
68
+ payFrequency3Lid: mongoose.Types.ObjectId;
69
+ guaranteed3: boolean;
70
+ sourceDetails4: string;
71
+ amount4: Pound;
72
+ payFrequency4Lid: mongoose.Types.ObjectId;
73
+ guaranteed4: boolean;
74
+ taxCredits: Pound;
75
+ otherBenefits: Pound;
76
+ grossPensionIncome: Pound;
77
+ privatePensionIncome: Pound;
78
+ statePensionIncome: Pound;
79
+ }> & {
80
+ _id: mongoose.Types.ObjectId;
81
+ } & {
82
+ __v: number;
83
+ }>;
84
+ export default applicantOtherIncomeSchema;
85
+ //# sourceMappingURL=applicant-other-income.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicant-other-income.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-other-income.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6C9B,CAAC;AAEH,eAAe,0BAA0B,CAAC"}
@@ -403,10 +403,10 @@ welcomeCallSchema.virtual('otherApplicantsNameAndDOB').get(function () {
403
403
  const isLast = index === otherApplicants.length - 1;
404
404
  const comma = isLast ? '' : ',';
405
405
  // Format as an HTML line (with bold labels and inline values)
406
- return `
407
- <div class="applicant-line">
408
- <span class="readonly-data">${fullFirstName}, ${lastName}, ${formattedDOB}${comma}</span>
409
- </div>
406
+ return `
407
+ <div class="applicant-line">
408
+ <span class="readonly-data">${fullFirstName}, ${lastName}, ${formattedDOB}${comma}</span>
409
+ </div>
410
410
  `;
411
411
  }).filter((line) => line && line.trim() !== '');
412
412
  // Join all applicants as HTML (no \n needed)
@@ -686,14 +686,14 @@ welcomeCallSchema.virtual('financeSummaryHtml').get(async function () {
686
686
  application.lendingTypeLid.name === 'BTL';
687
687
  const monthlyRepaymentClass = isBTL ? 'mb-2' : '';
688
688
  // Create HTML content
689
- let summaryContent = `
690
- <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Product:</p> <span class="readonly-data ml-2">${product}</span></div>
691
- <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Finance Term:</p> <span class="readonly-data ml-2">${financeTerm}</span></div>
689
+ let summaryContent = `
690
+ <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Product:</p> <span class="readonly-data ml-2">${product}</span></div>
691
+ <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Finance Term:</p> <span class="readonly-data ml-2">${financeTerm}</span></div>
692
692
  <div class="flex align-items-center ${monthlyRepaymentClass}"><p class="text-bold m-0 readonly-data">Monthly Repayment:</p> <span class="readonly-data ml-2">${monthlyRepayment}</span></div>`;
693
693
  // Only show rental income and occupancy for BTL applications
694
694
  if (isBTL) {
695
- summaryContent += `
696
- <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Rental Income:</p> <span class="readonly-data ml-2">${rentalIncome}</span></div>
695
+ summaryContent += `
696
+ <div class="flex align-items-center mb-2"><p class="text-bold m-0 readonly-data">Rental Income:</p> <span class="readonly-data ml-2">${rentalIncome}</span></div>
697
697
  <div class="flex align-items-center"><p class="text-bold m-0 readonly-data">Occupancy:</p> <span class="readonly-data ml-2">${occupancy}</span></div>`;
698
698
  }
699
699
  return summaryContent;
@@ -1 +1 @@
1
- {"version":3,"file":"applicant.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAMhC,OAAO,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AAmS5D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"applicant.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAMhC,OAAO,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAC;AA0S5D,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
@@ -238,6 +238,12 @@ applicantSchema.virtual('numberOfApplicants').get(function () {
238
238
  // if it's populated and has an applicants array, return its length, otherwise 0
239
239
  return Array.isArray(app?.applicants) ? app.applicants.length : 0;
240
240
  });
241
+ // expenditures – this applicant's expenditure records (populated on demand, e.g. for the household Declared columns)
242
+ applicantSchema.virtual('expenditures', {
243
+ ref: 'Applicant_Expenditure',
244
+ localField: '_id',
245
+ foreignField: 'applicantId',
246
+ });
241
247
  applyAuditMiddleware(applicantSchema, "Applicant");
242
248
  // Apply workflow plugin to the schema
243
249
  applyWorkflowPlugin(applicantSchema, 'applicant');
@@ -0,0 +1,158 @@
1
+ import mongoose from "mongoose";
2
+ declare const ApplicationDocumentModel: mongoose.Model<{
3
+ createdAt: NativeDate;
4
+ updatedAt: NativeDate;
5
+ } & {
6
+ documentId: string;
7
+ signers: any[];
8
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
9
+ data?: string | null | undefined;
10
+ owningEntityId?: string | null | undefined;
11
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
12
+ documentTypeId?: string | null | undefined;
13
+ fileName?: string | null | undefined;
14
+ contentType?: string | null | undefined;
15
+ created?: string | null | undefined;
16
+ createdBy?: string | null | undefined;
17
+ isGenerated?: string | null | undefined;
18
+ envelopeId?: string | null | undefined;
19
+ documentType?: {
20
+ data?: any;
21
+ value?: string | null | undefined;
22
+ documentTypeId?: string | null | undefined;
23
+ displayName?: string | null | undefined;
24
+ } | null | undefined;
25
+ documentUrl?: string | null | undefined;
26
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
27
+ createdAt: NativeDate;
28
+ updatedAt: NativeDate;
29
+ } & {
30
+ documentId: string;
31
+ signers: any[];
32
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
33
+ data?: string | null | undefined;
34
+ owningEntityId?: string | null | undefined;
35
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
36
+ documentTypeId?: string | null | undefined;
37
+ fileName?: string | null | undefined;
38
+ contentType?: string | null | undefined;
39
+ created?: string | null | undefined;
40
+ createdBy?: string | null | undefined;
41
+ isGenerated?: string | null | undefined;
42
+ envelopeId?: string | null | undefined;
43
+ documentType?: {
44
+ data?: any;
45
+ value?: string | null | undefined;
46
+ documentTypeId?: string | null | undefined;
47
+ displayName?: string | null | undefined;
48
+ } | null | undefined;
49
+ documentUrl?: string | null | undefined;
50
+ }> & {
51
+ createdAt: NativeDate;
52
+ updatedAt: NativeDate;
53
+ } & {
54
+ documentId: string;
55
+ signers: any[];
56
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
57
+ data?: string | null | undefined;
58
+ owningEntityId?: string | null | undefined;
59
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
60
+ documentTypeId?: string | null | undefined;
61
+ fileName?: string | null | undefined;
62
+ contentType?: string | null | undefined;
63
+ created?: string | null | undefined;
64
+ createdBy?: string | null | undefined;
65
+ isGenerated?: string | null | undefined;
66
+ envelopeId?: string | null | undefined;
67
+ documentType?: {
68
+ data?: any;
69
+ value?: string | null | undefined;
70
+ documentTypeId?: string | null | undefined;
71
+ displayName?: string | null | undefined;
72
+ } | null | undefined;
73
+ documentUrl?: string | null | undefined;
74
+ } & {
75
+ _id: mongoose.Types.ObjectId;
76
+ } & {
77
+ __v: number;
78
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
79
+ timestamps: true;
80
+ }, {
81
+ createdAt: NativeDate;
82
+ updatedAt: NativeDate;
83
+ } & {
84
+ documentId: string;
85
+ signers: any[];
86
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
87
+ data?: string | null | undefined;
88
+ owningEntityId?: string | null | undefined;
89
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
90
+ documentTypeId?: string | null | undefined;
91
+ fileName?: string | null | undefined;
92
+ contentType?: string | null | undefined;
93
+ created?: string | null | undefined;
94
+ createdBy?: string | null | undefined;
95
+ isGenerated?: string | null | undefined;
96
+ envelopeId?: string | null | undefined;
97
+ documentType?: {
98
+ data?: any;
99
+ value?: string | null | undefined;
100
+ documentTypeId?: string | null | undefined;
101
+ displayName?: string | null | undefined;
102
+ } | null | undefined;
103
+ documentUrl?: string | null | undefined;
104
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
105
+ createdAt: NativeDate;
106
+ updatedAt: NativeDate;
107
+ } & {
108
+ documentId: string;
109
+ signers: any[];
110
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
111
+ data?: string | null | undefined;
112
+ owningEntityId?: string | null | undefined;
113
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
114
+ documentTypeId?: string | null | undefined;
115
+ fileName?: string | null | undefined;
116
+ contentType?: string | null | undefined;
117
+ created?: string | null | undefined;
118
+ createdBy?: string | null | undefined;
119
+ isGenerated?: string | null | undefined;
120
+ envelopeId?: string | null | undefined;
121
+ documentType?: {
122
+ data?: any;
123
+ value?: string | null | undefined;
124
+ documentTypeId?: string | null | undefined;
125
+ displayName?: string | null | undefined;
126
+ } | null | undefined;
127
+ documentUrl?: string | null | undefined;
128
+ }>> & mongoose.FlatRecord<{
129
+ createdAt: NativeDate;
130
+ updatedAt: NativeDate;
131
+ } & {
132
+ documentId: string;
133
+ signers: any[];
134
+ applicationId?: mongoose.Types.ObjectId | null | undefined;
135
+ data?: string | null | undefined;
136
+ owningEntityId?: string | null | undefined;
137
+ documentTypeLid?: mongoose.Types.ObjectId | null | undefined;
138
+ documentTypeId?: string | null | undefined;
139
+ fileName?: string | null | undefined;
140
+ contentType?: string | null | undefined;
141
+ created?: string | null | undefined;
142
+ createdBy?: string | null | undefined;
143
+ isGenerated?: string | null | undefined;
144
+ envelopeId?: string | null | undefined;
145
+ documentType?: {
146
+ data?: any;
147
+ value?: string | null | undefined;
148
+ documentTypeId?: string | null | undefined;
149
+ displayName?: string | null | undefined;
150
+ } | null | undefined;
151
+ documentUrl?: string | null | undefined;
152
+ }> & {
153
+ _id: mongoose.Types.ObjectId;
154
+ } & {
155
+ __v: number;
156
+ }>>;
157
+ export default ApplicationDocumentModel;
158
+ //# sourceMappingURL=application-document.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-document.model.d.ts","sourceRoot":"","sources":["../../applications/application-document.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAoChC,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwD,CAAC;AACvF,eAAe,wBAAwB,CAAC"}