@planning-inspectorate/data-model 2.18.0 → 2.20.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 (40) hide show
  1. package/docs/README.md +2 -0
  2. package/docs/appeal-document.md +4 -0
  3. package/docs/appeal-s78.md +46 -0
  4. package/package.json +1 -1
  5. package/pins_data_model/models/model_appeal_document.py +5 -1
  6. package/pins_data_model/models/model_appeal_event.py +1 -1
  7. package/pins_data_model/models/model_appeal_event_estimate.py +1 -1
  8. package/pins_data_model/models/model_appeal_has.py +1 -1
  9. package/pins_data_model/models/model_appeal_representation.py +1 -1
  10. package/pins_data_model/models/model_appeal_s78.py +97 -2
  11. package/pins_data_model/models/model_dart_response.py +1 -1
  12. package/pins_data_model/models/model_entraid.py +1 -1
  13. package/pins_data_model/models/model_folder.py +1 -1
  14. package/pins_data_model/models/model_gettimesheets_response.py +1 -1
  15. package/pins_data_model/models/model_listed_building.py +1 -1
  16. package/pins_data_model/models/model_listed_buildings.py +1 -1
  17. package/pins_data_model/models/model_nsip_document.py +1 -1
  18. package/pins_data_model/models/model_nsip_exam_timetable.py +1 -1
  19. package/pins_data_model/models/model_nsip_invoice.py +1 -1
  20. package/pins_data_model/models/model_nsip_meeting.py +1 -1
  21. package/pins_data_model/models/model_nsip_project.py +1 -1
  22. package/pins_data_model/models/model_nsip_project_update.py +1 -1
  23. package/pins_data_model/models/model_nsip_representation.py +1 -1
  24. package/pins_data_model/models/model_nsip_subscription.py +1 -1
  25. package/pins_data_model/models/model_pins_inspector.py +1 -1
  26. package/pins_data_model/models/model_pins_lpa.py +1 -1
  27. package/pins_data_model/models/model_s51_advice.py +1 -1
  28. package/pins_data_model/models/model_service_user.py +1 -1
  29. package/schemas/appeal-document.schema.json +4 -0
  30. package/schemas/appeal-s78.schema.json +29 -0
  31. package/schemas/commands/appeals-components/appeal-enforcement-common-submission.schema.json +137 -0
  32. package/schemas/commands/appeals-components/appeal-enforcement-listed-submission.schema.json +103 -0
  33. package/schemas/commands/appeals-components/appeal-enforcement-submission.schema.json +19 -145
  34. package/schemas/commands/appellant-submission.schema.json +3 -1
  35. package/src/enums.cjs +4 -0
  36. package/src/enums.d.ts +4 -0
  37. package/src/enums.js +4 -0
  38. package/src/index.cjs +4 -0
  39. package/src/schemas.d.ts +208 -96
  40. package/tests/appeals/commands/enforcement-listed-submission.test.js +1 -60
package/docs/README.md CHANGED
@@ -64,6 +64,8 @@
64
64
 
65
65
  * [Untitled object in Appeal S78 Case](./appeal-s78-properties-enforcementappealgroundsdetails-items.md) – `appeal-s78.schema.json#/properties/enforcementAppealGroundsDetails/items`
66
66
 
67
+ * [Untitled object in Appeal S78 Case](./appeal-s78-properties-applicationelbappealgroundsdetails-items.md) – `appeal-s78.schema.json#/properties/applicationElbAppealGroundsDetails/items`
68
+
67
69
  * [Untitled object in DaRT API response](./dart-response-properties-neighbouringsiteaddresses-items.md) – `dart-response.schema.json#/properties/neighbouringSiteAddresses/items`
68
70
 
69
71
  * [Untitled object in Examination Timetable](./nsip-exam-timetable-defs-event.md) – `nsip-exam-timetable.schema.json#/$defs/event`
@@ -622,6 +622,10 @@ The type of document, used for exchange, migrations and consumption from the app
622
622
  | `"delegatedReport"` | |
623
623
  | `"relatedApplications"` | |
624
624
  | `"otherRelevantMatters"` | |
625
+ | `"groundHSupporting"` | |
626
+ | `"groundISupporting"` | |
627
+ | `"groundJSupporting"` | |
628
+ | `"groundKSupporting"` | |
625
629
  | `null` | |
626
630
 
627
631
  ## sourceSystem
@@ -80,6 +80,7 @@ any of
80
80
  | [originalDevelopmentDescription](#originaldevelopmentdescription) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-originaldevelopmentdescription.md "appeal-s78.schema.json#/properties/originalDevelopmentDescription") |
81
81
  | [changedDevelopmentDescription](#changeddevelopmentdescription) | `boolean` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-changeddevelopmentdescription.md "appeal-s78.schema.json#/properties/changedDevelopmentDescription") |
82
82
  | [newConditionDetails](#newconditiondetails) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-newconditiondetails.md "appeal-s78.schema.json#/properties/newConditionDetails") |
83
+ | [extraConditionsDetails](#extraconditionsdetails) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-extraconditionsdetails.md "appeal-s78.schema.json#/properties/extraConditionsDetails") |
83
84
  | [nearbyCaseReferences](#nearbycasereferences) | `array` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-nearbycasereferences.md "appeal-s78.schema.json#/properties/nearbyCaseReferences") |
84
85
  | [neighbouringSiteAddresses](#neighbouringsiteaddresses) | `array` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-neighbouringsiteaddresses.md "appeal-s78.schema.json#/properties/neighbouringSiteAddresses") |
85
86
  | [reasonForNeighbourVisits](#reasonforneighbourvisits) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-reasonforneighbourvisits.md "appeal-s78.schema.json#/properties/reasonForNeighbourVisits") |
@@ -162,6 +163,7 @@ any of
162
163
  | [ownerOccupancyStatus](#owneroccupancystatus) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-owneroccupancystatus.md "appeal-s78.schema.json#/properties/ownerOccupancyStatus") |
163
164
  | [occupancyConditionsMet](#occupancyconditionsmet) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-occupancyconditionsmet.md "appeal-s78.schema.json#/properties/occupancyConditionsMet") |
164
165
  | [enforcementAppealGroundsDetails](#enforcementappealgroundsdetails) | `array` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-enforcementappealgroundsdetails.md "appeal-s78.schema.json#/properties/enforcementAppealGroundsDetails") |
166
+ | [applicationElbAppealGroundsDetails](#applicationelbappealgroundsdetails) | `array` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-applicationelbappealgroundsdetails.md "appeal-s78.schema.json#/properties/applicationElbAppealGroundsDetails") |
165
167
  | [applicationMadeAndFeePaid](#applicationmadeandfeepaid) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-applicationmadeandfeepaid.md "appeal-s78.schema.json#/properties/applicationMadeAndFeePaid") |
166
168
  | [noticeRelatesToBuildingEngineeringMiningOther](#noticerelatestobuildingengineeringminingother) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-noticerelatestobuildingengineeringminingother.md "appeal-s78.schema.json#/properties/noticeRelatesToBuildingEngineeringMiningOther") |
167
169
  | [changeOfUseRefuseOrWaste](#changeofuserefuseorwaste) | `boolean` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-changeofuserefuseorwaste.md "appeal-s78.schema.json#/properties/changeOfUseRefuseOrWaste") |
@@ -2067,6 +2069,30 @@ New conditions details provided by the LPA
2067
2069
  "Since the original application, a number of things have changed..."
2068
2070
  ```
2069
2071
 
2072
+ ## extraConditionsDetails
2073
+
2074
+ extra conditions details provided by the LPA
2075
+
2076
+ `extraConditionsDetails`
2077
+
2078
+ * is optional
2079
+
2080
+ * Type: `string`
2081
+
2082
+ * can be null
2083
+
2084
+ * defined in: [Appeal S78 Case](appeal-s78-properties-extraconditionsdetails.md "appeal-s78.schema.json#/properties/extraConditionsDetails")
2085
+
2086
+ ### extraConditionsDetails Type
2087
+
2088
+ `string`
2089
+
2090
+ ### extraConditionsDetails Examples
2091
+
2092
+ ```json
2093
+ "Since the original application, a number of things have changed..."
2094
+ ```
2095
+
2070
2096
  ## nearbyCaseReferences
2071
2097
 
2072
2098
  A list of related case references known to the appellant and the LPA
@@ -3935,6 +3961,26 @@ A list of grounds for the appeal, supporting facts & start dates. Enforcement ca
3935
3961
 
3936
3962
  `object[]` ([Details](appeal-s78-properties-enforcementappealgroundsdetails-items.md))
3937
3963
 
3964
+ ## applicationElbAppealGroundsDetails
3965
+
3966
+ A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
3967
+
3968
+ > Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)
3969
+
3970
+ `applicationElbAppealGroundsDetails`
3971
+
3972
+ * is optional
3973
+
3974
+ * Type: `object[]` ([Details](appeal-s78-properties-applicationelbappealgroundsdetails-items.md))
3975
+
3976
+ * can be null
3977
+
3978
+ * defined in: [Appeal S78 Case](appeal-s78-properties-applicationelbappealgroundsdetails.md "appeal-s78.schema.json#/properties/applicationElbAppealGroundsDetails")
3979
+
3980
+ ### applicationElbAppealGroundsDetails Type
3981
+
3982
+ `object[]` ([Details](appeal-s78-properties-applicationelbappealgroundsdetails-items.md))
3983
+
3938
3984
  ## applicationMadeAndFeePaid
3939
3985
 
3940
3986
  Was an application made and paid for
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.18.0",
3
+ "version": "2.20.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-02-06T12:26:23+00:00
3
+ # timestamp: 2026-02-09T10:43:16+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -144,6 +144,10 @@ class DocumentType(Enum):
144
144
  delegatedReport = "delegatedReport"
145
145
  relatedApplications = "relatedApplications"
146
146
  otherRelevantMatters = "otherRelevantMatters"
147
+ groundHSupporting = "groundHSupporting"
148
+ groundISupporting = "groundISupporting"
149
+ groundJSupporting = "groundJSupporting"
150
+ groundKSupporting = "groundKSupporting"
147
151
  NoneType_None = None
148
152
 
149
153
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-event.schema.json
3
- # timestamp: 2026-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:23+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -362,6 +362,35 @@ class EnforcementAppealGroundsDetail(BaseModel):
362
362
  """
363
363
 
364
364
 
365
+ class AppealGroundLetter1(Enum):
366
+ a = "a"
367
+ b = "b"
368
+ c = "c"
369
+ d = "d"
370
+ e = "e"
371
+ f = "f"
372
+ g = "g"
373
+ h = "h"
374
+ i = "i"
375
+ j = "j"
376
+ k = "k"
377
+ NoneType_None = None
378
+
379
+
380
+ class ApplicationElbAppealGroundsDetail(BaseModel):
381
+ model_config = ConfigDict(
382
+ extra="allow",
383
+ )
384
+ appealGroundLetter: AppealGroundLetter1 | None = None
385
+ groundForAppealStartDate: AwareDatetime | None = Field(
386
+ None, examples=["2023-07-27T20:30:00.000Z"]
387
+ )
388
+ groundFacts: str | None = None
389
+ """
390
+ Facts supporting the appeal ground
391
+ """
392
+
393
+
365
394
  class ApplicationPartOrWholeDevelopment(Enum):
366
395
  """
367
396
  Did the application relate to all or part of the development
@@ -717,6 +746,13 @@ class AppealS78Case1(BaseModel):
717
746
  """
718
747
  New conditions details provided by the LPA
719
748
  """
749
+ extraConditionsDetails: str | None = Field(
750
+ None,
751
+ examples=["Since the original application, a number of things have changed..."],
752
+ )
753
+ """
754
+ extra conditions details provided by the LPA
755
+ """
720
756
  nearbyCaseReferences: list[str]
721
757
  """
722
758
  A list of related case references known to the appellant and the LPA
@@ -1011,6 +1047,12 @@ class AppealS78Case1(BaseModel):
1011
1047
  """
1012
1048
  A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
1013
1049
  """
1050
+ applicationElbAppealGroundsDetails: (
1051
+ list[ApplicationElbAppealGroundsDetail] | None
1052
+ ) = None
1053
+ """
1054
+ A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
1055
+ """
1014
1056
  applicationMadeAndFeePaid: bool | None = None
1015
1057
  """
1016
1058
  Was an application made and paid for
@@ -1109,11 +1151,51 @@ class AdvertDetail1(BaseModel):
1109
1151
  """
1110
1152
 
1111
1153
 
1154
+ class AppealGroundLetter2(Enum):
1155
+ a = "a"
1156
+ b = "b"
1157
+ c = "c"
1158
+ d = "d"
1159
+ e = "e"
1160
+ f = "f"
1161
+ g = "g"
1162
+ NoneType_None = None
1163
+
1164
+
1112
1165
  class EnforcementAppealGroundsDetail1(BaseModel):
1113
1166
  model_config = ConfigDict(
1114
1167
  extra="allow",
1115
1168
  )
1116
- appealGroundLetter: AppealGroundLetter | None = None
1169
+ appealGroundLetter: AppealGroundLetter2 | None = None
1170
+ groundForAppealStartDate: AwareDatetime | None = Field(
1171
+ None, examples=["2023-07-27T20:30:00.000Z"]
1172
+ )
1173
+ groundFacts: str | None = None
1174
+ """
1175
+ Facts supporting the appeal ground
1176
+ """
1177
+
1178
+
1179
+ class AppealGroundLetter3(Enum):
1180
+ a = "a"
1181
+ b = "b"
1182
+ c = "c"
1183
+ d = "d"
1184
+ e = "e"
1185
+ f = "f"
1186
+ g = "g"
1187
+ h = "h"
1188
+ i = "i"
1189
+ j = "j"
1190
+ k = "k"
1191
+ NoneType_None = None
1192
+
1193
+
1194
+ class ApplicationElbAppealGroundsDetail1(BaseModel):
1195
+ model_config = ConfigDict(
1196
+ extra="allow",
1197
+ )
1198
+ appealGroundLetter: AppealGroundLetter3 | None = None
1117
1199
  groundForAppealStartDate: AwareDatetime | None = Field(
1118
1200
  None, examples=["2023-07-27T20:30:00.000Z"]
1119
1201
  )
@@ -1454,6 +1536,13 @@ class AppealS78Case2(BaseModel):
1454
1536
  """
1455
1537
  New conditions details provided by the LPA
1456
1538
  """
1539
+ extraConditionsDetails: str | None = Field(
1540
+ None,
1541
+ examples=["Since the original application, a number of things have changed..."],
1542
+ )
1543
+ """
1544
+ extra conditions details provided by the LPA
1545
+ """
1457
1546
  nearbyCaseReferences: list[str]
1458
1547
  """
1459
1548
  A list of related case references known to the appellant and the LPA
@@ -1748,6 +1837,12 @@ class AppealS78Case2(BaseModel):
1748
1837
  """
1749
1838
  A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
1750
1839
  """
1840
+ applicationElbAppealGroundsDetails: (
1841
+ list[ApplicationElbAppealGroundsDetail1] | None
1842
+ ) = None
1843
+ """
1844
+ A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
1845
+ """
1751
1846
  applicationMadeAndFeePaid: bool | None = None
1752
1847
  """
1753
1848
  Was an application made and paid for
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2026-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:24+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+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-02-06T12:26:25+00:00
3
+ # timestamp: 2026-02-09T10:43:16+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -222,6 +222,10 @@
222
222
  "delegatedReport",
223
223
  "relatedApplications",
224
224
  "otherRelevantMatters",
225
+ "groundHSupporting",
226
+ "groundISupporting",
227
+ "groundJSupporting",
228
+ "groundKSupporting",
225
229
  null
226
230
  ],
227
231
  "description": "The type of document, used for exchange, migrations and consumption from the appeal back-office system"
@@ -629,6 +629,11 @@
629
629
  "description": "New conditions details provided by the LPA",
630
630
  "$comment": "Also available on HAS cases"
631
631
  },
632
+ "extraConditionsDetails": {
633
+ "type": ["string", "null"],
634
+ "examples": ["Since the original application, a number of things have changed..."],
635
+ "description": "extra conditions details provided by the LPA"
636
+ },
632
637
  "nearbyCaseReferences": {
633
638
  "type": ["array", "null"],
634
639
  "items": {
@@ -1158,6 +1163,30 @@
1158
1163
  "description": "A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)",
1159
1164
  "$comment": "Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)"
1160
1165
  },
1166
+ "applicationElbAppealGroundsDetails": {
1167
+ "type": ["array", "null"],
1168
+ "items": {
1169
+ "type": "object",
1170
+ "additionalProperties": true,
1171
+ "properties": {
1172
+ "appealGroundLetter": {
1173
+ "type": ["string", "null"],
1174
+ "enum": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", null]
1175
+ },
1176
+ "groundForAppealStartDate": {
1177
+ "type": ["string", "null"],
1178
+ "format": "date-time",
1179
+ "examples": ["2023-07-27T20:30:00.000Z"]
1180
+ },
1181
+ "groundFacts": {
1182
+ "type": ["string", "null"],
1183
+ "description": "Facts supporting the appeal ground"
1184
+ }
1185
+ }
1186
+ },
1187
+ "description": "A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)",
1188
+ "$comment": "Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)"
1189
+ },
1161
1190
  "applicationMadeAndFeePaid": {
1162
1191
  "type": ["boolean", "null"],
1163
1192
  "description": "Was an application made and paid for"