@planning-inspectorate/data-model 2.10.2 → 2.11.0

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 (29) hide show
  1. package/docs/appeal-document.md +2 -0
  2. package/docs/appeal-has.md +1 -0
  3. package/docs/appeal-s78.md +118 -0
  4. package/package.json +1 -1
  5. package/pins_data_model/models/model_appeal_document.py +3 -1
  6. package/pins_data_model/models/model_appeal_has.py +2 -1
  7. package/pins_data_model/models/model_appeal_s78.py +38 -1
  8. package/schemas/appeal-document.schema.json +2 -0
  9. package/schemas/appeal-has.schema.json +1 -0
  10. package/schemas/appeal-s78.schema.json +20 -0
  11. package/schemas/commands/appeals-components/appeal-common-planning.schema.json +54 -0
  12. package/schemas/commands/appeals-components/appeal-common-submission.schema.json +7 -81
  13. package/schemas/commands/appeals-components/appeal-land-ownership.schema.json +48 -0
  14. package/schemas/commands/appeals-components/appeal-ldc.submission.schema.json +19 -0
  15. package/schemas/commands/appeals-components/appeal-site-area.schema.json +21 -0
  16. package/schemas/commands/appeals-components/lpa-questionnaire-common.schema.json +6 -1
  17. package/schemas/commands/appeals-components/lpa-questionnaire-has.schema.json +0 -5
  18. package/schemas/commands/appeals-components/lpa-questionnaire-ldc.schema.json +31 -0
  19. package/schemas/commands/appellant-submission.schema.json +20 -4
  20. package/schemas/commands/lpa-questionnaire.schema.json +13 -1
  21. package/src/enums.cjs +17 -0
  22. package/src/enums.d.ts +15 -0
  23. package/src/enums.js +15 -0
  24. package/src/index.cjs +17 -0
  25. package/src/schemas.d.ts +139 -89
  26. package/tests/appeals/appeal-s78.test.js +16 -1
  27. package/tests/appeals/commands/ldc-questionnaire.test.js +83 -0
  28. package/tests/appeals/commands/ldc-submission.test.js +172 -0
  29. package/schemas/commands/appeals-components/appeal-has-submission.schema.json +0 -81
@@ -620,6 +620,8 @@ The type of document, used for exchange, migrations and consumption from the app
620
620
  | `"groundGSupporting"` | |
621
621
  | `"groundAFeeReceipt"` | |
622
622
  | `"delegatedReport"` | |
623
+ | `"relatedApplications"` | |
624
+ | `"otherRelevantMatters"` | |
623
625
  | `null` | |
624
626
 
625
627
  ## sourceSystem
@@ -2462,6 +2462,7 @@ Indicates if the appellant has applied for costs
2462
2462
  | `"listed-building"` | |
2463
2463
  | `"minor-commercial-development"` | |
2464
2464
  | `"advertisement"` | |
2465
+ | `"lawful-development-certificate"` | |
2465
2466
  | `null` | |
2466
2467
 
2467
2468
  ## siteGridReferenceEasting
@@ -191,6 +191,11 @@ any of
191
191
  | [isSiteSubjectToArticle4Direction](#issitesubjecttoarticle4direction) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-issitesubjecttoarticle4direction.md "appeal-s78.schema.json#/properties/isSiteSubjectToArticle4Direction") |
192
192
  | [article4AffectedDevelopmentRights](#article4affecteddevelopmentrights) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-article4affecteddevelopmentrights.md "appeal-s78.schema.json#/properties/article4AffectedDevelopmentRights") |
193
193
  | [pcnRestrictedDevelopmentRights](#pcnrestricteddevelopmentrights) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-pcnrestricteddevelopmentrights.md "appeal-s78.schema.json#/properties/pcnRestrictedDevelopmentRights") |
194
+ | [applicationMadeUnderActSection](#applicationmadeunderactsection) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-applicationmadeunderactsection.md "appeal-s78.schema.json#/properties/applicationMadeUnderActSection") |
195
+ | [siteUseAtTimeOfApplication](#siteuseattimeofapplication) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-siteuseattimeofapplication.md "appeal-s78.schema.json#/properties/siteUseAtTimeOfApplication") |
196
+ | [appealUnderActSection](#appealunderactsection) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-appealunderactsection.md "appeal-s78.schema.json#/properties/appealUnderActSection") |
197
+ | [lpaConsiderAppealInvalid](#lpaconsiderappealinvalid) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-lpaconsiderappealinvalid.md "appeal-s78.schema.json#/properties/lpaConsiderAppealInvalid") |
198
+ | [lpaAppealInvalidReasons](#lpaappealinvalidreasons) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-lpaappealinvalidreasons.md "appeal-s78.schema.json#/properties/lpaAppealInvalidReasons") |
194
199
  | Additional Properties | Any | Optional | can be null | |
195
200
 
196
201
  ## caseId
@@ -3571,6 +3576,7 @@ The net gain in residences of the proposed development
3571
3576
  | `"listed-building"` | |
3572
3577
  | `"minor-commercial-development"` | |
3573
3578
  | `"advertisement"` | |
3579
+ | `"lawful-development-certificate"` | |
3574
3580
  | `null` | |
3575
3581
 
3576
3582
  ## developmentType
@@ -4512,6 +4518,118 @@ Have any development rights been restricted by means of a planning condition?
4512
4518
 
4513
4519
  `boolean`
4514
4520
 
4521
+ ## applicationMadeUnderActSection
4522
+
4523
+
4524
+
4525
+ `applicationMadeUnderActSection`
4526
+
4527
+ * is optional
4528
+
4529
+ * Type: `string`
4530
+
4531
+ * can be null
4532
+
4533
+ * defined in: [Appeal S78 Case](appeal-s78-properties-applicationmadeunderactsection.md "appeal-s78.schema.json#/properties/applicationMadeUnderActSection")
4534
+
4535
+ ### applicationMadeUnderActSection Type
4536
+
4537
+ `string`
4538
+
4539
+ ### applicationMadeUnderActSection Constraints
4540
+
4541
+ **enum**: the value of this property must be equal to one of the following values:
4542
+
4543
+ | Value | Explanation |
4544
+ | :---------------------------------------- | :---------- |
4545
+ | `"existing-development"` | |
4546
+ | `"proposed-use-of-a-development"` | |
4547
+ | `"proposed-changes-to-a-listed-building"` | |
4548
+ | `null` | |
4549
+
4550
+ ## siteUseAtTimeOfApplication
4551
+
4552
+ Site use at time of application
4553
+
4554
+ `siteUseAtTimeOfApplication`
4555
+
4556
+ * is optional
4557
+
4558
+ * Type: `string`
4559
+
4560
+ * can be null
4561
+
4562
+ * defined in: [Appeal S78 Case](appeal-s78-properties-siteuseattimeofapplication.md "appeal-s78.schema.json#/properties/siteUseAtTimeOfApplication")
4563
+
4564
+ ### siteUseAtTimeOfApplication Type
4565
+
4566
+ `string`
4567
+
4568
+ ## appealUnderActSection
4569
+
4570
+
4571
+
4572
+ `appealUnderActSection`
4573
+
4574
+ * is optional
4575
+
4576
+ * Type: `string`
4577
+
4578
+ * can be null
4579
+
4580
+ * defined in: [Appeal S78 Case](appeal-s78-properties-appealunderactsection.md "appeal-s78.schema.json#/properties/appealUnderActSection")
4581
+
4582
+ ### appealUnderActSection Type
4583
+
4584
+ `string`
4585
+
4586
+ ### appealUnderActSection Constraints
4587
+
4588
+ **enum**: the value of this property must be equal to one of the following values:
4589
+
4590
+ | Value | Explanation |
4591
+ | :---------------------------------------- | :---------- |
4592
+ | `"existing-development"` | |
4593
+ | `"proposed-use-of-a-development"` | |
4594
+ | `"proposed-changes-to-a-listed-building"` | |
4595
+ | `null` | |
4596
+
4597
+ ## lpaConsiderAppealInvalid
4598
+
4599
+
4600
+
4601
+ `lpaConsiderAppealInvalid`
4602
+
4603
+ * is optional
4604
+
4605
+ * Type: `boolean`
4606
+
4607
+ * can be null
4608
+
4609
+ * defined in: [Appeal S78 Case](appeal-s78-properties-lpaconsiderappealinvalid.md "appeal-s78.schema.json#/properties/lpaConsiderAppealInvalid")
4610
+
4611
+ ### lpaConsiderAppealInvalid Type
4612
+
4613
+ `boolean`
4614
+
4615
+ ## lpaAppealInvalidReasons
4616
+
4617
+ Reason(s) why LPA consider the appeal invalid
4618
+
4619
+ `lpaAppealInvalidReasons`
4620
+
4621
+ * is optional
4622
+
4623
+ * Type: `string`
4624
+
4625
+ * can be null
4626
+
4627
+ * defined in: [Appeal S78 Case](appeal-s78-properties-lpaappealinvalidreasons.md "appeal-s78.schema.json#/properties/lpaAppealInvalidReasons")
4628
+
4629
+ ### lpaAppealInvalidReasons Type
4630
+
4631
+ `string`
4632
+
4515
4633
  ## Additional Properties
4516
4634
 
4517
4635
  Additional properties are allowed and do not have to follow a specific schema
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.10.2",
3
+ "version": "2.11.0",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-document.schema.json
3
- # timestamp: 2026-01-20T11:57:10+00:00
3
+ # timestamp: 2026-01-21T12:30:03+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -142,6 +142,8 @@ class DocumentType(Enum):
142
142
  groundGSupporting = "groundGSupporting"
143
143
  groundAFeeReceipt = "groundAFeeReceipt"
144
144
  delegatedReport = "delegatedReport"
145
+ relatedApplications = "relatedApplications"
146
+ otherRelevantMatters = "otherRelevantMatters"
145
147
  NoneType_None = None
146
148
 
147
149
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-has.schema.json
3
- # timestamp: 2026-01-20T11:57:10+00:00
3
+ # timestamp: 2026-01-21T12:30:03+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -229,6 +229,7 @@ class TypeOfPlanningApplication(Enum):
229
229
  listed_building = "listed-building"
230
230
  minor_commercial_development = "minor-commercial-development"
231
231
  advertisement = "advertisement"
232
+ lawful_development_certificate = "lawful-development-certificate"
232
233
  NoneType_None = None
233
234
 
234
235
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-s78.schema.json
3
- # timestamp: 2026-01-20T11:57:10+00:00
3
+ # timestamp: 2026-01-21T12:30:03+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -281,6 +281,7 @@ class TypeOfPlanningApplication(Enum):
281
281
  listed_building = "listed-building"
282
282
  minor_commercial_development = "minor-commercial-development"
283
283
  advertisement = "advertisement"
284
+ lawful_development_certificate = "lawful-development-certificate"
284
285
  NoneType_None = None
285
286
 
286
287
 
@@ -370,6 +371,20 @@ class ApplicationPartOrWholeDevelopment(Enum):
370
371
  NoneType_None = None
371
372
 
372
373
 
374
+ class ApplicationMadeUnderActSection(Enum):
375
+ existing_development = "existing-development"
376
+ proposed_use_of_a_development = "proposed-use-of-a-development"
377
+ proposed_changes_to_a_listed_building = "proposed-changes-to-a-listed-building"
378
+ NoneType_None = None
379
+
380
+
381
+ class AppealUnderActSection(Enum):
382
+ existing_development = "existing-development"
383
+ proposed_use_of_a_development = "proposed-use-of-a-development"
384
+ proposed_changes_to_a_listed_building = "proposed-changes-to-a-listed-building"
385
+ NoneType_None = None
386
+
387
+
373
388
  class AppealS78Case1(BaseModel):
374
389
  """
375
390
  Group B - Schema defining the metadata for an appeal
@@ -1065,6 +1080,17 @@ class AppealS78Case1(BaseModel):
1065
1080
  """
1066
1081
  Have any development rights been restricted by means of a planning condition?
1067
1082
  """
1083
+ applicationMadeUnderActSection: ApplicationMadeUnderActSection | None = None
1084
+ siteUseAtTimeOfApplication: str | None = None
1085
+ """
1086
+ Site use at time of application
1087
+ """
1088
+ appealUnderActSection: AppealUnderActSection | None = None
1089
+ lpaConsiderAppealInvalid: bool | None = None
1090
+ lpaAppealInvalidReasons: str | None = None
1091
+ """
1092
+ Reason(s) why LPA consider the appeal invalid
1093
+ """
1068
1094
 
1069
1095
 
1070
1096
  class AdvertDetail1(BaseModel):
@@ -1791,6 +1817,17 @@ class AppealS78Case2(BaseModel):
1791
1817
  """
1792
1818
  Have any development rights been restricted by means of a planning condition?
1793
1819
  """
1820
+ applicationMadeUnderActSection: ApplicationMadeUnderActSection | None = None
1821
+ siteUseAtTimeOfApplication: str | None = None
1822
+ """
1823
+ Site use at time of application
1824
+ """
1825
+ appealUnderActSection: AppealUnderActSection | None = None
1826
+ lpaConsiderAppealInvalid: bool | None = None
1827
+ lpaAppealInvalidReasons: str | None = None
1828
+ """
1829
+ Reason(s) why LPA consider the appeal invalid
1830
+ """
1794
1831
 
1795
1832
 
1796
1833
  class AppealS78Case(RootModel[AppealS78Case1 | AppealS78Case2]):
@@ -220,6 +220,8 @@
220
220
  "groundGSupporting",
221
221
  "groundAFeeReceipt",
222
222
  "delegatedReport",
223
+ "relatedApplications",
224
+ "otherRelevantMatters",
223
225
  null
224
226
  ],
225
227
  "description": "The type of document, used for exchange, migrations and consumption from the appeal back-office system"
@@ -696,6 +696,7 @@
696
696
  "listed-building",
697
697
  "minor-commercial-development",
698
698
  "advertisement",
699
+ "lawful-development-certificate",
699
700
  null
700
701
  ]
701
702
  },
@@ -1014,6 +1014,7 @@
1014
1014
  "listed-building",
1015
1015
  "minor-commercial-development",
1016
1016
  "advertisement",
1017
+ "lawful-development-certificate",
1017
1018
  null
1018
1019
  ]
1019
1020
  },
@@ -1265,6 +1266,25 @@
1265
1266
  "pcnRestrictedDevelopmentRights": {
1266
1267
  "type": ["boolean", "null"],
1267
1268
  "description": "Have any development rights been restricted by means of a planning condition?"
1269
+ },
1270
+ "applicationMadeUnderActSection": {
1271
+ "type": ["string", "null"],
1272
+ "enum": ["existing-development", "proposed-use-of-a-development", "proposed-changes-to-a-listed-building", null]
1273
+ },
1274
+ "siteUseAtTimeOfApplication": {
1275
+ "type": ["string", "null"],
1276
+ "description": "Site use at time of application"
1277
+ },
1278
+ "appealUnderActSection": {
1279
+ "type": ["string", "null"],
1280
+ "enum": ["existing-development", "proposed-use-of-a-development", "proposed-changes-to-a-listed-building", null]
1281
+ },
1282
+ "lpaConsiderAppealInvalid": {
1283
+ "type": ["boolean", "null"]
1284
+ },
1285
+ "lpaAppealInvalidReasons": {
1286
+ "type": ["string", "null"],
1287
+ "description": "Reason(s) why LPA consider the appeal invalid"
1268
1288
  }
1269
1289
  }
1270
1290
  }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/appeal-common-planning.schema.json",
4
+ "title": "Appellant common planning properties",
5
+ "description": "Schema defining any properties common across all planning appeal types for appeal submissions",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "applicationReference",
10
+ "applicationDate",
11
+ "applicationDecision",
12
+ "applicationDecisionDate",
13
+ "isGreenBelt",
14
+ "originalDevelopmentDescription",
15
+ "changedDevelopmentDescription"
16
+ ],
17
+ "properties": {
18
+ "applicationReference": {
19
+ "type": "string",
20
+ "examples": ["43010/APP/1/290572"],
21
+ "description": "The unique identifier of the LPA application"
22
+ },
23
+ "applicationDate": {
24
+ "type": ["string", "null"],
25
+ "format": "date-time",
26
+ "examples": ["2023-07-27T20:30:00.000Z"],
27
+ "description": "The date of the original LPA application"
28
+ },
29
+ "applicationDecision": {
30
+ "type": ["string", "null"],
31
+ "enum": ["granted", "refused", "not_received", null],
32
+ "description": "The outcome of the original LPA decision"
33
+ },
34
+ "applicationDecisionDate": {
35
+ "type": ["string", "null"],
36
+ "format": "date-time",
37
+ "examples": ["2023-07-27T20:30:00.000Z"],
38
+ "description": "The date of the original LPA decision"
39
+ },
40
+ "isGreenBelt": {
41
+ "type": ["boolean", "null"],
42
+ "description": "Indicates if the site is in a green belt"
43
+ },
44
+ "originalDevelopmentDescription": {
45
+ "type": ["string", "null"],
46
+ "examples": ["Replacement of an existing gate to access the property"],
47
+ "description": "The original description of the development, as provided by the appellant"
48
+ },
49
+ "changedDevelopmentDescription": {
50
+ "type": ["boolean", "null"],
51
+ "description": "Indicates that the LPA has changed the development description"
52
+ }
53
+ }
54
+ }
@@ -11,15 +11,11 @@
11
11
  "lpaCode",
12
12
  "caseSubmittedDate",
13
13
  "enforcementNotice",
14
- "applicationReference",
15
- "applicationDate",
16
- "applicationDecision",
17
- "applicationDecisionDate",
18
14
  "caseSubmissionDueDate",
19
15
  "siteAccessDetails",
20
16
  "siteSafetyDetails",
21
- "neighbouringSiteAddresses",
22
- "nearbyCaseReferences"
17
+ "nearbyCaseReferences",
18
+ "appellantCostsAppliedFor"
23
19
  ],
24
20
  "anyOf": [
25
21
  {
@@ -66,28 +62,6 @@
66
62
  "type": ["boolean", "null"],
67
63
  "description": "Indicates if an enforcement notice is the reason for the appeal"
68
64
  },
69
- "applicationReference": {
70
- "type": "string",
71
- "examples": ["43010/APP/1/290572"],
72
- "description": "The unique identifier of the LPA application"
73
- },
74
- "applicationDate": {
75
- "type": "string",
76
- "format": "date-time",
77
- "examples": ["2023-07-27T20:30:00.000Z"],
78
- "description": "The date of the original LPA application"
79
- },
80
- "applicationDecision": {
81
- "type": "string",
82
- "enum": ["granted", "refused", "not_received"],
83
- "description": "The outcome of the original LPA decision"
84
- },
85
- "applicationDecisionDate": {
86
- "type": ["string", "null"],
87
- "format": "date-time",
88
- "examples": ["2023-07-27T20:30:00.000Z"],
89
- "description": "The date of the original LPA decision"
90
- },
91
65
  "caseSubmissionDueDate": {
92
66
  "type": ["string", "null"],
93
67
  "format": "date-time",
@@ -145,59 +119,6 @@
145
119
  },
146
120
  "description": "Provided information on site health and safety"
147
121
  },
148
- "neighbouringSiteAddresses": {
149
- "type": ["array", "null"],
150
- "items": {
151
- "type": "object",
152
- "additionalProperties": true,
153
- "properties": {
154
- "neighbouringSiteAddressLine1": {
155
- "type": "string",
156
- "examples": ["96 The Avenue"],
157
- "description": "First line of address of the site"
158
- },
159
- "neighbouringSiteAddressLine2": {
160
- "type": ["string", "null"],
161
- "description": "Second line of address of the site"
162
- },
163
- "neighbouringSiteAddressTown": {
164
- "type": "string",
165
- "examples": ["Maidstone"],
166
- "description": "Town / City of the site address"
167
- },
168
- "neighbouringSiteAddressCounty": {
169
- "type": ["string", "null"],
170
- "examples": ["Kent"],
171
- "description": "County of the site address"
172
- },
173
- "neighbouringSiteAddressPostcode": {
174
- "type": "string",
175
- "examples": ["MD21 5XY"],
176
- "description": "Postal code of the site address"
177
- },
178
- "neighbouringSiteAccessDetails": {
179
- "type": ["string", "null"],
180
- "examples": ["Ongoing road works at this address"],
181
- "description": "Provided information on site accessibility on this address"
182
- },
183
- "neighbouringSiteSafetyDetails": {
184
- "type": ["string", "null"],
185
- "examples": ["Ongoing road works at this address"],
186
- "description": "Provided information on site health and safety on this address"
187
- }
188
- },
189
- "required": [
190
- "neighbouringSiteAddressLine1",
191
- "neighbouringSiteAddressLine2",
192
- "neighbouringSiteAddressTown",
193
- "neighbouringSiteAddressCounty",
194
- "neighbouringSiteAddressPostcode",
195
- "neighbouringSiteAccessDetails",
196
- "neighbouringSiteSafetyDetails"
197
- ]
198
- },
199
- "description": "A list of neighbouring site addresses"
200
- },
201
122
  "nearbyCaseReferences": {
202
123
  "type": ["array", "null"],
203
124
  "items": {
@@ -218,8 +139,13 @@
218
139
  "listed-building",
219
140
  "minor-commercial-development",
220
141
  "advertisement",
142
+ "lawful-development-certificate",
221
143
  null
222
144
  ]
145
+ },
146
+ "appellantCostsAppliedFor": {
147
+ "type": ["boolean", "null"],
148
+ "description": "Indicates if the appellant has applied for costs"
223
149
  }
224
150
  }
225
151
  }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/appeal-land-ownership.schema.json",
4
+ "title": "Appeal land ownership properties",
5
+ "description": "Schema defining properties relating to land ownership",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "ownsAllLand",
10
+ "ownsSomeLand",
11
+ "knowsOtherOwners",
12
+ "knowsAllOwners",
13
+ "advertisedAppeal",
14
+ "ownersInformed"
15
+ ],
16
+ "allOf": [
17
+ {
18
+ "properties": {
19
+ "ownsAllLand": {
20
+ "type": ["boolean", "null"],
21
+ "description": "Indicates if the appellant has complete ownership of the site"
22
+ },
23
+ "ownsSomeLand": {
24
+ "type": ["boolean", "null"],
25
+ "description": "Indicates if the appellant has partial ownership of the site"
26
+ },
27
+ "knowsOtherOwners": {
28
+ "type": ["string", "null"],
29
+ "enum": ["Yes", "No", "Some", null],
30
+ "description": "Indicates if the appellant knows other owners of the site"
31
+ },
32
+ "knowsAllOwners": {
33
+ "type": ["string", "null"],
34
+ "enum": ["Yes", "No", "Some", null],
35
+ "description": "Indicates if the appellant knows all owners of the site"
36
+ },
37
+ "advertisedAppeal": {
38
+ "type": ["boolean", "null"],
39
+ "description": "Indicates if the appellant has advertised the appeal to the LPA decision"
40
+ },
41
+ "ownersInformed": {
42
+ "type": ["boolean", "null"],
43
+ "description": "Indicates if the appellant has informed other owners of the site"
44
+ }
45
+ }
46
+ }
47
+ ]
48
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/appeal-ldc.submission.schema.json",
4
+ "title": "LDC specific properties",
5
+ "description": "Schema defining any properties for ldc appeals",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["siteUseAtTimeOfApplication", "applicationMadeUnderActSection"],
9
+ "properties": {
10
+ "siteUseAtTimeOfApplication": {
11
+ "type": ["string", "null"],
12
+ "description": "Site use at time of application"
13
+ },
14
+ "applicationMadeUnderActSection": {
15
+ "type": ["string", "null"],
16
+ "enum": ["existing-development", "proposed-use-of-a-development", "proposed-changes-to-a-listed-building", null]
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/appeal-site-area.schema.json",
4
+ "title": "Site area properties",
5
+ "description": "Schema defining any properties for site area for an appeal",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["siteAreaSquareMetres", "floorSpaceSquareMetres"],
9
+ "properties": {
10
+ "siteAreaSquareMetres": {
11
+ "type": ["number", "null"],
12
+ "examples": [45.7],
13
+ "description": "The site area, in square meters"
14
+ },
15
+ "floorSpaceSquareMetres": {
16
+ "type": ["number", "null"],
17
+ "examples": [3.5],
18
+ "description": "The floor space, in square meters"
19
+ }
20
+ }
21
+ }
@@ -11,7 +11,8 @@
11
11
  "siteAccessDetails",
12
12
  "siteSafetyDetails",
13
13
  "nearbyCaseReferences",
14
- "neighbouringSiteAddresses"
14
+ "neighbouringSiteAddresses",
15
+ "isCorrectAppealType"
15
16
  ],
16
17
  "properties": {
17
18
  "caseReference": {
@@ -105,6 +106,10 @@
105
106
  "reasonForNeighbourVisits": {
106
107
  "type": ["string", "null"],
107
108
  "description": "A general reason given for the need to visit any neighbours"
109
+ },
110
+ "isCorrectAppealType": {
111
+ "type": ["boolean", "null"],
112
+ "description": "Indicates if the LPA considers the appeal type appropriate"
108
113
  }
109
114
  }
110
115
  }
@@ -6,7 +6,6 @@
6
6
  "type": "object",
7
7
  "additionalProperties": true,
8
8
  "required": [
9
- "isCorrectAppealType",
10
9
  "affectedListedBuildingNumbers",
11
10
  "isGreenBelt",
12
11
  "inConservationArea",
@@ -18,10 +17,6 @@
18
17
  "allOf": [
19
18
  {
20
19
  "properties": {
21
- "isCorrectAppealType": {
22
- "type": ["boolean", "null"],
23
- "description": "Indicates if the LPA considers the appeal type appropriate"
24
- },
25
20
  "affectedListedBuildingNumbers": {
26
21
  "type": ["array", "null"],
27
22
  "items": {
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/lpa-questionnaire-ldc.schema.json",
4
+ "title": "LPAQ LDC submission properties",
5
+ "description": "Schema defining any LDC specific properties for LPAQ submissions",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["appealUnderActSection", "lpaConsiderAppealInvalid", "lpaAppealInvalidReasons"],
9
+ "allOf": [
10
+ {
11
+ "properties": {
12
+ "appealUnderActSection": {
13
+ "type": ["string", "null"],
14
+ "enum": [
15
+ "existing-development",
16
+ "proposed-use-of-a-development",
17
+ "proposed-changes-to-a-listed-building",
18
+ null
19
+ ]
20
+ },
21
+ "lpaConsiderAppealInvalid": {
22
+ "type": ["boolean", "null"]
23
+ },
24
+ "lpaAppealInvalidReasons": {
25
+ "type": ["string", "null"],
26
+ "description": "Reason(s) why LPA consider the appeal invalid"
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ }