@dynamatix/gb-schemas 2.3.253 → 2.3.255
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/README.md +308 -308
- package/dist/applications/application-valuation-report.model.d.ts +2724 -2472
- package/dist/applications/application-valuation-report.model.d.ts.map +1 -1
- package/dist/applications/application-valuation-report.model.js +426 -356
- package/package.json +87 -87
- package/dist/applicants/applicant-income-source.model.d.ts +0 -26
- package/dist/applicants/applicant-income-source.model.d.ts.map +0 -1
- package/dist/applicants/applicant-income.model.d.ts +0 -160
- package/dist/applicants/applicant-income.model.d.ts.map +0 -1
- package/dist/applicants/applicant-other-income.model.d.ts +0 -85
- package/dist/applicants/applicant-other-income.model.d.ts.map +0 -1
- package/dist/applications/application-document.model.d.ts +0 -158
- package/dist/applications/application-document.model.d.ts.map +0 -1
- package/dist/applications/document.model.d.ts +0 -158
- package/dist/applications/document.model.d.ts.map +0 -1
- package/dist/applications/productfeatures.model.d.ts +0 -368
- package/dist/applications/productfeatures.model.d.ts.map +0 -1
- package/dist/shared/document-type-model.d.ts +0 -48
- package/dist/shared/document-type-model.d.ts.map +0 -1
|
@@ -1,401 +1,471 @@
|
|
|
1
1
|
import mongoose from "mongoose";
|
|
2
2
|
import { applyWorkflowPlugin } from "../shared/workflow.plugin";
|
|
3
3
|
const propertyTypeSchema = new mongoose.Schema({
|
|
4
|
-
|
|
5
|
-
type:
|
|
6
|
-
default:
|
|
4
|
+
isDetachedHouse: {
|
|
5
|
+
type: Boolean,
|
|
6
|
+
default: null
|
|
7
7
|
},
|
|
8
|
-
|
|
9
|
-
type:
|
|
10
|
-
default:
|
|
8
|
+
isSemiDetachedHouse: {
|
|
9
|
+
type: Boolean,
|
|
10
|
+
default: null
|
|
11
11
|
},
|
|
12
|
-
|
|
13
|
-
type:
|
|
14
|
-
default:
|
|
12
|
+
isTerracedHouse: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: null
|
|
15
15
|
},
|
|
16
|
-
|
|
17
|
-
type:
|
|
18
|
-
default:
|
|
16
|
+
isBungalow: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: null
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
type:
|
|
22
|
-
default:
|
|
20
|
+
isFlat: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: null
|
|
23
23
|
},
|
|
24
|
-
|
|
25
|
-
type:
|
|
26
|
-
default:
|
|
24
|
+
isMaisonette: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: null
|
|
27
27
|
},
|
|
28
28
|
flatMaisonetteFloor: {
|
|
29
|
-
type:
|
|
30
|
-
default:
|
|
29
|
+
type: Number,
|
|
30
|
+
default: null
|
|
31
31
|
},
|
|
32
32
|
numberOfFloorsInBlock: {
|
|
33
|
-
type:
|
|
34
|
-
default:
|
|
33
|
+
type: Number,
|
|
34
|
+
default: null
|
|
35
35
|
},
|
|
36
|
-
|
|
37
|
-
type:
|
|
38
|
-
default:
|
|
36
|
+
isBuiltOrOwnedByLocalAuthority: {
|
|
37
|
+
type: Boolean,
|
|
38
|
+
default: null
|
|
39
39
|
},
|
|
40
40
|
ownerOccupationPercentage: {
|
|
41
|
-
type:
|
|
42
|
-
default:
|
|
41
|
+
type: Number,
|
|
42
|
+
default: null
|
|
43
43
|
},
|
|
44
44
|
isFlatMaisonetteConverted: {
|
|
45
|
-
type:
|
|
46
|
-
default:
|
|
45
|
+
type: Boolean,
|
|
46
|
+
default: null
|
|
47
47
|
},
|
|
48
48
|
conversionYear: {
|
|
49
|
-
type:
|
|
50
|
-
default:
|
|
49
|
+
type: Number,
|
|
50
|
+
default: null
|
|
51
51
|
},
|
|
52
52
|
isPurposeBuilt: {
|
|
53
|
-
type:
|
|
54
|
-
default:
|
|
53
|
+
type: Boolean,
|
|
54
|
+
default: null
|
|
55
55
|
},
|
|
56
56
|
numberOfUnitsInBlock: {
|
|
57
|
-
type:
|
|
58
|
-
default:
|
|
57
|
+
type: Number,
|
|
58
|
+
default: null
|
|
59
59
|
},
|
|
60
|
-
|
|
61
|
-
type:
|
|
62
|
-
default:
|
|
60
|
+
isAboveCommercial: {
|
|
61
|
+
type: Boolean,
|
|
62
|
+
default: null
|
|
63
63
|
},
|
|
64
64
|
residentialNatureImpact: {
|
|
65
65
|
type: String,
|
|
66
|
-
default:
|
|
66
|
+
default: null
|
|
67
67
|
},
|
|
68
68
|
tenure: {
|
|
69
69
|
type: String,
|
|
70
|
-
default:
|
|
70
|
+
default: null
|
|
71
71
|
},
|
|
72
|
-
|
|
73
|
-
type:
|
|
74
|
-
default:
|
|
72
|
+
isFlyingFreehold: {
|
|
73
|
+
type: Boolean,
|
|
74
|
+
default: null
|
|
75
75
|
},
|
|
76
76
|
flyingFreeholdPercentage: {
|
|
77
|
-
type:
|
|
78
|
-
default:
|
|
77
|
+
type: Number,
|
|
78
|
+
default: null
|
|
79
79
|
},
|
|
80
80
|
maintenanceCharge: {
|
|
81
|
-
type:
|
|
82
|
-
default:
|
|
81
|
+
type: Number,
|
|
82
|
+
default: null
|
|
83
83
|
},
|
|
84
84
|
roadCharges: {
|
|
85
|
-
type:
|
|
86
|
-
default:
|
|
85
|
+
type: Number,
|
|
86
|
+
default: null
|
|
87
87
|
},
|
|
88
88
|
groundRent: {
|
|
89
|
-
type:
|
|
90
|
-
default:
|
|
89
|
+
type: Number,
|
|
90
|
+
default: null
|
|
91
91
|
},
|
|
92
92
|
remainingLeaseTermYears: {
|
|
93
|
-
type:
|
|
94
|
-
default:
|
|
93
|
+
type: Number,
|
|
94
|
+
default: null
|
|
95
95
|
},
|
|
96
|
-
|
|
97
|
-
type:
|
|
98
|
-
default:
|
|
96
|
+
isPartCommercialUse: {
|
|
97
|
+
type: Boolean,
|
|
98
|
+
default: null
|
|
99
99
|
},
|
|
100
100
|
commercialUsePercentage: {
|
|
101
|
-
type:
|
|
102
|
-
default:
|
|
101
|
+
type: Number,
|
|
102
|
+
default: null
|
|
103
103
|
},
|
|
104
|
-
|
|
105
|
-
type:
|
|
106
|
-
default:
|
|
104
|
+
isPurchasedUnderSharedOwnership: {
|
|
105
|
+
type: Boolean,
|
|
106
|
+
default: null
|
|
107
107
|
},
|
|
108
108
|
yearBuilt: {
|
|
109
|
-
type:
|
|
110
|
-
default:
|
|
109
|
+
type: Number,
|
|
110
|
+
default: null
|
|
111
111
|
}
|
|
112
112
|
});
|
|
113
113
|
const accommodationSchema = new mongoose.Schema({
|
|
114
114
|
hall: {
|
|
115
|
-
type:
|
|
116
|
-
default:
|
|
115
|
+
type: Number,
|
|
116
|
+
default: null
|
|
117
117
|
},
|
|
118
118
|
livingRooms: {
|
|
119
|
-
type:
|
|
120
|
-
default:
|
|
119
|
+
type: Number,
|
|
120
|
+
default: null
|
|
121
121
|
},
|
|
122
122
|
kitchen: {
|
|
123
|
-
type:
|
|
124
|
-
default:
|
|
123
|
+
type: Number,
|
|
124
|
+
default: null
|
|
125
125
|
},
|
|
126
|
-
|
|
127
|
-
type:
|
|
128
|
-
default:
|
|
126
|
+
isLiftPresent: {
|
|
127
|
+
type: Boolean,
|
|
128
|
+
default: null
|
|
129
129
|
},
|
|
130
130
|
utility: {
|
|
131
|
-
type:
|
|
132
|
-
default:
|
|
131
|
+
type: Number,
|
|
132
|
+
default: null
|
|
133
133
|
},
|
|
134
134
|
bedrooms: {
|
|
135
|
-
type:
|
|
136
|
-
default:
|
|
135
|
+
type: Number,
|
|
136
|
+
default: null
|
|
137
137
|
},
|
|
138
138
|
bathrooms: {
|
|
139
|
-
type:
|
|
140
|
-
default:
|
|
139
|
+
type: Number,
|
|
140
|
+
default: null
|
|
141
141
|
},
|
|
142
142
|
separateWc: {
|
|
143
|
-
type:
|
|
144
|
-
default:
|
|
143
|
+
type: Number,
|
|
144
|
+
default: null
|
|
145
145
|
},
|
|
146
146
|
basement: {
|
|
147
|
-
type:
|
|
148
|
-
default:
|
|
147
|
+
type: Number,
|
|
148
|
+
default: null
|
|
149
149
|
},
|
|
150
150
|
garage: {
|
|
151
|
-
type:
|
|
152
|
-
default:
|
|
151
|
+
type: Number,
|
|
152
|
+
default: null
|
|
153
153
|
},
|
|
154
154
|
parking: {
|
|
155
|
-
type:
|
|
156
|
-
default:
|
|
155
|
+
type: Number,
|
|
156
|
+
default: null
|
|
157
157
|
},
|
|
158
158
|
gardens: {
|
|
159
|
-
type:
|
|
160
|
-
default:
|
|
159
|
+
type: Boolean,
|
|
160
|
+
default: null
|
|
161
161
|
},
|
|
162
|
-
|
|
163
|
-
type:
|
|
164
|
-
default:
|
|
162
|
+
isPrivate: {
|
|
163
|
+
type: Boolean,
|
|
164
|
+
default: null
|
|
165
|
+
},
|
|
166
|
+
isCommunal: {
|
|
167
|
+
type: Boolean,
|
|
168
|
+
default: null
|
|
165
169
|
},
|
|
166
170
|
numberOfOutbuildings: {
|
|
167
|
-
type:
|
|
168
|
-
default:
|
|
171
|
+
type: Number,
|
|
172
|
+
default: null
|
|
169
173
|
},
|
|
170
174
|
outbuildingDetails: {
|
|
171
175
|
type: String,
|
|
172
|
-
default:
|
|
176
|
+
default: null
|
|
173
177
|
},
|
|
174
178
|
grossFloorAreaOfDwelling: {
|
|
175
|
-
type:
|
|
176
|
-
default:
|
|
179
|
+
type: Number,
|
|
180
|
+
default: null
|
|
177
181
|
}
|
|
178
182
|
});
|
|
179
183
|
const newBuildSchema = new mongoose.Schema({
|
|
180
184
|
isNewBuildOrRecentlyConverted: {
|
|
181
|
-
type:
|
|
182
|
-
default:
|
|
185
|
+
type: Boolean,
|
|
186
|
+
default: null
|
|
183
187
|
},
|
|
184
|
-
|
|
185
|
-
type:
|
|
186
|
-
default:
|
|
188
|
+
isCompleted: {
|
|
189
|
+
type: Boolean,
|
|
190
|
+
default: null
|
|
191
|
+
},
|
|
192
|
+
isUnderConstruction: {
|
|
193
|
+
type: Boolean,
|
|
194
|
+
default: null
|
|
187
195
|
},
|
|
188
196
|
isFinalInspectionRequired: {
|
|
189
|
-
type:
|
|
190
|
-
default:
|
|
197
|
+
type: Boolean,
|
|
198
|
+
default: null
|
|
191
199
|
},
|
|
192
|
-
|
|
193
|
-
type:
|
|
194
|
-
default:
|
|
200
|
+
isNhbcCert: {
|
|
201
|
+
type: Boolean,
|
|
202
|
+
default: null
|
|
195
203
|
},
|
|
196
|
-
|
|
197
|
-
type:
|
|
198
|
-
default:
|
|
204
|
+
isBuildZone: {
|
|
205
|
+
type: Boolean,
|
|
206
|
+
default: null
|
|
199
207
|
},
|
|
200
|
-
|
|
201
|
-
type:
|
|
202
|
-
default:
|
|
208
|
+
isPremier: {
|
|
209
|
+
type: Boolean,
|
|
210
|
+
default: null
|
|
203
211
|
},
|
|
204
|
-
|
|
205
|
-
type:
|
|
206
|
-
default:
|
|
212
|
+
isProfessionalConsultant: {
|
|
213
|
+
type: Boolean,
|
|
214
|
+
default: null
|
|
215
|
+
},
|
|
216
|
+
isOtherCert: {
|
|
217
|
+
type: Boolean,
|
|
218
|
+
default: null
|
|
207
219
|
},
|
|
208
220
|
otherCertDetails: {
|
|
209
221
|
type: String,
|
|
210
|
-
default:
|
|
222
|
+
default: null
|
|
211
223
|
},
|
|
212
224
|
isSelfBuildProject: {
|
|
213
|
-
type:
|
|
214
|
-
default:
|
|
225
|
+
type: Boolean,
|
|
226
|
+
default: null
|
|
215
227
|
},
|
|
216
|
-
|
|
217
|
-
type:
|
|
218
|
-
default:
|
|
228
|
+
isInvolvesPartExchange: {
|
|
229
|
+
type: Boolean,
|
|
230
|
+
default: null
|
|
219
231
|
},
|
|
220
|
-
|
|
221
|
-
type:
|
|
222
|
-
default:
|
|
232
|
+
isDisclosureOfIncentivesSeen: {
|
|
233
|
+
type: Boolean,
|
|
234
|
+
default: null
|
|
223
235
|
},
|
|
224
236
|
incentivesDetails: {
|
|
225
237
|
type: String,
|
|
226
|
-
default:
|
|
238
|
+
default: null
|
|
227
239
|
},
|
|
228
240
|
newBuildDeveloperName: {
|
|
229
241
|
type: String,
|
|
230
|
-
default:
|
|
242
|
+
default: null
|
|
231
243
|
}
|
|
232
244
|
});
|
|
233
245
|
const currentOccupencySchema = new mongoose.Schema({
|
|
234
|
-
|
|
235
|
-
type:
|
|
236
|
-
default:
|
|
246
|
+
isEverOccupied: {
|
|
247
|
+
type: Boolean,
|
|
248
|
+
default: null
|
|
237
249
|
},
|
|
238
250
|
numberOfAdultsInProperty: {
|
|
239
|
-
type:
|
|
240
|
-
default:
|
|
251
|
+
type: Number,
|
|
252
|
+
default: null
|
|
241
253
|
},
|
|
242
254
|
isHmoOrMultiUnitFreeholdBlock: {
|
|
243
|
-
type:
|
|
244
|
-
default:
|
|
255
|
+
type: Boolean,
|
|
256
|
+
default: null
|
|
245
257
|
},
|
|
246
258
|
isCurrentlyTenanted: {
|
|
247
|
-
type:
|
|
248
|
-
default:
|
|
259
|
+
type: Boolean,
|
|
260
|
+
default: null
|
|
249
261
|
},
|
|
250
262
|
hmoOrMultiUnitDetails: {
|
|
251
263
|
type: String,
|
|
252
|
-
default:
|
|
264
|
+
default: null
|
|
253
265
|
},
|
|
254
266
|
});
|
|
255
267
|
const constructionSchema = new mongoose.Schema({
|
|
256
268
|
isStandardConstruction: {
|
|
257
|
-
type:
|
|
258
|
-
default:
|
|
269
|
+
type: Boolean,
|
|
270
|
+
default: null
|
|
259
271
|
},
|
|
260
272
|
nonStandardConstructionType: {
|
|
261
273
|
type: String,
|
|
262
|
-
default:
|
|
274
|
+
default: null
|
|
263
275
|
},
|
|
264
276
|
mainWalls: {
|
|
265
277
|
type: String,
|
|
266
|
-
default:
|
|
278
|
+
default: null
|
|
267
279
|
},
|
|
268
280
|
mainRoof: {
|
|
269
281
|
type: String,
|
|
270
|
-
default:
|
|
282
|
+
default: null
|
|
271
283
|
},
|
|
272
284
|
garageConstruction: {
|
|
273
285
|
type: String,
|
|
274
|
-
default:
|
|
286
|
+
default: null
|
|
275
287
|
},
|
|
276
288
|
outbuildingsConstruction: {
|
|
277
289
|
type: String,
|
|
278
|
-
default:
|
|
290
|
+
default: null
|
|
279
291
|
},
|
|
280
|
-
|
|
281
|
-
type:
|
|
282
|
-
default:
|
|
292
|
+
isHasAlterationsOrExtensions: {
|
|
293
|
+
type: Boolean,
|
|
294
|
+
default: null
|
|
283
295
|
},
|
|
284
|
-
|
|
285
|
-
type:
|
|
286
|
-
default:
|
|
296
|
+
isAlterationsRequireConsents: {
|
|
297
|
+
type: Boolean,
|
|
298
|
+
default: null
|
|
287
299
|
},
|
|
288
300
|
alterationsAge: {
|
|
289
|
-
type:
|
|
290
|
-
default:
|
|
301
|
+
type: Number,
|
|
302
|
+
default: null
|
|
291
303
|
}
|
|
292
304
|
});
|
|
293
305
|
const localityAndDemandSchema = new mongoose.Schema({
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
306
|
+
// Location Type - Boolean fields
|
|
307
|
+
isUrban: {
|
|
308
|
+
type: Boolean,
|
|
309
|
+
default: null
|
|
310
|
+
},
|
|
311
|
+
isSuburban: {
|
|
312
|
+
type: Boolean,
|
|
313
|
+
default: null
|
|
314
|
+
},
|
|
315
|
+
isRural: {
|
|
316
|
+
type: Boolean,
|
|
317
|
+
default: null
|
|
318
|
+
},
|
|
319
|
+
// Market Appeal - Boolean fields
|
|
320
|
+
isGoodMarketAppeal: {
|
|
321
|
+
type: Boolean,
|
|
322
|
+
default: null
|
|
323
|
+
},
|
|
324
|
+
isAverageMarketAppeal: {
|
|
325
|
+
type: Boolean,
|
|
326
|
+
default: null
|
|
327
|
+
},
|
|
328
|
+
isPoorMarketAppeal: {
|
|
329
|
+
type: Boolean,
|
|
330
|
+
default: null
|
|
331
|
+
},
|
|
332
|
+
// Surrounding Properties - Boolean fields
|
|
333
|
+
isSimilarProperties: {
|
|
334
|
+
type: Boolean,
|
|
335
|
+
default: null
|
|
336
|
+
},
|
|
337
|
+
isBetterProperties: {
|
|
338
|
+
type: Boolean,
|
|
339
|
+
default: null
|
|
340
|
+
},
|
|
341
|
+
isWorseProperties: {
|
|
342
|
+
type: Boolean,
|
|
343
|
+
default: null
|
|
344
|
+
},
|
|
345
|
+
// Property Prices Trend - Boolean fields
|
|
346
|
+
isPricesRising: {
|
|
347
|
+
type: Boolean,
|
|
348
|
+
default: null
|
|
349
|
+
},
|
|
350
|
+
isPricesStatic: {
|
|
351
|
+
type: Boolean,
|
|
352
|
+
default: null
|
|
353
|
+
},
|
|
354
|
+
isPricesFalling: {
|
|
355
|
+
type: Boolean,
|
|
356
|
+
default: null
|
|
357
|
+
},
|
|
358
|
+
// Demand Trend - Boolean fields
|
|
359
|
+
isDemandRising: {
|
|
360
|
+
type: Boolean,
|
|
361
|
+
default: null
|
|
362
|
+
},
|
|
363
|
+
isDemandStatic: {
|
|
364
|
+
type: Boolean,
|
|
365
|
+
default: null
|
|
366
|
+
},
|
|
367
|
+
isDemandFalling: {
|
|
368
|
+
type: Boolean,
|
|
369
|
+
default: null
|
|
370
|
+
},
|
|
371
|
+
isAffectedByCompulsoryPurchase: {
|
|
372
|
+
type: Boolean,
|
|
373
|
+
default: null
|
|
317
374
|
},
|
|
318
375
|
compulsoryPurchaseDetails: {
|
|
319
376
|
type: String,
|
|
320
|
-
default:
|
|
377
|
+
default: null
|
|
321
378
|
},
|
|
322
|
-
|
|
323
|
-
type:
|
|
324
|
-
default:
|
|
379
|
+
isVacantOrBoardedPropertiesNearby: {
|
|
380
|
+
type: Boolean,
|
|
381
|
+
default: null
|
|
325
382
|
},
|
|
326
383
|
vacantOrBoardedDetails: {
|
|
327
384
|
type: String,
|
|
328
|
-
default:
|
|
385
|
+
default: null
|
|
329
386
|
},
|
|
330
|
-
|
|
331
|
-
type:
|
|
332
|
-
default:
|
|
387
|
+
isOccupancyRestrictionPossible: {
|
|
388
|
+
type: Boolean,
|
|
389
|
+
default: null
|
|
333
390
|
},
|
|
334
391
|
occupancyRestrictionDetails: {
|
|
335
392
|
type: String,
|
|
336
|
-
default:
|
|
393
|
+
default: null
|
|
337
394
|
},
|
|
338
|
-
|
|
339
|
-
type:
|
|
340
|
-
default:
|
|
395
|
+
isCloseToHighVoltageEquipment: {
|
|
396
|
+
type: Boolean,
|
|
397
|
+
default: null
|
|
341
398
|
},
|
|
342
399
|
highVoltageEquipmentDetails: {
|
|
343
400
|
type: String,
|
|
344
|
-
default:
|
|
401
|
+
default: null
|
|
345
402
|
}
|
|
346
403
|
});
|
|
347
404
|
const servicesSchema = new mongoose.Schema({
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
405
|
+
// Water Supply - Boolean fields
|
|
406
|
+
isMainsWater: {
|
|
407
|
+
type: Boolean,
|
|
408
|
+
default: null
|
|
409
|
+
},
|
|
410
|
+
isPrivateWater: {
|
|
411
|
+
type: Boolean,
|
|
412
|
+
default: null
|
|
413
|
+
},
|
|
414
|
+
isUnknownWater: {
|
|
415
|
+
type: Boolean,
|
|
416
|
+
default: null
|
|
417
|
+
},
|
|
418
|
+
// Gas Supply - Boolean
|
|
419
|
+
isGasSupply: {
|
|
420
|
+
type: Boolean,
|
|
421
|
+
default: null
|
|
422
|
+
},
|
|
423
|
+
// Electricity Supply - Boolean
|
|
424
|
+
isElectricitySupply: {
|
|
425
|
+
type: Boolean,
|
|
426
|
+
default: null
|
|
427
|
+
},
|
|
428
|
+
// Central Heating - Boolean
|
|
429
|
+
isCentralHeating: {
|
|
430
|
+
type: Boolean,
|
|
431
|
+
default: null
|
|
363
432
|
},
|
|
364
433
|
centralHeatingType: {
|
|
365
434
|
type: String,
|
|
366
|
-
default:
|
|
435
|
+
default: null
|
|
367
436
|
},
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
437
|
+
// Main Drainage - Boolean
|
|
438
|
+
isMainDrainage: {
|
|
439
|
+
type: Boolean,
|
|
440
|
+
default: null
|
|
371
441
|
},
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
442
|
+
// Septic Tank/Cesspit/Treatment Plant - Boolean
|
|
443
|
+
isSepticTankPlant: {
|
|
444
|
+
type: Boolean,
|
|
445
|
+
default: null
|
|
375
446
|
},
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
447
|
+
// Solar Panels - Boolean
|
|
448
|
+
isSolarPanels: {
|
|
449
|
+
type: Boolean,
|
|
450
|
+
default: null
|
|
379
451
|
},
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
452
|
+
// Shared Access - Boolean
|
|
453
|
+
isSharedAccess: {
|
|
454
|
+
type: Boolean,
|
|
455
|
+
default: null
|
|
383
456
|
},
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
457
|
+
// Road Adopted - Boolean
|
|
458
|
+
isRoadAdopted: {
|
|
459
|
+
type: Boolean,
|
|
460
|
+
default: null
|
|
387
461
|
},
|
|
388
|
-
|
|
389
|
-
type:
|
|
390
|
-
default:
|
|
391
|
-
},
|
|
392
|
-
hasEasementsOrRightsOfWay: {
|
|
393
|
-
type: String,
|
|
394
|
-
default: ""
|
|
462
|
+
isHasEasementsOrRightsOfWay: {
|
|
463
|
+
type: Boolean,
|
|
464
|
+
default: null
|
|
395
465
|
},
|
|
396
466
|
easementsOrRightsDetails: {
|
|
397
467
|
type: String,
|
|
398
|
-
default:
|
|
468
|
+
default: null
|
|
399
469
|
},
|
|
400
470
|
servicesSeparateForFlats: {
|
|
401
471
|
type: String,
|
|
@@ -409,277 +479,277 @@ const servicesSchema = new mongoose.Schema({
|
|
|
409
479
|
const energyEfficiencySchema = new mongoose.Schema({
|
|
410
480
|
epcRating: {
|
|
411
481
|
type: String,
|
|
412
|
-
default:
|
|
482
|
+
default: null
|
|
413
483
|
},
|
|
414
484
|
epcScore: {
|
|
415
|
-
type:
|
|
416
|
-
default:
|
|
485
|
+
type: Number,
|
|
486
|
+
default: null
|
|
417
487
|
}
|
|
418
488
|
});
|
|
419
489
|
const essentialRepairsSchema = new mongoose.Schema({
|
|
420
|
-
|
|
421
|
-
type:
|
|
422
|
-
default:
|
|
490
|
+
isEssentialRepairsRequired: {
|
|
491
|
+
type: Boolean,
|
|
492
|
+
default: null
|
|
423
493
|
},
|
|
424
494
|
essentialRepairsDetails: {
|
|
425
495
|
type: String,
|
|
426
|
-
default:
|
|
496
|
+
default: null
|
|
427
497
|
},
|
|
428
|
-
|
|
429
|
-
type:
|
|
430
|
-
default:
|
|
498
|
+
isReinspectionRequired: {
|
|
499
|
+
type: Boolean,
|
|
500
|
+
default: null
|
|
431
501
|
}
|
|
432
502
|
});
|
|
433
503
|
const reportsSchema = new mongoose.Schema({
|
|
434
|
-
|
|
435
|
-
type:
|
|
436
|
-
default:
|
|
504
|
+
isTimberDamp: {
|
|
505
|
+
type: Boolean,
|
|
506
|
+
default: null
|
|
437
507
|
},
|
|
438
|
-
|
|
439
|
-
type:
|
|
440
|
-
default:
|
|
508
|
+
isMining: {
|
|
509
|
+
type: Boolean,
|
|
510
|
+
default: null
|
|
441
511
|
},
|
|
442
|
-
|
|
443
|
-
type:
|
|
444
|
-
default:
|
|
512
|
+
isElectrical: {
|
|
513
|
+
type: Boolean,
|
|
514
|
+
default: null
|
|
445
515
|
},
|
|
446
|
-
|
|
447
|
-
type:
|
|
448
|
-
default:
|
|
516
|
+
isDrains: {
|
|
517
|
+
type: Boolean,
|
|
518
|
+
default: null
|
|
449
519
|
},
|
|
450
|
-
|
|
451
|
-
type:
|
|
452
|
-
default:
|
|
520
|
+
isStructuralEngineers: {
|
|
521
|
+
type: Boolean,
|
|
522
|
+
default: null
|
|
453
523
|
},
|
|
454
|
-
|
|
455
|
-
type:
|
|
456
|
-
default:
|
|
524
|
+
isArboricultural: {
|
|
525
|
+
type: Boolean,
|
|
526
|
+
default: null
|
|
457
527
|
},
|
|
458
|
-
|
|
459
|
-
type:
|
|
460
|
-
default:
|
|
528
|
+
isMundic: {
|
|
529
|
+
type: Boolean,
|
|
530
|
+
default: null
|
|
461
531
|
},
|
|
462
|
-
|
|
463
|
-
type:
|
|
464
|
-
default:
|
|
532
|
+
isWallTies: {
|
|
533
|
+
type: Boolean,
|
|
534
|
+
default: null
|
|
465
535
|
},
|
|
466
|
-
|
|
467
|
-
type:
|
|
468
|
-
default:
|
|
536
|
+
isRoof: {
|
|
537
|
+
type: Boolean,
|
|
538
|
+
default: null
|
|
469
539
|
},
|
|
470
|
-
|
|
471
|
-
type:
|
|
472
|
-
default:
|
|
540
|
+
isMetalliferous: {
|
|
541
|
+
type: Boolean,
|
|
542
|
+
default: null
|
|
473
543
|
},
|
|
474
|
-
|
|
475
|
-
type:
|
|
476
|
-
default:
|
|
544
|
+
isSulfateRedAsh: {
|
|
545
|
+
type: Boolean,
|
|
546
|
+
default: null
|
|
477
547
|
},
|
|
478
|
-
|
|
479
|
-
type:
|
|
480
|
-
default:
|
|
548
|
+
isOtherReport: {
|
|
549
|
+
type: Boolean,
|
|
550
|
+
default: null
|
|
481
551
|
},
|
|
482
552
|
otherReportDetails: {
|
|
483
553
|
type: String,
|
|
484
|
-
default:
|
|
554
|
+
default: null
|
|
485
555
|
}
|
|
486
556
|
});
|
|
487
557
|
const propertyProneToSchema = new mongoose.Schema({
|
|
488
558
|
flooding: {
|
|
489
|
-
type:
|
|
490
|
-
default:
|
|
559
|
+
type: Boolean,
|
|
560
|
+
default: null
|
|
491
561
|
},
|
|
492
562
|
subsidence: {
|
|
493
|
-
type:
|
|
494
|
-
default:
|
|
563
|
+
type: Boolean,
|
|
564
|
+
default: null
|
|
495
565
|
},
|
|
496
566
|
heave: {
|
|
497
|
-
type:
|
|
498
|
-
default:
|
|
567
|
+
type: Boolean,
|
|
568
|
+
default: null
|
|
499
569
|
},
|
|
500
570
|
landslip: {
|
|
501
|
-
type:
|
|
502
|
-
default:
|
|
571
|
+
type: Boolean,
|
|
572
|
+
default: null
|
|
503
573
|
},
|
|
504
574
|
details: {
|
|
505
575
|
type: String,
|
|
506
|
-
default:
|
|
576
|
+
default: null
|
|
507
577
|
}
|
|
508
578
|
});
|
|
509
579
|
const conditionsOfPropertySchema = new mongoose.Schema({
|
|
510
|
-
|
|
511
|
-
type:
|
|
512
|
-
default:
|
|
580
|
+
isStructuralMovement: {
|
|
581
|
+
type: Boolean,
|
|
582
|
+
default: null
|
|
513
583
|
},
|
|
514
|
-
|
|
515
|
-
type:
|
|
516
|
-
default:
|
|
584
|
+
isStructuralMovementHistoricOrNonProgressive: {
|
|
585
|
+
type: Boolean,
|
|
586
|
+
default: null
|
|
517
587
|
},
|
|
518
588
|
structuralMovementDetails: {
|
|
519
589
|
type: String,
|
|
520
590
|
default: ""
|
|
521
591
|
},
|
|
522
|
-
|
|
523
|
-
type:
|
|
524
|
-
default:
|
|
592
|
+
isStructuralModifications: {
|
|
593
|
+
type: Boolean,
|
|
594
|
+
default: null
|
|
525
595
|
},
|
|
526
596
|
structuralModificationsDetails: {
|
|
527
597
|
type: String,
|
|
528
|
-
default:
|
|
598
|
+
default: null
|
|
529
599
|
},
|
|
530
600
|
communalAreasMaintained: {
|
|
531
601
|
type: String,
|
|
532
|
-
default:
|
|
602
|
+
default: null
|
|
533
603
|
},
|
|
534
604
|
propertyProneTo: [propertyProneToSchema],
|
|
535
|
-
|
|
536
|
-
type:
|
|
537
|
-
default:
|
|
605
|
+
isPlotBoundariesDefinedUnderPointFourHectares: {
|
|
606
|
+
type: Boolean,
|
|
607
|
+
default: null
|
|
538
608
|
},
|
|
539
|
-
|
|
540
|
-
type:
|
|
541
|
-
default:
|
|
609
|
+
isTreesWithinInfluencingDistance: {
|
|
610
|
+
type: Boolean,
|
|
611
|
+
default: null
|
|
542
612
|
},
|
|
543
613
|
treesInfluenceDetails: {
|
|
544
614
|
type: String,
|
|
545
|
-
default:
|
|
615
|
+
default: null
|
|
546
616
|
},
|
|
547
|
-
|
|
548
|
-
type:
|
|
549
|
-
default:
|
|
617
|
+
isBuiltOnSteepSlope: {
|
|
618
|
+
type: Boolean,
|
|
619
|
+
default: null
|
|
550
620
|
},
|
|
551
621
|
steepSlopeDetails: {
|
|
552
622
|
type: String,
|
|
553
|
-
default:
|
|
623
|
+
default: null
|
|
554
624
|
}
|
|
555
625
|
});
|
|
556
626
|
const rentalInformationSchema = new mongoose.Schema({
|
|
557
|
-
|
|
558
|
-
type:
|
|
559
|
-
default:
|
|
627
|
+
isRentalDemandInLocality: {
|
|
628
|
+
type: Boolean,
|
|
629
|
+
default: null
|
|
560
630
|
},
|
|
561
631
|
rentalDemandDetails: {
|
|
562
632
|
type: String,
|
|
563
|
-
default:
|
|
633
|
+
default: null
|
|
564
634
|
},
|
|
565
635
|
monthlyMarketRentPresentCondition: {
|
|
566
|
-
type:
|
|
567
|
-
default:
|
|
636
|
+
type: Number,
|
|
637
|
+
default: null
|
|
568
638
|
},
|
|
569
639
|
monthlyMarketRentImprovedCondition: {
|
|
570
|
-
type:
|
|
571
|
-
default:
|
|
640
|
+
type: Number,
|
|
641
|
+
default: null
|
|
572
642
|
},
|
|
573
|
-
|
|
574
|
-
type:
|
|
575
|
-
default:
|
|
643
|
+
isOtherLettingDemandFactors: {
|
|
644
|
+
type: Boolean,
|
|
645
|
+
default: null
|
|
576
646
|
},
|
|
577
647
|
otherLettingDemandDetails: {
|
|
578
648
|
type: String,
|
|
579
|
-
default:
|
|
649
|
+
default: null
|
|
580
650
|
},
|
|
581
651
|
investorOnlyDemand: {
|
|
582
|
-
type:
|
|
583
|
-
default:
|
|
652
|
+
type: Boolean,
|
|
653
|
+
default: null
|
|
584
654
|
},
|
|
585
655
|
investorOnlyDemandDetails: {
|
|
586
656
|
type: String,
|
|
587
|
-
default:
|
|
657
|
+
default: null
|
|
588
658
|
}
|
|
589
659
|
});
|
|
590
660
|
const valuationForFinancePurposeSchema = new mongoose.Schema({
|
|
591
661
|
valuationComparativeOnly: {
|
|
592
662
|
type: String,
|
|
593
|
-
default:
|
|
663
|
+
default: null
|
|
594
664
|
},
|
|
595
|
-
|
|
596
|
-
type:
|
|
597
|
-
default:
|
|
665
|
+
isSuitableForFinance: {
|
|
666
|
+
type: Boolean,
|
|
667
|
+
default: null
|
|
598
668
|
},
|
|
599
669
|
financeSuitabilityDetails: {
|
|
600
670
|
type: String,
|
|
601
671
|
default: ""
|
|
602
672
|
},
|
|
603
673
|
marketValuePresentCondition: {
|
|
604
|
-
type:
|
|
605
|
-
default:
|
|
674
|
+
type: Number,
|
|
675
|
+
default: null
|
|
606
676
|
},
|
|
607
677
|
marketValueAfterRepairs: {
|
|
608
|
-
type:
|
|
609
|
-
default:
|
|
678
|
+
type: Number,
|
|
679
|
+
default: null
|
|
610
680
|
},
|
|
611
681
|
purchasePriceOrBorrowerEstimate: {
|
|
612
|
-
type:
|
|
613
|
-
default:
|
|
682
|
+
type: Number,
|
|
683
|
+
default: null
|
|
614
684
|
},
|
|
615
685
|
buildingInsuranceReinstatementCost: {
|
|
616
|
-
type:
|
|
617
|
-
default:
|
|
686
|
+
type: Number,
|
|
687
|
+
default: null
|
|
618
688
|
},
|
|
619
|
-
|
|
620
|
-
type:
|
|
621
|
-
default:
|
|
689
|
+
isInsurancePremiumLoadingRisk: {
|
|
690
|
+
type: Boolean,
|
|
691
|
+
default: null
|
|
622
692
|
},
|
|
623
693
|
insurancePremiumLoadingDetails: {
|
|
624
694
|
type: String,
|
|
625
|
-
default:
|
|
695
|
+
default: null
|
|
626
696
|
}
|
|
627
697
|
});
|
|
628
698
|
const valuerQualificationsSchema = new mongoose.Schema({
|
|
629
699
|
mrics: {
|
|
630
|
-
type:
|
|
631
|
-
default:
|
|
700
|
+
type: Boolean,
|
|
701
|
+
default: null
|
|
632
702
|
},
|
|
633
703
|
frics: {
|
|
634
|
-
type:
|
|
635
|
-
default:
|
|
704
|
+
type: Boolean,
|
|
705
|
+
default: null
|
|
636
706
|
},
|
|
637
707
|
assocRics: {
|
|
638
|
-
type:
|
|
639
|
-
default:
|
|
708
|
+
type: Boolean,
|
|
709
|
+
default: null
|
|
640
710
|
}
|
|
641
711
|
});
|
|
642
712
|
const valuersDeclarationSchema = new mongoose.Schema({
|
|
643
713
|
valuerSignature: {
|
|
644
|
-
type:
|
|
645
|
-
default:
|
|
714
|
+
type: Number,
|
|
715
|
+
default: null
|
|
646
716
|
},
|
|
647
717
|
valuerName: {
|
|
648
718
|
type: String,
|
|
649
|
-
default:
|
|
719
|
+
default: null
|
|
650
720
|
},
|
|
651
721
|
onBehalfOf: {
|
|
652
722
|
type: String,
|
|
653
|
-
default:
|
|
723
|
+
default: null
|
|
654
724
|
},
|
|
655
725
|
telephone: {
|
|
656
|
-
type:
|
|
657
|
-
default:
|
|
726
|
+
type: Number,
|
|
727
|
+
default: null
|
|
658
728
|
},
|
|
659
729
|
fax: {
|
|
660
|
-
type:
|
|
661
|
-
default:
|
|
730
|
+
type: Number,
|
|
731
|
+
default: null
|
|
662
732
|
},
|
|
663
733
|
email: {
|
|
664
734
|
type: String,
|
|
665
|
-
default:
|
|
735
|
+
default: null
|
|
666
736
|
},
|
|
667
737
|
valuerQualifications: [valuerQualificationsSchema],
|
|
668
738
|
ricsNumber: {
|
|
669
|
-
type:
|
|
670
|
-
default:
|
|
739
|
+
type: Number,
|
|
740
|
+
default: null
|
|
671
741
|
},
|
|
672
742
|
valuerAddress: {
|
|
673
743
|
type: String,
|
|
674
|
-
default:
|
|
744
|
+
default: null
|
|
675
745
|
},
|
|
676
746
|
valuerPostcode: {
|
|
677
747
|
type: String,
|
|
678
|
-
default:
|
|
748
|
+
default: null
|
|
679
749
|
},
|
|
680
750
|
reportDate: {
|
|
681
|
-
type:
|
|
682
|
-
default:
|
|
751
|
+
type: Number,
|
|
752
|
+
default: null
|
|
683
753
|
}
|
|
684
754
|
});
|
|
685
755
|
const valuationReportSchema = new mongoose.Schema({
|