@pdtf/schemas 0.10.3 → 0.10.5-1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pdtf/schemas",
3
- "version": "0.10.3",
3
+ "version": "0.10.5-1",
4
4
  "description": "Property Data Trust Framework Schemas and Utilities",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -31,6 +31,12 @@
31
31
  },
32
32
  "ownership": {
33
33
  "ownershipType": "Leasehold",
34
+ "sharedOwnership": {
35
+ "isSharedOwnership": "Yes",
36
+ "sharedOwnershipPercentage": 25,
37
+ "sharedOwnershipRent": 225,
38
+ "sharedOwnershipRentFrequency": "Monthly"
39
+ },
34
40
  "startYearOfLease": 1900,
35
41
  "lengthOfLeaseInYears": 999,
36
42
  "currentGroundRent": 1750,
@@ -32,11 +32,6 @@
32
32
  "consumerProtectionRegulationsDeclaration"
33
33
  ],
34
34
  "properties": {
35
- "uprn": {
36
- "RDSRef": "Property/GUID/{name='UPRN',id=?}",
37
- "title": "Unique Property Reference Number ",
38
- "type": "integer"
39
- },
40
35
  "address": {
41
36
  "baspiRef": "A1.1",
42
37
  "lawSocietyRef": "TA6/0",
@@ -44,60 +39,91 @@
44
39
  "title": "Property Address",
45
40
  "$ref": "#/$defs/address"
46
41
  },
42
+ "uprn": {
43
+ "baspiRef": "A1.1.1",
44
+ "RDSRef": "Property/GUID/{name='UPRN',id=?}",
45
+ "title": "Unique Property Reference Number ",
46
+ "type": "integer"
47
+ },
47
48
  "propertyType": {
49
+ "title": "Type of property",
48
50
  "type": "string"
49
51
  },
50
52
  "isNewBuild": {
53
+ "title": "Is the property a New Build?",
51
54
  "type": "boolean"
52
55
  },
53
56
  "location": {
54
- "latitude": {
55
- "type": "number",
56
- "minimum": -90,
57
- "maximum": 90
58
- },
59
- "longitude": {
60
- "type": "number",
61
- "minimum": -180,
62
- "maximum": 180
57
+ "title": "Geographical location",
58
+ "type": "object",
59
+ "properties": {
60
+ "latitude": {
61
+ "title": "Latitude",
62
+ "type": "number",
63
+ "minimum": -90,
64
+ "maximum": 90
65
+ },
66
+ "longitude": {
67
+ "title": "Longitude",
68
+ "type": "number",
69
+ "minimum": -180,
70
+ "maximum": 180
71
+ }
63
72
  }
64
73
  },
65
74
  "localAuthority": {
66
- "localAuthorityName": {
67
- "type": "string"
68
- },
69
- "localAuthorityReference": {
70
- "type": "string"
75
+ "title": "Local authority",
76
+ "type": "object",
77
+ "properties": {
78
+ "localAuthorityName": {
79
+ "title": "Local authority name",
80
+ "type": "string"
81
+ },
82
+ "localAuthorityReference": {
83
+ "title": "Local authority reference",
84
+ "type": "string"
85
+ }
71
86
  }
72
87
  },
73
88
  "priceInformation": {
74
- "price": {
75
- "type": "number",
76
- "minimum": 1
77
- },
78
- "priceQualifier": {
79
- "type": "string",
80
- "enum": [
81
- "POA",
82
- "Guide price",
83
- "Fixed price",
84
- "Offers in excess of",
85
- "Offers in region of",
86
- "Sale by tender"
87
- ]
89
+ "ntsRef": "A3",
90
+ "title": "Price information",
91
+ "type": "object",
92
+ "properties": {
93
+ "price": {
94
+ "ntsRef": "A3.1",
95
+ "title": "Price",
96
+ "type": "number",
97
+ "minimum": 1
98
+ },
99
+ "priceQualifier": {
100
+ "ntsRef": "A3.2",
101
+ "title": "Price type",
102
+ "type": "string",
103
+ "enum": [
104
+ "POA",
105
+ "Guide price",
106
+ "Fixed price",
107
+ "Offers in excess of",
108
+ "Offers in region of",
109
+ "Sale by tender"
110
+ ]
111
+ }
88
112
  }
89
113
  },
90
114
  "summaryDescription": {
115
+ "title": "Summary description",
91
116
  "type": "string"
92
117
  },
93
118
  "media": {
119
+ "title": "Media",
94
120
  "type": "array",
95
121
  "items": {
96
122
  "type": "object",
97
- "title": "Media item",
98
123
  "required": ["mediaUrl"],
99
124
  "properties": {
100
125
  "mediaType": {
126
+ "title": "Type of media",
101
127
  "type": "string",
102
128
  "enum": [
103
129
  "Image",
@@ -110,12 +136,11 @@
110
136
  ]
111
137
  },
112
138
  "mediaUrl": {
139
+ "title": "Media URL",
113
140
  "type": "string",
114
141
  "format": "uri"
115
142
  },
116
- "caption": {
117
- "type": "string"
118
- }
143
+ "caption": { "title": "Caption", "type": "string" }
119
144
  }
120
145
  }
121
146
  },
@@ -136,6 +161,7 @@
136
161
  "ownership": {
137
162
  "baspiRef": "A1.3",
138
163
  "lawSocietyRef": "TA7/1",
164
+ "ntsRef": "A1.1",
139
165
  "title": "Ownership",
140
166
  "type": "object",
141
167
  "required": ["ownershipType"],
@@ -145,16 +171,9 @@
145
171
  "RDSRef": "Tenure/Tenure",
146
172
  "lawSocietyRef": "TA7/1.1",
147
173
  "title": "What type of ownership is the property?",
148
- "description": "A Managed Freehold is any freehold where there are shared amenities, the maintenance of which you pay for through an estate rentcharge, service charge, informal or formal contribution.",
174
+ "description": "Choose Freehold if your property is a Managed Freehold or Commonhold. Choose Leasehold if your property is under a Shared Ownership arrangement.",
149
175
  "type": "string",
150
- "enum": [
151
- "Freehold",
152
- "Managed Freehold",
153
- "Leasehold",
154
- "Commonhold",
155
- "Shared Ownership",
156
- "Other"
157
- ]
176
+ "enum": ["Freehold", "Leasehold", "Other"]
158
177
  }
159
178
  },
160
179
  "dependencies": {
@@ -164,23 +183,103 @@
164
183
  "properties": {
165
184
  "ownershipType": {
166
185
  "enum": ["Freehold"]
167
- }
168
- },
169
- "additionalProperties": false
170
- },
171
- {
172
- "properties": {
173
- "ownershipType": {
174
- "enum": ["Other"]
175
186
  },
176
- "otherOwnershipDetails": {
177
- "baspiRef": "A1.3.2",
178
- "title": "Details of the ownership type",
179
- "type": "string",
180
- "minLength": 1
187
+ "wholeFreeholdForSale": {
188
+ "title": "Is the entire freehold being sold?",
189
+ "description": "If not, describe the share for sale (e.g. Ground floor flat only)",
190
+ "$ref": "#/$defs/yesNoDetailIfNo"
191
+ },
192
+ "managedFreeholdOrCommonhold": {
193
+ "title": "Managed Freehold or Commonhold",
194
+ "type": "object",
195
+ "properties": {
196
+ "isManagedFreeholdOrCommonhold": {
197
+ "title": "Is the Freehold a Managed Freehold or Commonhold?",
198
+ "description": "A Managed Freehold is any freehold where there are shared amenities, the maintenance of which you pay for through an estate rentcharge, service charge, informal or formal contribution.",
199
+ "type": "string",
200
+ "enum": ["Neither", "Managed Freehold", "Commonhold"]
201
+ }
202
+ },
203
+ "required": ["isManagedFreeholdOrCommonhold"],
204
+ "dependencies": {
205
+ "isManagedFreeholdOrCommonhold": {
206
+ "oneOf": [
207
+ {
208
+ "properties": {
209
+ "isManagedFreeholdOrCommonhold": {
210
+ "enum": ["Neither"]
211
+ }
212
+ },
213
+ "additionalProperties": false
214
+ },
215
+ {
216
+ "properties": {
217
+ "isManagedFreeholdOrCommonhold": {
218
+ "enum": ["Managed Freehold", "Commonhold"]
219
+ },
220
+ "annualServiceCharge": {
221
+ "baspiRef": "A1.5.1",
222
+ "lawSocietyRef": "TA6/10.1",
223
+ "ntsRef": "A1.6",
224
+ "RDSRef": "TenureAgreements/ServiceCharges",
225
+ "title": "Amount of current annual service charge/estate rentcharge/maintenance contribution (£)",
226
+ "type": "number"
227
+ },
228
+ "largeAdditionalExpense": {
229
+ "baspiRef": "A1.5.2",
230
+ "lawSocietyRef": "TA6/10.1",
231
+ "RDSRef": "TenureAgreements/Repairs,TenureAgreements/ServicesCharges/Breakdown",
232
+ "title": "Have you received notice of any large expense in addition to the annual payment?",
233
+ "$ref": "#/$defs/yesNoDetailIfYes",
234
+ "description": "If yes, please provide details and confirm whether there is a reserve fund or sinking fund which will cover the cost of the works."
235
+ },
236
+ "additionalFeesOnSale": {
237
+ "baspiRef": "A1.5.3",
238
+ "lawSocietyRef": "TA6/10.1",
239
+ "RDSRef": "TenureAgreements/LegalCosts/Actual, TenureAgreements/LegalCosts/Estimated",
240
+ "title": "Additional fees payable on sale (£)",
241
+ "type": "number"
242
+ },
243
+ "freeholderContactDetails": {
244
+ "baspiRef": "A1.5.4",
245
+ "lawSocietyRef": "TA7/4.1a",
246
+ "RDSRef": "TenureAgreements/Assignor",
247
+ "title": "The contact details of the freeholder or rentcharge owner",
248
+ "$ref": "#/$defs/contactDetails"
249
+ },
250
+ "managingAgentContactDetails": {
251
+ "baspiRef": "A1.5.5",
252
+ "lawSocietyRef": "TA7/4.1b",
253
+ "RDSRef": "Participants/Role",
254
+ "title": "The contact details of the managing agent",
255
+ "$ref": "#/$defs/contactDetails"
256
+ },
257
+ "managementCompanyDirectorRequirement": {
258
+ "baspiRef": "A1.5.6",
259
+ "RDSRef": "Property/Flags",
260
+ "title": "Is the owner of the property required to become a director in a management company for the maintenance of shared amenities?",
261
+ "$ref": "#/$defs/yesNo"
262
+ }
263
+ },
264
+ "required": [
265
+ "annualServiceCharge",
266
+ "largeAdditionalExpense",
267
+ "additionalFeesOnSale",
268
+ "freeholderContactDetails",
269
+ "managingAgentContactDetails",
270
+ "managementCompanyDirectorRequirement"
271
+ ],
272
+ "additionalProperties": false
273
+ }
274
+ ]
275
+ }
276
+ }
181
277
  }
182
278
  },
183
- "required": ["otherOwnershipDetails"],
279
+ "required": [
280
+ "wholeFreeholdForSale",
281
+ "managedFreeholdOrCommonhold"
282
+ ],
184
283
  "additionalProperties": false
185
284
  },
186
285
  {
@@ -188,26 +287,88 @@
188
287
  "ownershipType": {
189
288
  "enum": ["Leasehold"]
190
289
  },
290
+ "sharedOwnership": {
291
+ "title": "Shared ownership",
292
+ "type": "object",
293
+ "properties": {
294
+ "isSharedOwnership": {
295
+ "title": "Is the property under Shared Owenership or a Part-buy Part-rent arrangement?",
296
+ "type": "string",
297
+ "enum": ["Yes", "No"]
298
+ }
299
+ },
300
+ "required": ["isSharedOwnership"],
301
+ "dependencies": {
302
+ "isSharedOwnership": {
303
+ "oneOf": [
304
+ {
305
+ "properties": {
306
+ "isSharedOwnership": {
307
+ "enum": ["No"]
308
+ }
309
+ },
310
+ "additionalProperties": false
311
+ },
312
+ {
313
+ "properties": {
314
+ "isSharedOwnership": {
315
+ "enum": ["Yes"]
316
+ },
317
+ "sharedOwnershipPercentage": {
318
+ "ntsRef": "A1.7",
319
+ "title": "Shared ownership percentage",
320
+ "type": "integer",
321
+ "minimum": 5,
322
+ "exclusiveMaximum": 100
323
+ },
324
+ "sharedOwnershipRent": {
325
+ "ntsRef": "A1.7",
326
+ "title": "Shared ownership rent (£)",
327
+ "type": "number",
328
+ "minimum": 0
329
+ },
330
+ "sharedOwnershipRentFrequency": {
331
+ "ntsRef": "A1.7",
332
+ "title": "Shared ownership rent frequency",
333
+ "type": "string",
334
+ "enum": ["Yearly", "Monthly", "Weekly"]
335
+ }
336
+ },
337
+ "required": [
338
+ "sharedOwnershipPercentage",
339
+ "sharedOwnershipRent",
340
+ "sharedOwnershipRentFrequency"
341
+ ],
342
+ "additionalProperties": false
343
+ }
344
+ ]
345
+ }
346
+ }
347
+ },
191
348
  "startYearOfLease": {
192
349
  "baspiRef": "A1.4.1b",
350
+ "ntsRef": "A1.2",
193
351
  "title": "Year that the lease commenced",
194
352
  "type": "integer",
195
353
  "minimum": 1000
196
354
  },
197
355
  "lengthOfLeaseInYears": {
198
356
  "baspiRef": "A1.4.1a",
357
+ "ntsRef": "A1.3",
199
358
  "title": "Length of lease (years)",
200
359
  "type": "integer"
201
360
  },
202
361
  "currentGroundRent": {
203
362
  "baspiRef": "A1.4.2",
363
+ "ntsRef": "A1.4",
204
364
  "RDSRef": "TenureAgreements/RentPayable/Value",
205
- "lawSocietyRef": "TA7/1.2",
365
+ "lawSocietyRef": "TA7/1.2a",
206
366
  "title": "Current annual ground rent (£)",
207
367
  "type": "number"
208
368
  },
209
369
  "rentIncrease": {
210
370
  "baspiRef": "A1.4.3",
371
+ "ntsRef": "A1.5",
211
372
  "RDSRef": "TenureAgreement/isRentChangeable, TenureAgreements/RentChanges",
212
373
  "title": "Does the ground rent increase?",
213
374
  "$ref": "#/$defs/yesNoDetailIfYes",
@@ -215,6 +376,7 @@
215
376
  },
216
377
  "annualServiceCharge": {
217
378
  "baspiRef": "A1.5.1",
379
+ "ntsRef": "A1.6",
218
380
  "RDSRef": "TenureAgreements/ServiceCharges",
219
381
  "title": "Amount of current annual service charge/estate rentcharge/maintenance contribution (£)",
220
382
  "type": "number"
@@ -234,12 +396,14 @@
234
396
  },
235
397
  "freeholderContactDetails": {
236
398
  "baspiRef": "A1.5.4",
399
+ "lawSocietyRef": "TA7/4.1a",
237
400
  "RDSRef": "TenureAgreements/Assignor",
238
401
  "title": "The name, address and email address of the freeholder or rentcharge owner",
239
402
  "$ref": "#/$defs/contactDetails"
240
403
  },
241
404
  "managingAgentContactDetails": {
242
405
  "baspiRef": "A1.5.5",
406
+ "lawSocietyRef": "TA7/4.1b",
243
407
  "RDSRef": "Participants/Role",
244
408
  "title": "The name, address and email address of the managing agent",
245
409
  "$ref": "#/$defs/contactDetails"
@@ -252,6 +416,7 @@
252
416
  }
253
417
  },
254
418
  "required": [
419
+ "sharedOwnership",
255
420
  "startYearOfLease",
256
421
  "lengthOfLeaseInYears",
257
422
  "currentGroundRent",
@@ -262,162 +427,23 @@
262
427
  "freeholderContactDetails",
263
428
  "managingAgentContactDetails",
264
429
  "managementCompanyDirectorRequirement"
265
- ]
266
- },
267
- {
268
- "properties": {
269
- "ownershipType": {
270
- "enum": ["Managed Freehold", "Commonhold"]
271
- },
272
- "annualServiceCharge": {
273
- "baspiRef": "A1.5.1",
274
- "lawSocietyRef": "TA6/10.1",
275
- "RDSRef": "TenureAgreements/ServiceCharges",
276
- "title": "Amount of current annual service charge/estate rentcharge/maintenance contribution (£)",
277
- "type": "number"
278
- },
279
- "largeAdditionalExpense": {
280
- "baspiRef": "A1.5.2",
281
- "lawSocietyRef": "TA6/10.1",
282
- "RDSRef": "TenureAgreements/Repairs,TenureAgreements/ServicesCharges/Breakdown",
283
- "title": "Have you received notice of any large expense in addition to the annual payment?",
284
- "$ref": "#/$defs/yesNoDetailIfYes",
285
- "description": "If yes, please provide details and confirm whether there is a reserve fund or sinking fund which will cover the cost of the works."
286
- },
287
- "additionalFeesOnSale": {
288
- "baspiRef": "A1.5.3",
289
- "lawSocietyRef": "TA6/10.1",
290
- "RDSRef": "TenureAgreements/LegalCosts/Actual, TenureAgreements/LegalCosts/Estimated",
291
- "title": "Additional fees payable on sale (£)",
292
- "type": "number"
293
- },
294
- "freeholderContactDetails": {
295
- "baspiRef": "A1.5.4",
296
- "RDSRef": "TenureAgreements/Assignor",
297
- "title": "The contact details of the freeholder or rentcharge owner",
298
- "$ref": "#/$defs/contactDetails"
299
- },
300
- "managingAgentContactDetails": {
301
- "baspiRef": "A1.5.5",
302
- "RDSRef": "Participants/Role",
303
- "title": "The contact details of the managing agent",
304
- "$ref": "#/$defs/contactDetails"
305
- },
306
- "managementCompanyDirectorRequirement": {
307
- "baspiRef": "A1.5.6",
308
- "RDSRef": "Property/Flags",
309
- "title": "Is the owner of the property required to become a director in a management company for the maintenance of shared amenities?",
310
- "$ref": "#/$defs/yesNo"
311
- }
312
- },
313
- "required": [
314
- "annualServiceCharge",
315
- "largeAdditionalExpense",
316
- "additionalFeesOnSale",
317
- "freeholderContactDetails",
318
- "managingAgentContactDetails",
319
- "managementCompanyDirectorRequirement"
320
- ]
430
+ ],
431
+ "additionalProperties": false
321
432
  },
322
433
  {
323
434
  "properties": {
324
435
  "ownershipType": {
325
- "enum": ["Shared Ownership"]
326
- },
327
- "sharedOwnershipPercentage": {
328
- "title": "Shared ownership percentage",
329
- "type": "integer",
330
- "minimum": 5,
331
- "exclusiveMaximum": 100
332
- },
333
- "sharedOwnershipRent": {
334
- "title": "Shared ownership rent (£)",
335
- "type": "number",
336
- "minimum": 0
436
+ "enum": ["Other"]
337
437
  },
338
- "sharedOwnershipRentFrequency": {
339
- "title": "Shared ownership rent frequency",
438
+ "otherOwnershipDetails": {
439
+ "baspiRef": "A1.3.2",
440
+ "title": "Details of the ownership type",
340
441
  "type": "string",
341
- "enum": ["Yearly", "Monthly", "Weekly"]
342
- },
343
- "startYearOfLease": {
344
- "baspiRef": "A1.4.1b",
345
- "title": "Year that the lease commenced",
346
- "type": "integer",
347
- "minimum": 1000
348
- },
349
- "lengthOfLeaseInYears": {
350
- "baspiRef": "A1.4.1a",
351
- "title": "Length of lease (years)",
352
- "type": "integer"
353
- },
354
- "currentGroundRent": {
355
- "baspiRef": "A1.4.2",
356
- "RDSRef": "TenureAgreements/RentPayable/Value",
357
- "lawSocietyRef": "TA7/1.2",
358
- "title": "Current annual ground rent (£)",
359
- "type": "number"
360
- },
361
- "rentIncrease": {
362
- "baspiRef": "A1.4.3",
363
- "RDSRef": "TenureAgreement/isRentChangeable, TenureAgreements/RentChanges",
364
- "title": "Does the ground rent increase?",
365
- "$ref": "#/$defs/yesNoDetailIfYes",
366
- "description": "Please provide full details of the ground rent increase e.g. how often and by how much and when the next increase is due."
367
- },
368
- "annualServiceCharge": {
369
- "baspiRef": "A1.5.1",
370
- "RDSRef": "TenureAgreements/ServiceCharges",
371
- "title": "Amount of current annual service charge/estate rentcharge/maintenance contribution (£)",
372
- "type": "number"
373
- },
374
- "largeAdditionalExpense": {
375
- "baspiRef": "A1.5.2",
376
- "RDSRef": "TenureAgreements/Repairs,TenureAgreements/ServicesCharges/Breakdown",
377
- "title": "Have you received notice of any large expense in addition to the annual payment?",
378
- "$ref": "#/$defs/yesNoDetailIfYes",
379
- "description": "If yes, please provide details and confirm whether there is a reserve fund or sinking fund which will cover the cost of the works."
380
- },
381
- "additionalFeesOnSale": {
382
- "baspiRef": "A1.5.3",
383
- "RDSRef": "TenureAgreements/LegalCosts/Actual, TenureAgreements/LegalCosts/Estimated",
384
- "title": "Additional fees payable on sale or letting (£)",
385
- "type": "number"
386
- },
387
- "freeholderContactDetails": {
388
- "baspiRef": "A1.5.4",
389
- "RDSRef": "TenureAgreements/Assignor",
390
- "title": "The contact details of the freeholder or rentcharge owner",
391
- "$ref": "#/$defs/contactDetails"
392
- },
393
- "managingAgentContactDetails": {
394
- "baspiRef": "A1.5.5",
395
- "RDSRef": "Participants/Role",
396
- "title": "The contact details of the managing agent",
397
- "$ref": "#/$defs/contactDetails"
398
- },
399
- "managementCompanyDirectorRequirement": {
400
- "baspiRef": "A1.5.6",
401
- "RDSRef": "Property/Flags",
402
- "title": "Is the owner of the Property required to become a director in a management company for the maintenance of shared amenities?",
403
- "$ref": "#/$defs/yesNo"
442
+ "minLength": 1
404
443
  }
405
444
  },
406
- "required": [
407
- "sharedOwnershipPercentage",
408
- "sharedOwnershipRent",
409
- "sharedOwnershipRentFrequency",
410
- "startYearOfLease",
411
- "lengthOfLeaseInYears",
412
- "currentGroundRent",
413
- "rentIncrease",
414
- "annualServiceCharge",
415
- "largeAdditionalExpense",
416
- "additionalFeesOnSale",
417
- "freeholderContactDetails",
418
- "managingAgentContactDetails",
419
- "managementCompanyDirectorRequirement"
420
- ]
445
+ "required": ["otherOwnershipDetails"],
446
+ "additionalProperties": false
421
447
  }
422
448
  ]
423
449
  }
@@ -642,12 +668,14 @@
642
668
  },
643
669
  "councilTax": {
644
670
  "baspiRef": "A1.9",
671
+ "ntsRef": "A2",
645
672
  "title": "Council Tax",
646
673
  "type": "object",
647
674
  "required": ["councilTaxBand", "councilTaxAffectingAlterations"],
648
675
  "properties": {
649
676
  "councilTaxBand": {
650
677
  "baspiRef": "A1.9.1",
678
+ "ntsRef": "A2.1",
651
679
  "RDSRef": "TenureAgreements/Taxes/{banding=?}",
652
680
  "title": "Which Council Tax band does this property fall within?",
653
681
  "type": "string",