@planning-inspectorate/data-model 2.19.0 → 2.21.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 (36) 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 +4 -2
  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/lpa-questionnaire-enforcement.schema.json +8 -4
  32. package/src/enums.cjs +4 -0
  33. package/src/enums.d.ts +4 -0
  34. package/src/enums.js +4 -0
  35. package/src/index.cjs +4 -0
  36. package/src/schemas.d.ts +30 -2
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.19.0",
3
+ "version": "2.21.0",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -32,11 +32,13 @@
32
32
  "@adobe/jsonschema2md": "^8.0.3",
33
33
  "@commitlint/cli": "^20.1.0",
34
34
  "@commitlint/config-conventional": "^20.0.0",
35
+ "@eslint/js": "^10.0.1",
35
36
  "ajv": "^8.17.1",
36
37
  "ajv-formats": "^3.0.1",
37
38
  "conventional-changelog-conventionalcommits": "^9.1.0",
38
- "eslint": "^9.31.0",
39
+ "eslint": "^10.0.0",
39
40
  "eslint-config-prettier": "^10.1.5",
41
+ "globals": "^17.3.0",
40
42
  "husky": "^9.1.7",
41
43
  "json-schema-to-typescript": "^15.0.4",
42
44
  "lint-staged": "^16.1.2",
@@ -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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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-12T13:24:53+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"
@@ -31,11 +31,15 @@
31
31
  "examples": [45.7],
32
32
  "description": "The site area, in square meters"
33
33
  },
34
- "hasAllegedBreachArea": {
35
- "type": ["boolean", "null"]
34
+ "areaOfAllegedBreachInSquareMetres": {
35
+ "type": ["number", "null"],
36
+ "examples": [45.7],
37
+ "description": "Area of the alleged breach, in square meters"
36
38
  },
37
- "doesAllegedBreachCreateFloorSpace": {
38
- "type": ["boolean", "null"]
39
+ "floorSpaceCreatedByBreachInSquareMetres": {
40
+ "type": ["number", "null"],
41
+ "examples": [45.7],
42
+ "description": "Floor space created by the breach, in square meters"
39
43
  },
40
44
  "changeOfUseRefuseOrWaste": {
41
45
  "type": ["boolean", "null"]
package/src/enums.cjs CHANGED
@@ -176,6 +176,10 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
176
176
  GROUND_E_SUPPORTING: 'groundESupporting',
177
177
  GROUND_F_SUPPORTING: 'groundFSupporting',
178
178
  GROUND_G_SUPPORTING: 'groundGSupporting',
179
+ GROUND_H_SUPPORTING: 'groundHSupporting',
180
+ GROUND_I_SUPPORTING: 'groundISupporting',
181
+ GROUND_J_SUPPORTING: 'groundJSupporting',
182
+ GROUND_K_SUPPORTING: 'groundKSupporting',
179
183
  HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
180
184
  INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
181
185
  INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
package/src/enums.d.ts CHANGED
@@ -174,6 +174,10 @@ export const APPEAL_DOCUMENT_TYPE = {
174
174
  GROUND_E_SUPPORTING: 'groundESupporting',
175
175
  GROUND_F_SUPPORTING: 'groundFSupporting',
176
176
  GROUND_G_SUPPORTING: 'groundGSupporting',
177
+ GROUND_H_SUPPORTING: 'groundHSupporting',
178
+ GROUND_I_SUPPORTING: 'groundISupporting',
179
+ GROUND_J_SUPPORTING: 'groundJSupporting',
180
+ GROUND_K_SUPPORTING: 'groundKSupporting',
177
181
  HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
178
182
  INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
179
183
  INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
package/src/enums.js CHANGED
@@ -174,6 +174,10 @@ export const APPEAL_DOCUMENT_TYPE = Object.freeze({
174
174
  GROUND_E_SUPPORTING: 'groundESupporting',
175
175
  GROUND_F_SUPPORTING: 'groundFSupporting',
176
176
  GROUND_G_SUPPORTING: 'groundGSupporting',
177
+ GROUND_H_SUPPORTING: 'groundHSupporting',
178
+ GROUND_I_SUPPORTING: 'groundISupporting',
179
+ GROUND_J_SUPPORTING: 'groundJSupporting',
180
+ GROUND_K_SUPPORTING: 'groundKSupporting',
177
181
  HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
178
182
  INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
179
183
  INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
package/src/index.cjs CHANGED
@@ -257,6 +257,10 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
257
257
  GROUND_E_SUPPORTING: 'groundESupporting',
258
258
  GROUND_F_SUPPORTING: 'groundFSupporting',
259
259
  GROUND_G_SUPPORTING: 'groundGSupporting',
260
+ GROUND_H_SUPPORTING: 'groundHSupporting',
261
+ GROUND_I_SUPPORTING: 'groundISupporting',
262
+ GROUND_J_SUPPORTING: 'groundJSupporting',
263
+ GROUND_K_SUPPORTING: 'groundKSupporting',
260
264
  HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
261
265
  INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
262
266
  INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
package/src/schemas.d.ts CHANGED
@@ -170,6 +170,10 @@ export interface AppealDocument {
170
170
  | 'delegatedReport'
171
171
  | 'relatedApplications'
172
172
  | 'otherRelevantMatters'
173
+ | 'groundHSupporting'
174
+ | 'groundISupporting'
175
+ | 'groundJSupporting'
176
+ | 'groundKSupporting'
173
177
  | null;
174
178
  /**
175
179
  * The system mastering the metadata for the current document
@@ -1230,6 +1234,10 @@ export type AppealS78Case = (
1230
1234
  * New conditions details provided by the LPA
1231
1235
  */
1232
1236
  newConditionDetails: string | null;
1237
+ /**
1238
+ * extra conditions details provided by the LPA
1239
+ */
1240
+ extraConditionsDetails?: string | null;
1233
1241
  /**
1234
1242
  * A list of related case references known to the appellant and the LPA
1235
1243
  */
@@ -1584,6 +1592,20 @@ export type AppealS78Case = (
1584
1592
  [k: string]: unknown;
1585
1593
  }[]
1586
1594
  | null;
1595
+ /**
1596
+ * A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)
1597
+ */
1598
+ applicationElbAppealGroundsDetails?:
1599
+ | {
1600
+ appealGroundLetter?: 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | null;
1601
+ groundForAppealStartDate?: string | null;
1602
+ /**
1603
+ * Facts supporting the appeal ground
1604
+ */
1605
+ groundFacts?: string | null;
1606
+ [k: string]: unknown;
1607
+ }[]
1608
+ | null;
1587
1609
  /**
1588
1610
  * Was an application made and paid for
1589
1611
  */
@@ -4629,8 +4651,14 @@ export type LPAQEnforcementSubmissionProperties = {
4629
4651
  * The site area, in square meters
4630
4652
  */
4631
4653
  siteAreaSquareMetres?: number | null;
4632
- hasAllegedBreachArea?: boolean | null;
4633
- doesAllegedBreachCreateFloorSpace?: boolean | null;
4654
+ /**
4655
+ * Area of the alleged breach, in square meters
4656
+ */
4657
+ areaOfAllegedBreachInSquareMetres?: number | null;
4658
+ /**
4659
+ * Floor space created by the breach, in square meters
4660
+ */
4661
+ floorSpaceCreatedByBreachInSquareMetres?: number | null;
4634
4662
  changeOfUseRefuseOrWaste?: boolean | null;
4635
4663
  changeOfUseMineralExtraction?: boolean | null;
4636
4664
  changeOfUseMineralStorage?: boolean | null;