@planning-inspectorate/data-model 2.10.1 → 2.10.3

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 (34) hide show
  1. package/docs/appeal-s78.md +1 -0
  2. package/package.json +1 -1
  3. package/pins_data_model/models/model_appeal_document.py +1 -1
  4. package/pins_data_model/models/model_appeal_event.py +1 -1
  5. package/pins_data_model/models/model_appeal_event_estimate.py +1 -1
  6. package/pins_data_model/models/model_appeal_has.py +1 -1
  7. package/pins_data_model/models/model_appeal_representation.py +1 -1
  8. package/pins_data_model/models/model_appeal_s78.py +2 -1
  9. package/pins_data_model/models/model_dart_response.py +1 -1
  10. package/pins_data_model/models/model_entraid.py +1 -1
  11. package/pins_data_model/models/model_folder.py +1 -1
  12. package/pins_data_model/models/model_gettimesheets_response.py +1 -1
  13. package/pins_data_model/models/model_listed_building.py +1 -1
  14. package/pins_data_model/models/model_listed_buildings.py +1 -1
  15. package/pins_data_model/models/model_nsip_document.py +1 -1
  16. package/pins_data_model/models/model_nsip_exam_timetable.py +1 -1
  17. package/pins_data_model/models/model_nsip_invoice.py +1 -1
  18. package/pins_data_model/models/model_nsip_meeting.py +1 -1
  19. package/pins_data_model/models/model_nsip_project.py +1 -1
  20. package/pins_data_model/models/model_nsip_project_update.py +1 -1
  21. package/pins_data_model/models/model_nsip_representation.py +1 -1
  22. package/pins_data_model/models/model_nsip_subscription.py +1 -1
  23. package/pins_data_model/models/model_pins_inspector.py +1 -1
  24. package/pins_data_model/models/model_pins_lpa.py +1 -1
  25. package/pins_data_model/models/model_s51_advice.py +1 -1
  26. package/pins_data_model/models/model_service_user.py +1 -1
  27. package/schemas/appeal-s78.schema.json +1 -1
  28. package/schemas/commands/appeals-components/appeal-common-planning.schema.json +54 -0
  29. package/schemas/commands/appeals-components/appeal-common-submission.schema.json +6 -81
  30. package/schemas/commands/appeals-components/appeal-land-ownership.schema.json +48 -0
  31. package/schemas/commands/appeals-components/appeal-site-area.schema.json +21 -0
  32. package/schemas/commands/appellant-submission.schema.json +10 -4
  33. package/src/schemas.d.ts +65 -83
  34. package/schemas/commands/appeals-components/appeal-has-submission.schema.json +0 -81
@@ -1474,6 +1474,7 @@ The outcome of the original LPA decision
1474
1474
  | `"granted"` | |
1475
1475
  | `"refused"` | |
1476
1476
  | `"not_received"` | |
1477
+ | `null` | |
1477
1478
 
1478
1479
  ## applicationDecisionDate
1479
1480
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.10.1",
3
+ "version": "2.10.3",
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-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-event.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-event-estimate.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-has.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-representation.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-s78.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -149,6 +149,7 @@ class ApplicationDecision(Enum):
149
149
  granted = "granted"
150
150
  refused = "refused"
151
151
  not_received = "not_received"
152
+ NoneType_None = None
152
153
 
153
154
 
154
155
  class KnowsOtherOwners(Enum):
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: entraid.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: folder.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: gettimesheets-response.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-building.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-buildings.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-document.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-exam-timetable.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-invoice.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-meeting.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project-update.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-representation.schema.json
3
- # timestamp: 2026-01-16T12:29:57+00:00
3
+ # timestamp: 2026-01-20T11:57:10+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-subscription.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-inspector.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-lpa.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: s51-advice.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: service-user.schema.json
3
- # timestamp: 2026-01-16T12:29:56+00:00
3
+ # timestamp: 2026-01-20T11:57:09+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -478,7 +478,7 @@
478
478
  },
479
479
  "applicationDecision": {
480
480
  "type": ["string", "null"],
481
- "enum": ["granted", "refused", "not_received"],
481
+ "enum": ["granted", "refused", "not_received", null],
482
482
  "description": "The outcome of the original LPA decision",
483
483
  "$comment": "Also available on HAS cases"
484
484
  },
@@ -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",
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",
31
+ "enum": ["granted", "refused", "not_received"],
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": {
@@ -220,6 +141,10 @@
220
141
  "advertisement",
221
142
  null
222
143
  ]
144
+ },
145
+ "appellantCostsAppliedFor": {
146
+ "type": ["boolean", "null"],
147
+ "description": "Indicates if the appellant has applied for costs"
223
148
  }
224
149
  }
225
150
  }
@@ -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,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
+ }
@@ -18,7 +18,9 @@
18
18
  "allOf": [
19
19
  { "properties": { "caseType": { "enum": ["D", "ZP"] } } },
20
20
  { "$ref": "appeals-components/appeal-common-submission.schema.json" },
21
- { "$ref": "appeals-components/appeal-has-submission.schema.json" }
21
+ { "$ref": "appeals-components/appeal-common-planning.schema.json" },
22
+ { "$ref": "appeals-components/appeal-site-area.schema.json" },
23
+ { "$ref": "appeals-components/appeal-land-ownership.schema.json" }
22
24
  ]
23
25
  },
24
26
  {
@@ -26,7 +28,9 @@
26
28
  "allOf": [
27
29
  { "properties": { "caseType": { "enum": ["W", "Y"] } } },
28
30
  { "$ref": "appeals-components/appeal-common-submission.schema.json" },
29
- { "$ref": "appeals-components/appeal-has-submission.schema.json" },
31
+ { "$ref": "appeals-components/appeal-common-planning.schema.json" },
32
+ { "$ref": "appeals-components/appeal-site-area.schema.json" },
33
+ { "$ref": "appeals-components/appeal-land-ownership.schema.json" },
30
34
  { "$ref": "appeals-components/appeal-s78-submission.schema.json" },
31
35
  { "$ref": "appeals-components/appellant-procedure-preference.schema.json" }
32
36
  ]
@@ -36,7 +40,8 @@
36
40
  "allOf": [
37
41
  { "properties": { "caseType": { "enum": ["ZA"] } } },
38
42
  { "$ref": "appeals-components/appeal-common-submission.schema.json" },
39
- { "$ref": "appeals-components/appeal-has-submission.schema.json" },
43
+ { "$ref": "appeals-components/appeal-common-planning.schema.json" },
44
+ { "$ref": "appeals-components/appeal-land-ownership.schema.json" },
40
45
  { "$ref": "appeals-components/appeal-advert.submission.schema.json" }
41
46
  ]
42
47
  },
@@ -45,7 +50,8 @@
45
50
  "allOf": [
46
51
  { "properties": { "caseType": { "enum": ["H"] } } },
47
52
  { "$ref": "appeals-components/appeal-common-submission.schema.json" },
48
- { "$ref": "appeals-components/appeal-has-submission.schema.json" },
53
+ { "$ref": "appeals-components/appeal-common-planning.schema.json" },
54
+ { "$ref": "appeals-components/appeal-land-ownership.schema.json" },
49
55
  { "$ref": "appeals-components/appeal-advert.submission.schema.json" },
50
56
  { "$ref": "appeals-components/appellant-procedure-preference.schema.json" }
51
57
  ]
package/src/schemas.d.ts CHANGED
@@ -1130,7 +1130,7 @@ export type AppealS78Case = (
1130
1130
  /**
1131
1131
  * The outcome of the original LPA decision
1132
1132
  */
1133
- applicationDecision: ('granted' | 'refused' | 'not_received') | null;
1133
+ applicationDecision: 'granted' | 'refused' | 'not_received' | null;
1134
1134
  /**
1135
1135
  * The date of the original LPA decision
1136
1136
  */
@@ -3524,22 +3524,6 @@ export type AppellantCommonSubmissionProperties = (
3524
3524
  * Indicates if an enforcement notice is the reason for the appeal
3525
3525
  */
3526
3526
  enforcementNotice: boolean | null;
3527
- /**
3528
- * The unique identifier of the LPA application
3529
- */
3530
- applicationReference: string;
3531
- /**
3532
- * The date of the original LPA application
3533
- */
3534
- applicationDate: string;
3535
- /**
3536
- * The outcome of the original LPA decision
3537
- */
3538
- applicationDecision: 'granted' | 'refused' | 'not_received';
3539
- /**
3540
- * The date of the original LPA decision
3541
- */
3542
- applicationDecisionDate: string | null;
3543
3527
  /**
3544
3528
  * The statutory deadline for submitting an appeal from the original LPA decision date
3545
3529
  */
@@ -3574,42 +3558,6 @@ export type AppellantCommonSubmissionProperties = (
3574
3558
  * Provided information on site health and safety
3575
3559
  */
3576
3560
  siteSafetyDetails: string[] | null;
3577
- /**
3578
- * A list of neighbouring site addresses
3579
- */
3580
- neighbouringSiteAddresses:
3581
- | {
3582
- /**
3583
- * First line of address of the site
3584
- */
3585
- neighbouringSiteAddressLine1: string;
3586
- /**
3587
- * Second line of address of the site
3588
- */
3589
- neighbouringSiteAddressLine2: string | null;
3590
- /**
3591
- * Town / City of the site address
3592
- */
3593
- neighbouringSiteAddressTown: string;
3594
- /**
3595
- * County of the site address
3596
- */
3597
- neighbouringSiteAddressCounty: string | null;
3598
- /**
3599
- * Postal code of the site address
3600
- */
3601
- neighbouringSiteAddressPostcode: string;
3602
- /**
3603
- * Provided information on site accessibility on this address
3604
- */
3605
- neighbouringSiteAccessDetails: string | null;
3606
- /**
3607
- * Provided information on site health and safety on this address
3608
- */
3609
- neighbouringSiteSafetyDetails: string | null;
3610
- [k: string]: unknown;
3611
- }[]
3612
- | null;
3613
3561
  /**
3614
3562
  * A list of related case references known to the appellant and the LPA
3615
3563
  */
@@ -3625,24 +3573,16 @@ export type AppellantCommonSubmissionProperties = (
3625
3573
  | 'minor-commercial-development'
3626
3574
  | 'advertisement'
3627
3575
  | null;
3576
+ /**
3577
+ * Indicates if the appellant has applied for costs
3578
+ */
3579
+ appellantCostsAppliedFor: boolean | null;
3628
3580
  [k: string]: unknown;
3629
3581
  };
3630
3582
  /**
3631
- * Schema defining any HAS specific properties for appeal submissions
3583
+ * Schema defining properties relating to land ownership
3632
3584
  */
3633
- export type AppellantHASSubmissionProperties = {
3634
- /**
3635
- * Indicates if the site is in a green belt
3636
- */
3637
- isGreenBelt?: boolean | null;
3638
- /**
3639
- * The site area, in square meters
3640
- */
3641
- siteAreaSquareMetres?: number | null;
3642
- /**
3643
- * The floor space, in square meters
3644
- */
3645
- floorSpaceSquareMetres?: number | null;
3585
+ export type AppealLandOwnershipProperties = {
3646
3586
  /**
3647
3587
  * Indicates if the appellant has complete ownership of the site
3648
3588
  */
@@ -3667,18 +3607,6 @@ export type AppellantHASSubmissionProperties = {
3667
3607
  * Indicates if the appellant has informed other owners of the site
3668
3608
  */
3669
3609
  ownersInformed?: boolean | null;
3670
- /**
3671
- * The original description of the development, as provided by the appellant
3672
- */
3673
- originalDevelopmentDescription?: string | null;
3674
- /**
3675
- * Indicates that the LPA has changed the development description
3676
- */
3677
- changedDevelopmentDescription?: boolean | null;
3678
- /**
3679
- * Indicates if the appellant has applied for costs
3680
- */
3681
- appellantCostsAppliedFor?: boolean | null;
3682
3610
  };
3683
3611
  /**
3684
3612
  * Schema defining any S78 specific properties for appeal submissions
@@ -4000,22 +3928,28 @@ export interface AppellantSubmissionCommand {
4000
3928
  | ({
4001
3929
  caseType?: 'D' | 'ZP';
4002
3930
  } & AppellantCommonSubmissionProperties &
4003
- AppellantHASSubmissionProperties)
3931
+ AppellantCommonPlanningProperties &
3932
+ SiteAreaProperties &
3933
+ AppealLandOwnershipProperties)
4004
3934
  | ({
4005
3935
  caseType?: 'W' | 'Y';
4006
3936
  } & AppellantCommonSubmissionProperties &
4007
- AppellantHASSubmissionProperties &
3937
+ AppellantCommonPlanningProperties &
3938
+ SiteAreaProperties &
3939
+ AppealLandOwnershipProperties &
4008
3940
  AppellantS78SubmissionProperties &
4009
3941
  AppellantProcedurePreferenceProperties)
4010
3942
  | ({
4011
3943
  caseType?: 'ZA';
4012
3944
  } & AppellantCommonSubmissionProperties &
4013
- AppellantHASSubmissionProperties &
3945
+ AppellantCommonPlanningProperties &
3946
+ AppealLandOwnershipProperties &
4014
3947
  AdvertSpecificProperties)
4015
3948
  | ({
4016
3949
  caseType?: 'H';
4017
3950
  } & AppellantCommonSubmissionProperties &
4018
- AppellantHASSubmissionProperties &
3951
+ AppellantCommonPlanningProperties &
3952
+ AppealLandOwnershipProperties &
4019
3953
  AdvertSpecificProperties &
4020
3954
  AppellantProcedurePreferenceProperties)
4021
3955
  | ({
@@ -4159,6 +4093,54 @@ export interface AppellantSubmissionCommand {
4159
4093
  ];
4160
4094
  [k: string]: unknown;
4161
4095
  }
4096
+ /**
4097
+ * Schema defining any properties common across all planning appeal types for appeal submissions
4098
+ */
4099
+ export interface AppellantCommonPlanningProperties {
4100
+ /**
4101
+ * The unique identifier of the LPA application
4102
+ */
4103
+ applicationReference: string;
4104
+ /**
4105
+ * The date of the original LPA application
4106
+ */
4107
+ applicationDate: string;
4108
+ /**
4109
+ * The outcome of the original LPA decision
4110
+ */
4111
+ applicationDecision: 'granted' | 'refused' | 'not_received';
4112
+ /**
4113
+ * The date of the original LPA decision
4114
+ */
4115
+ applicationDecisionDate: string | null;
4116
+ /**
4117
+ * Indicates if the site is in a green belt
4118
+ */
4119
+ isGreenBelt: boolean | null;
4120
+ /**
4121
+ * The original description of the development, as provided by the appellant
4122
+ */
4123
+ originalDevelopmentDescription: string | null;
4124
+ /**
4125
+ * Indicates that the LPA has changed the development description
4126
+ */
4127
+ changedDevelopmentDescription: boolean | null;
4128
+ [k: string]: unknown;
4129
+ }
4130
+ /**
4131
+ * Schema defining any properties for site area for an appeal
4132
+ */
4133
+ export interface SiteAreaProperties {
4134
+ /**
4135
+ * The site area, in square meters
4136
+ */
4137
+ siteAreaSquareMetres: number | null;
4138
+ /**
4139
+ * The floor space, in square meters
4140
+ */
4141
+ floorSpaceSquareMetres: number | null;
4142
+ [k: string]: unknown;
4143
+ }
4162
4144
  /**
4163
4145
  * Schema defining any properties for advertisement appeals
4164
4146
  */
@@ -1,81 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "commands/appeals-components/appeal-has-submission.schema.json",
4
- "title": "Appellant HAS submission properties",
5
- "description": "Schema defining any HAS specific properties for appeal submissions",
6
- "type": "object",
7
- "additionalProperties": true,
8
- "required": [
9
- "isGreenBelt",
10
- "siteAreaSquareMetres",
11
- "floorSpaceSquareMetres",
12
- "ownsAllLand",
13
- "ownsSomeLand",
14
- "knowsOtherOwners",
15
- "knowsAllOwners",
16
- "advertisedAppeal",
17
- "ownersInformed",
18
- "originalDevelopmentDescription",
19
- "changedDevelopmentDescription",
20
- "appellantCostsAppliedFor"
21
- ],
22
- "allOf": [
23
- {
24
- "properties": {
25
- "isGreenBelt": {
26
- "type": ["boolean", "null"],
27
- "description": "Indicates if the site is in a green belt"
28
- },
29
- "siteAreaSquareMetres": {
30
- "type": ["number", "null"],
31
- "examples": [45.7],
32
- "description": "The site area, in square meters"
33
- },
34
- "floorSpaceSquareMetres": {
35
- "type": ["number", "null"],
36
- "examples": [3.5],
37
- "description": "The floor space, in square meters"
38
- },
39
- "ownsAllLand": {
40
- "type": ["boolean", "null"],
41
- "description": "Indicates if the appellant has complete ownership of the site"
42
- },
43
- "ownsSomeLand": {
44
- "type": ["boolean", "null"],
45
- "description": "Indicates if the appellant has partial ownership of the site"
46
- },
47
- "knowsOtherOwners": {
48
- "type": ["string", "null"],
49
- "enum": ["Yes", "No", "Some", null],
50
- "description": "Indicates if the appellant knows other owners of the site"
51
- },
52
- "knowsAllOwners": {
53
- "type": ["string", "null"],
54
- "enum": ["Yes", "No", "Some", null],
55
- "description": "Indicates if the appellant knows all owners of the site"
56
- },
57
- "advertisedAppeal": {
58
- "type": ["boolean", "null"],
59
- "description": "Indicates if the appellant has advertised the appeal to the LPA decision"
60
- },
61
- "ownersInformed": {
62
- "type": ["boolean", "null"],
63
- "description": "Indicates if the appellant has informed other owners of the site"
64
- },
65
- "originalDevelopmentDescription": {
66
- "type": ["string", "null"],
67
- "examples": ["Replacement of an existing gate to access the property"],
68
- "description": "The original description of the development, as provided by the appellant"
69
- },
70
- "changedDevelopmentDescription": {
71
- "type": ["boolean", "null"],
72
- "description": "Indicates that the LPA has changed the development description"
73
- },
74
- "appellantCostsAppliedFor": {
75
- "type": ["boolean", "null"],
76
- "description": "Indicates if the appellant has applied for costs"
77
- }
78
- }
79
- }
80
- ]
81
- }