@dynamatix/gb-schemas 2.3.254 → 2.3.256

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.
@@ -1,28 +1,28 @@
1
1
  import mongoose from "mongoose";
2
2
  import { applyWorkflowPlugin } from "../shared/workflow.plugin";
3
3
  const propertyTypeSchema = new mongoose.Schema({
4
- detachedHouse: {
5
- type: String,
4
+ isDetachedHouse: {
5
+ type: Boolean,
6
6
  default: null
7
7
  },
8
- semiDetachedHouse: {
9
- type: String,
8
+ isSemiDetachedHouse: {
9
+ type: Boolean,
10
10
  default: null
11
11
  },
12
- terracedHouse: {
13
- type: String,
12
+ isTerracedHouse: {
13
+ type: Boolean,
14
14
  default: null
15
15
  },
16
- bungalow: {
17
- type: String,
16
+ isBungalow: {
17
+ type: Boolean,
18
18
  default: null
19
19
  },
20
- flat: {
21
- type: String,
20
+ isFlat: {
21
+ type: Boolean,
22
22
  default: null
23
23
  },
24
- maisonette: {
25
- type: String,
24
+ isMaisonette: {
25
+ type: Boolean,
26
26
  default: null
27
27
  },
28
28
  flatMaisonetteFloor: {
@@ -35,22 +35,22 @@ const propertyTypeSchema = new mongoose.Schema({
35
35
  },
36
36
  isBuiltOrOwnedByLocalAuthority: {
37
37
  type: Boolean,
38
- default: false
38
+ default: null
39
39
  },
40
40
  ownerOccupationPercentage: {
41
- type: String,
41
+ type: Number,
42
42
  default: null
43
43
  },
44
- flatMaisonetteConverted: {
45
- type: String,
44
+ isFlatMaisonetteConverted: {
45
+ type: Boolean,
46
46
  default: null
47
47
  },
48
48
  conversionYear: {
49
- type: String,
49
+ type: Number,
50
50
  default: null
51
51
  },
52
- purposeBuilt: {
53
- type: String,
52
+ isPurposeBuilt: {
53
+ type: Boolean,
54
54
  default: null
55
55
  },
56
56
  numberOfUnitsInBlock: {
@@ -59,7 +59,7 @@ const propertyTypeSchema = new mongoose.Schema({
59
59
  },
60
60
  isAboveCommercial: {
61
61
  type: Boolean,
62
- default: false
62
+ default: null
63
63
  },
64
64
  residentialNatureImpact: {
65
65
  type: String,
@@ -71,7 +71,7 @@ const propertyTypeSchema = new mongoose.Schema({
71
71
  },
72
72
  isFlyingFreehold: {
73
73
  type: Boolean,
74
- default: false
74
+ default: null
75
75
  },
76
76
  flyingFreeholdPercentage: {
77
77
  type: Number,
@@ -95,7 +95,7 @@ const propertyTypeSchema = new mongoose.Schema({
95
95
  },
96
96
  isPartCommercialUse: {
97
97
  type: Boolean,
98
- default: false
98
+ default: null
99
99
  },
100
100
  commercialUsePercentage: {
101
101
  type: Number,
@@ -103,7 +103,7 @@ const propertyTypeSchema = new mongoose.Schema({
103
103
  },
104
104
  isPurchasedUnderSharedOwnership: {
105
105
  type: Boolean,
106
- default: false
106
+ default: null
107
107
  },
108
108
  yearBuilt: {
109
109
  type: Number,
@@ -125,7 +125,7 @@ const accommodationSchema = new mongoose.Schema({
125
125
  },
126
126
  isLiftPresent: {
127
127
  type: Boolean,
128
- default: false
128
+ default: null
129
129
  },
130
130
  utility: {
131
131
  type: Number,
@@ -157,10 +157,14 @@ const accommodationSchema = new mongoose.Schema({
157
157
  },
158
158
  gardens: {
159
159
  type: Boolean,
160
- default: false
160
+ default: null
161
161
  },
162
- privateOrCommunal: {
163
- type: String,
162
+ isPrivate: {
163
+ type: Boolean,
164
+ default: null
165
+ },
166
+ isCommunal: {
167
+ type: Boolean,
164
168
  default: null
165
169
  },
166
170
  numberOfOutbuildings: {
@@ -179,30 +183,38 @@ const accommodationSchema = new mongoose.Schema({
179
183
  const newBuildSchema = new mongoose.Schema({
180
184
  isNewBuildOrRecentlyConverted: {
181
185
  type: Boolean,
182
- default: false
186
+ default: null
183
187
  },
184
- newBuildStatus: {
185
- type: String,
188
+ isCompleted: {
189
+ type: Boolean,
190
+ default: null
191
+ },
192
+ isUnderConstruction: {
193
+ type: Boolean,
186
194
  default: null
187
195
  },
188
196
  isFinalInspectionRequired: {
189
197
  type: Boolean,
190
- default: false
198
+ default: null
191
199
  },
192
- nhbcCert: {
193
- type: String,
200
+ isNhbcCert: {
201
+ type: Boolean,
194
202
  default: null
195
203
  },
196
- buildZone: {
197
- type: String,
204
+ isBuildZone: {
205
+ type: Boolean,
198
206
  default: null
199
207
  },
200
- premier: {
201
- type: String,
208
+ isPremier: {
209
+ type: Boolean,
202
210
  default: null
203
211
  },
204
- professionalConsultant: {
205
- type: String,
212
+ isProfessionalConsultant: {
213
+ type: Boolean,
214
+ default: null
215
+ },
216
+ isOtherCert: {
217
+ type: Boolean,
206
218
  default: null
207
219
  },
208
220
  otherCertDetails: {
@@ -211,15 +223,15 @@ const newBuildSchema = new mongoose.Schema({
211
223
  },
212
224
  isSelfBuildProject: {
213
225
  type: Boolean,
214
- default: false
226
+ default: null
215
227
  },
216
228
  isInvolvesPartExchange: {
217
229
  type: Boolean,
218
- default: false
230
+ default: null
219
231
  },
220
232
  isDisclosureOfIncentivesSeen: {
221
233
  type: Boolean,
222
- default: false
234
+ default: null
223
235
  },
224
236
  incentivesDetails: {
225
237
  type: String,
@@ -233,7 +245,7 @@ const newBuildSchema = new mongoose.Schema({
233
245
  const currentOccupencySchema = new mongoose.Schema({
234
246
  isEverOccupied: {
235
247
  type: Boolean,
236
- default: false
248
+ default: null
237
249
  },
238
250
  numberOfAdultsInProperty: {
239
251
  type: Number,
@@ -241,11 +253,11 @@ const currentOccupencySchema = new mongoose.Schema({
241
253
  },
242
254
  isHmoOrMultiUnitFreeholdBlock: {
243
255
  type: Boolean,
244
- default: false
256
+ default: null
245
257
  },
246
258
  isCurrentlyTenanted: {
247
259
  type: Boolean,
248
- default: false
260
+ default: null
249
261
  },
250
262
  hmoOrMultiUnitDetails: {
251
263
  type: String,
@@ -255,7 +267,7 @@ const currentOccupencySchema = new mongoose.Schema({
255
267
  const constructionSchema = new mongoose.Schema({
256
268
  isStandardConstruction: {
257
269
  type: Boolean,
258
- default: false
270
+ default: null
259
271
  },
260
272
  nonStandardConstructionType: {
261
273
  type: String,
@@ -279,11 +291,11 @@ const constructionSchema = new mongoose.Schema({
279
291
  },
280
292
  isHasAlterationsOrExtensions: {
281
293
  type: Boolean,
282
- default: false
294
+ default: null
283
295
  },
284
296
  isAlterationsRequireConsents: {
285
297
  type: Boolean,
286
- default: false
298
+ default: null
287
299
  },
288
300
  alterationsAge: {
289
301
  type: Number,
@@ -291,29 +303,74 @@ const constructionSchema = new mongoose.Schema({
291
303
  }
292
304
  });
293
305
  const localityAndDemandSchema = new mongoose.Schema({
294
- locationType: {
295
- type: String,
296
- default: ""
306
+ // Location Type - Boolean fields
307
+ isUrban: {
308
+ type: Boolean,
309
+ default: null
297
310
  },
298
- marketAppeal: {
299
- type: String,
300
- default: ""
311
+ isSuburban: {
312
+ type: Boolean,
313
+ default: null
301
314
  },
302
- surroundingProperties: {
303
- type: String,
304
- default: ""
315
+ isRural: {
316
+ type: Boolean,
317
+ default: null
305
318
  },
306
- propertyPricesTrend: {
307
- type: String,
308
- default: ""
319
+ // Market Appeal - Boolean fields
320
+ isGoodMarketAppeal: {
321
+ type: Boolean,
322
+ default: null
309
323
  },
310
- demandTrend: {
311
- type: String,
312
- default: ""
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
313
370
  },
314
371
  isAffectedByCompulsoryPurchase: {
315
372
  type: Boolean,
316
- default: false
373
+ default: null
317
374
  },
318
375
  compulsoryPurchaseDetails: {
319
376
  type: String,
@@ -321,7 +378,7 @@ const localityAndDemandSchema = new mongoose.Schema({
321
378
  },
322
379
  isVacantOrBoardedPropertiesNearby: {
323
380
  type: Boolean,
324
- default: false
381
+ default: null
325
382
  },
326
383
  vacantOrBoardedDetails: {
327
384
  type: String,
@@ -329,7 +386,7 @@ const localityAndDemandSchema = new mongoose.Schema({
329
386
  },
330
387
  isOccupancyRestrictionPossible: {
331
388
  type: Boolean,
332
- default: false
389
+ default: null
333
390
  },
334
391
  occupancyRestrictionDetails: {
335
392
  type: String,
@@ -337,7 +394,7 @@ const localityAndDemandSchema = new mongoose.Schema({
337
394
  },
338
395
  isCloseToHighVoltageEquipment: {
339
396
  type: Boolean,
340
- default: false
397
+ default: null
341
398
  },
342
399
  highVoltageEquipmentDetails: {
343
400
  type: String,
@@ -345,53 +402,66 @@ const localityAndDemandSchema = new mongoose.Schema({
345
402
  }
346
403
  });
347
404
  const servicesSchema = new mongoose.Schema({
348
- waterSupply: {
349
- type: String,
350
- default: ""
405
+ // Water Supply - Boolean fields
406
+ isMainsWater: {
407
+ type: Boolean,
408
+ default: null
351
409
  },
352
- gasSupply: {
353
- type: String,
354
- default: ""
410
+ isPrivateWater: {
411
+ type: Boolean,
412
+ default: null
355
413
  },
356
- electricitySupply: {
357
- type: String,
358
- default: ""
414
+ isUnknownWater: {
415
+ type: Boolean,
416
+ default: null
359
417
  },
360
- centralHeating: {
361
- type: String,
362
- default: ""
418
+ // Gas Supply - Boolean
419
+ isGasSupply: {
420
+ type: Boolean,
421
+ default: null
363
422
  },
364
- centralHeatingType: {
365
- type: String,
366
- default: ""
423
+ // Electricity Supply - Boolean
424
+ isElectricitySupply: {
425
+ type: Boolean,
426
+ default: null
367
427
  },
368
- mainDrainage: {
369
- type: String,
370
- default: ""
428
+ // Central Heating - Boolean
429
+ isCentralHeating: {
430
+ type: Boolean,
431
+ default: null
371
432
  },
372
- septicTankPlant: {
433
+ centralHeatingType: {
373
434
  type: String,
374
- default: ""
435
+ default: null
375
436
  },
376
- unknown: {
377
- type: String,
378
- default: ""
437
+ // Main Drainage - Boolean
438
+ isMainDrainage: {
439
+ type: Boolean,
440
+ default: null
379
441
  },
380
- solarPanels: {
381
- type: String,
382
- default: ""
442
+ // Septic Tank/Cesspit/Treatment Plant - Boolean
443
+ isSepticTankPlant: {
444
+ type: Boolean,
445
+ default: null
383
446
  },
384
- sharedAccess: {
385
- type: String,
386
- default: ""
447
+ // Solar Panels - Boolean
448
+ isSolarPanels: {
449
+ type: Boolean,
450
+ default: null
387
451
  },
388
- roadAdopted: {
389
- type: String,
390
- default: ""
452
+ // Shared Access - Boolean
453
+ isSharedAccess: {
454
+ type: Boolean,
455
+ default: null
456
+ },
457
+ // Road Adopted - Boolean
458
+ isRoadAdopted: {
459
+ type: Boolean,
460
+ default: null
391
461
  },
392
462
  isHasEasementsOrRightsOfWay: {
393
463
  type: Boolean,
394
- default: false
464
+ default: null
395
465
  },
396
466
  easementsOrRightsDetails: {
397
467
  type: String,
@@ -419,7 +489,7 @@ const energyEfficiencySchema = new mongoose.Schema({
419
489
  const essentialRepairsSchema = new mongoose.Schema({
420
490
  isEssentialRepairsRequired: {
421
491
  type: Boolean,
422
- default: false
492
+ default: null
423
493
  },
424
494
  essentialRepairsDetails: {
425
495
  type: String,
@@ -427,93 +497,93 @@ const essentialRepairsSchema = new mongoose.Schema({
427
497
  },
428
498
  isReinspectionRequired: {
429
499
  type: Boolean,
430
- default: false
500
+ default: null
431
501
  }
432
502
  });
433
503
  const reportsSchema = new mongoose.Schema({
434
- timberDamp: {
435
- type: String,
436
- default: ""
504
+ isTimberDamp: {
505
+ type: Boolean,
506
+ default: null
437
507
  },
438
- mining: {
439
- type: String,
440
- default: ""
508
+ isMining: {
509
+ type: Boolean,
510
+ default: null
441
511
  },
442
- electrical: {
443
- type: String,
444
- default: ""
512
+ isElectrical: {
513
+ type: Boolean,
514
+ default: null
445
515
  },
446
- drains: {
447
- type: String,
448
- default: ""
516
+ isDrains: {
517
+ type: Boolean,
518
+ default: null
449
519
  },
450
- structuralEngineers: {
451
- type: String,
452
- default: ""
520
+ isStructuralEngineers: {
521
+ type: Boolean,
522
+ default: null
453
523
  },
454
- arboricultural: {
455
- type: String,
456
- default: ""
524
+ isArboricultural: {
525
+ type: Boolean,
526
+ default: null
457
527
  },
458
- mundic: {
459
- type: String,
460
- default: ""
528
+ isMundic: {
529
+ type: Boolean,
530
+ default: null
461
531
  },
462
- wallTies: {
463
- type: String,
464
- default: ""
532
+ isWallTies: {
533
+ type: Boolean,
534
+ default: null
465
535
  },
466
- roof: {
467
- type: String,
468
- default: ""
536
+ isRoof: {
537
+ type: Boolean,
538
+ default: null
469
539
  },
470
- metalliferous: {
471
- type: String,
472
- default: ""
540
+ isMetalliferous: {
541
+ type: Boolean,
542
+ default: null
473
543
  },
474
- sulfateRedAsh: {
475
- type: String,
476
- default: ""
544
+ isSulfateRedAsh: {
545
+ type: Boolean,
546
+ default: null
477
547
  },
478
- other: {
479
- type: String,
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: String,
490
- default: ""
559
+ type: Boolean,
560
+ default: null
491
561
  },
492
562
  subsidence: {
493
- type: String,
494
- default: ""
563
+ type: Boolean,
564
+ default: null
495
565
  },
496
566
  heave: {
497
- type: String,
498
- default: ""
567
+ type: Boolean,
568
+ default: null
499
569
  },
500
570
  landslip: {
501
- type: String,
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
580
  isStructuralMovement: {
511
581
  type: Boolean,
512
- default: false
582
+ default: null
513
583
  },
514
584
  isStructuralMovementHistoricOrNonProgressive: {
515
585
  type: Boolean,
516
- default: false
586
+ default: null
517
587
  },
518
588
  structuralMovementDetails: {
519
589
  type: String,
@@ -521,7 +591,7 @@ const conditionsOfPropertySchema = new mongoose.Schema({
521
591
  },
522
592
  isStructuralModifications: {
523
593
  type: Boolean,
524
- default: false
594
+ default: null
525
595
  },
526
596
  structuralModificationsDetails: {
527
597
  type: String,
@@ -529,16 +599,16 @@ const conditionsOfPropertySchema = new mongoose.Schema({
529
599
  },
530
600
  communalAreasMaintained: {
531
601
  type: String,
532
- default: ""
602
+ default: null
533
603
  },
534
604
  propertyProneTo: [propertyProneToSchema],
535
605
  isPlotBoundariesDefinedUnderPointFourHectares: {
536
606
  type: Boolean,
537
- default: false
607
+ default: null
538
608
  },
539
609
  isTreesWithinInfluencingDistance: {
540
610
  type: Boolean,
541
- default: false
611
+ default: null
542
612
  },
543
613
  treesInfluenceDetails: {
544
614
  type: String,
@@ -546,7 +616,7 @@ const conditionsOfPropertySchema = new mongoose.Schema({
546
616
  },
547
617
  isBuiltOnSteepSlope: {
548
618
  type: Boolean,
549
- default: false
619
+ default: null
550
620
  },
551
621
  steepSlopeDetails: {
552
622
  type: String,
@@ -556,7 +626,7 @@ const conditionsOfPropertySchema = new mongoose.Schema({
556
626
  const rentalInformationSchema = new mongoose.Schema({
557
627
  isRentalDemandInLocality: {
558
628
  type: Boolean,
559
- default: false
629
+ default: null
560
630
  },
561
631
  rentalDemandDetails: {
562
632
  type: String,
@@ -572,15 +642,15 @@ const rentalInformationSchema = new mongoose.Schema({
572
642
  },
573
643
  isOtherLettingDemandFactors: {
574
644
  type: Boolean,
575
- default: false
645
+ default: null
576
646
  },
577
647
  otherLettingDemandDetails: {
578
648
  type: String,
579
649
  default: null
580
650
  },
581
- isInvestorOnlyDemand: {
651
+ investorOnlyDemand: {
582
652
  type: Boolean,
583
- default: false
653
+ default: null
584
654
  },
585
655
  investorOnlyDemandDetails: {
586
656
  type: String,
@@ -594,7 +664,7 @@ const valuationForFinancePurposeSchema = new mongoose.Schema({
594
664
  },
595
665
  isSuitableForFinance: {
596
666
  type: Boolean,
597
- default: false
667
+ default: null
598
668
  },
599
669
  financeSuitabilityDetails: {
600
670
  type: String,
@@ -618,7 +688,7 @@ const valuationForFinancePurposeSchema = new mongoose.Schema({
618
688
  },
619
689
  isInsurancePremiumLoadingRisk: {
620
690
  type: Boolean,
621
- default: false
691
+ default: null
622
692
  },
623
693
  insurancePremiumLoadingDetails: {
624
694
  type: String,
@@ -627,16 +697,16 @@ const valuationForFinancePurposeSchema = new mongoose.Schema({
627
697
  });
628
698
  const valuerQualificationsSchema = new mongoose.Schema({
629
699
  mrics: {
630
- type: String,
631
- default: ""
700
+ type: Boolean,
701
+ default: null
632
702
  },
633
703
  frics: {
634
- type: String,
635
- default: ""
704
+ type: Boolean,
705
+ default: null
636
706
  },
637
707
  assocRics: {
638
- type: String,
639
- default: ""
708
+ type: Boolean,
709
+ default: null
640
710
  }
641
711
  });
642
712
  const valuersDeclarationSchema = new mongoose.Schema({
@@ -646,11 +716,11 @@ const valuersDeclarationSchema = new mongoose.Schema({
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
726
  type: Number,
@@ -662,7 +732,7 @@ const valuersDeclarationSchema = new mongoose.Schema({
662
732
  },
663
733
  email: {
664
734
  type: String,
665
- default: ""
735
+ default: null
666
736
  },
667
737
  valuerQualifications: [valuerQualificationsSchema],
668
738
  ricsNumber: {
@@ -671,15 +741,15 @@ const valuersDeclarationSchema = new mongoose.Schema({
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: String,
682
- default: ""
751
+ type: Number,
752
+ default: null
683
753
  }
684
754
  });
685
755
  const valuationReportSchema = new mongoose.Schema({