@planning-inspectorate/data-model 2.23.0 → 2.25.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 (43) hide show
  1. package/docs/appeal-has.md +29 -0
  2. package/docs/appeal-s78.md +60 -0
  3. package/package.json +1 -1
  4. package/pins_data_model/models/model_appeal_document.py +1 -1
  5. package/pins_data_model/models/model_appeal_event.py +1 -1
  6. package/pins_data_model/models/model_appeal_event_estimate.py +1 -1
  7. package/pins_data_model/models/model_appeal_has.py +14 -1
  8. package/pins_data_model/models/model_appeal_representation.py +1 -1
  9. package/pins_data_model/models/model_appeal_s78.py +26 -1
  10. package/pins_data_model/models/model_dart_response.py +1 -1
  11. package/pins_data_model/models/model_entraid.py +1 -1
  12. package/pins_data_model/models/model_folder.py +1 -1
  13. package/pins_data_model/models/model_gettimesheets_response.py +1 -1
  14. package/pins_data_model/models/model_listed_building.py +1 -1
  15. package/pins_data_model/models/model_listed_buildings.py +1 -1
  16. package/pins_data_model/models/model_nsip_document.py +1 -1
  17. package/pins_data_model/models/model_nsip_exam_timetable.py +1 -1
  18. package/pins_data_model/models/model_nsip_invoice.py +1 -1
  19. package/pins_data_model/models/model_nsip_meeting.py +1 -1
  20. package/pins_data_model/models/model_nsip_project.py +1 -1
  21. package/pins_data_model/models/model_nsip_project_update.py +1 -1
  22. package/pins_data_model/models/model_nsip_representation.py +1 -1
  23. package/pins_data_model/models/model_nsip_subscription.py +1 -1
  24. package/pins_data_model/models/model_pins_inspector.py +1 -1
  25. package/pins_data_model/models/model_pins_lpa.py +1 -1
  26. package/pins_data_model/models/model_s51_advice.py +1 -1
  27. package/pins_data_model/models/model_service_user.py +1 -1
  28. package/schemas/appeal-has.schema.json +7 -1
  29. package/schemas/appeal-s78.schema.json +14 -1
  30. package/schemas/commands/appeals-components/lpa-questionnaire-enforcement-common.schema.json +60 -0
  31. package/schemas/commands/appeals-components/lpa-questionnaire-enforcement.schema.json +2 -50
  32. package/schemas/commands/lpa-questionnaire.schema.json +18 -2
  33. package/src/enums.cjs +42 -0
  34. package/src/enums.d.ts +38 -0
  35. package/src/enums.js +38 -0
  36. package/src/index.cjs +42 -0
  37. package/src/lib/gen-enum-impl.js +196 -0
  38. package/src/lib/gen-enum-impl.test.js +183 -0
  39. package/src/lib/gen-enums.js +11 -87
  40. package/src/schemas.d.ts +35 -6
  41. package/tests/appeals/appeal-has.test.js +1 -0
  42. package/tests/appeals/appeal-s78.test.js +2 -0
  43. package/tests/appeals/commands/enforcement-listed-questionnaire.test.js +2 -3
@@ -57,6 +57,7 @@ any of
57
57
  | [applicationDate](#applicationdate) | `string` | Required | cannot be null | [Appeal HAS Case](appeal-has-properties-applicationdate.md "appeal-has.schema.json#/properties/applicationDate") |
58
58
  | [applicationDecision](#applicationdecision) | `string` | Required | cannot be null | [Appeal HAS Case](appeal-has-properties-applicationdecision.md "appeal-has.schema.json#/properties/applicationDecision") |
59
59
  | [applicationDecisionDate](#applicationdecisiondate) | `string` | Required | can be null | [Appeal HAS Case](appeal-has-properties-applicationdecisiondate.md "appeal-has.schema.json#/properties/applicationDecisionDate") |
60
+ | [applicationDecisionDueDate](#applicationdecisionduedate) | `string` | Optional | can be null | [Appeal HAS Case](appeal-has-properties-applicationdecisionduedate.md "appeal-has.schema.json#/properties/applicationDecisionDueDate") |
60
61
  | [caseSubmissionDueDate](#casesubmissionduedate) | `string` | Required | can be null | [Appeal HAS Case](appeal-has-properties-casesubmissionduedate.md "appeal-has.schema.json#/properties/caseSubmissionDueDate") |
61
62
  | [siteAddressLine1](#siteaddressline1) | `string` | Optional | can be null | [Appeal HAS Case](appeal-has-properties-siteaddressline1.md "appeal-has.schema.json#/properties/siteAddressLine1") |
62
63
  | [siteAddressLine2](#siteaddressline2) | `string` | Optional | can be null | [Appeal HAS Case](appeal-has-properties-siteaddressline2.md "appeal-has.schema.json#/properties/siteAddressLine2") |
@@ -1345,6 +1346,34 @@ The date of the original LPA decision
1345
1346
  "2023-07-27T20:30:00.000Z"
1346
1347
  ```
1347
1348
 
1349
+ ## applicationDecisionDueDate
1350
+
1351
+ The date that an application decision is due
1352
+
1353
+ `applicationDecisionDueDate`
1354
+
1355
+ * is optional
1356
+
1357
+ * Type: `string`
1358
+
1359
+ * can be null
1360
+
1361
+ * defined in: [Appeal HAS Case](appeal-has-properties-applicationdecisionduedate.md "appeal-has.schema.json#/properties/applicationDecisionDueDate")
1362
+
1363
+ ### applicationDecisionDueDate Type
1364
+
1365
+ `string`
1366
+
1367
+ ### applicationDecisionDueDate Constraints
1368
+
1369
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
1370
+
1371
+ ### applicationDecisionDueDate Examples
1372
+
1373
+ ```json
1374
+ "2023-07-27T20:30:00.000Z"
1375
+ ```
1376
+
1348
1377
  ## caseSubmissionDueDate
1349
1378
 
1350
1379
  The statutory deadline for submitting an appeal from the original LPA decision date
@@ -57,6 +57,7 @@ any of
57
57
  | [applicationDate](#applicationdate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-applicationdate.md "appeal-s78.schema.json#/properties/applicationDate") |
58
58
  | [applicationDecision](#applicationdecision) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-applicationdecision.md "appeal-s78.schema.json#/properties/applicationDecision") |
59
59
  | [applicationDecisionDate](#applicationdecisiondate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-applicationdecisiondate.md "appeal-s78.schema.json#/properties/applicationDecisionDate") |
60
+ | [applicationDecisionDueDate](#applicationdecisionduedate) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-applicationdecisionduedate.md "appeal-s78.schema.json#/properties/applicationDecisionDueDate") |
60
61
  | [caseSubmissionDueDate](#casesubmissionduedate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-casesubmissionduedate.md "appeal-s78.schema.json#/properties/caseSubmissionDueDate") |
61
62
  | [siteAddressLine1](#siteaddressline1) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-siteaddressline1.md "appeal-s78.schema.json#/properties/siteAddressLine1") |
62
63
  | [siteAddressLine2](#siteaddressline2) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-siteaddressline2.md "appeal-s78.schema.json#/properties/siteAddressLine2") |
@@ -142,6 +143,7 @@ any of
142
143
  | [proofsOfEvidenceDueDate](#proofsofevidenceduedate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-proofsofevidenceduedate.md "appeal-s78.schema.json#/properties/proofsOfEvidenceDueDate") |
143
144
  | [siteNoticesSentDate](#sitenoticessentdate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-sitenoticessentdate.md "appeal-s78.schema.json#/properties/siteNoticesSentDate") |
144
145
  | [statementDueDate](#statementduedate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-statementduedate.md "appeal-s78.schema.json#/properties/statementDueDate") |
146
+ | [caseManagementConferenceDate](#casemanagementconferencedate) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-casemanagementconferencedate.md "appeal-s78.schema.json#/properties/caseManagementConferenceDate") |
145
147
  | [numberOfResidencesNetChange](#numberofresidencesnetchange) | `number` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-numberofresidencesnetchange.md "appeal-s78.schema.json#/properties/numberOfResidencesNetChange") |
146
148
  | [siteGridReferenceEasting](#sitegridreferenceeasting) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-sitegridreferenceeasting.md "appeal-s78.schema.json#/properties/siteGridReferenceEasting") |
147
149
  | [siteGridReferenceNorthing](#sitegridreferencenorthing) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-sitegridreferencenorthing.md "appeal-s78.schema.json#/properties/siteGridReferenceNorthing") |
@@ -1514,6 +1516,36 @@ The date of the original LPA decision
1514
1516
  "2023-07-27T20:30:00.000Z"
1515
1517
  ```
1516
1518
 
1519
+ ## applicationDecisionDueDate
1520
+
1521
+ The date that an application decision is due
1522
+
1523
+ > Also available on HAS cases
1524
+
1525
+ `applicationDecisionDueDate`
1526
+
1527
+ * is optional
1528
+
1529
+ * Type: `string`
1530
+
1531
+ * can be null
1532
+
1533
+ * defined in: [Appeal S78 Case](appeal-s78-properties-applicationdecisionduedate.md "appeal-s78.schema.json#/properties/applicationDecisionDueDate")
1534
+
1535
+ ### applicationDecisionDueDate Type
1536
+
1537
+ `string`
1538
+
1539
+ ### applicationDecisionDueDate Constraints
1540
+
1541
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
1542
+
1543
+ ### applicationDecisionDueDate Examples
1544
+
1545
+ ```json
1546
+ "2023-07-27T20:30:00.000Z"
1547
+ ```
1548
+
1517
1549
  ## caseSubmissionDueDate
1518
1550
 
1519
1551
  The statutory deadline for submitting an appeal from the original LPA decision date
@@ -3448,6 +3480,34 @@ The date of the cost report
3448
3480
  "2023-07-27T20:30:00.000Z"
3449
3481
  ```
3450
3482
 
3483
+ ## caseManagementConferenceDate
3484
+
3485
+ The date of the Case Management Conference (CMC)
3486
+
3487
+ `caseManagementConferenceDate`
3488
+
3489
+ * is optional
3490
+
3491
+ * Type: `string`
3492
+
3493
+ * can be null
3494
+
3495
+ * defined in: [Appeal S78 Case](appeal-s78-properties-casemanagementconferencedate.md "appeal-s78.schema.json#/properties/caseManagementConferenceDate")
3496
+
3497
+ ### caseManagementConferenceDate Type
3498
+
3499
+ `string`
3500
+
3501
+ ### caseManagementConferenceDate Constraints
3502
+
3503
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
3504
+
3505
+ ### caseManagementConferenceDate Examples
3506
+
3507
+ ```json
3508
+ "2023-07-27T20:30:00.000Z"
3509
+ ```
3510
+
3451
3511
  ## numberOfResidencesNetChange
3452
3512
 
3453
3513
  The net gain in residences of the proposed development
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.23.0",
3
+ "version": "2.25.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-16T16:31:41+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-02-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -179,6 +179,7 @@ class NotificationMethodEnum(Enum):
179
179
  notice = "notice"
180
180
  letter = "letter"
181
181
  advert = "advert"
182
+ not_notified = "not_notified"
182
183
 
183
184
 
184
185
  class NeighbouringSiteAddress(BaseModel):
@@ -493,6 +494,12 @@ class AppealHasCase1(BaseModel):
493
494
  """
494
495
  The date of the original LPA decision
495
496
  """
497
+ applicationDecisionDueDate: AwareDatetime | None = Field(
498
+ None, examples=["2023-07-27T20:30:00.000Z"]
499
+ )
500
+ """
501
+ The date that an application decision is due
502
+ """
496
503
  caseSubmissionDueDate: AwareDatetime | None = Field(
497
504
  ..., examples=["2023-07-27T20:30:00.000Z"]
498
505
  )
@@ -992,6 +999,12 @@ class AppealHasCase2(BaseModel):
992
999
  """
993
1000
  The date of the original LPA decision
994
1001
  """
1002
+ applicationDecisionDueDate: AwareDatetime | None = Field(
1003
+ None, examples=["2023-07-27T20:30:00.000Z"]
1004
+ )
1005
+ """
1006
+ The date that an application decision is due
1007
+ """
995
1008
  caseSubmissionDueDate: AwareDatetime | None = Field(
996
1009
  ..., examples=["2023-07-27T20:30:00.000Z"]
997
1010
  )
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-representation.schema.json
3
- # timestamp: 2026-02-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:41+00:00
3
+ # timestamp: 2026-02-19T12:13:41+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -179,6 +179,7 @@ class NotificationMethodEnum(Enum):
179
179
  notice = "notice"
180
180
  letter = "letter"
181
181
  advert = "advert"
182
+ not_notified = "not_notified"
182
183
 
183
184
 
184
185
  class NeighbouringSiteAddress(BaseModel):
@@ -645,6 +646,12 @@ class AppealS78Case1(BaseModel):
645
646
  """
646
647
  The date of the original LPA decision
647
648
  """
649
+ applicationDecisionDueDate: AwareDatetime | None = Field(
650
+ None, examples=["2023-07-27T20:30:00.000Z"]
651
+ )
652
+ """
653
+ The date that an application decision is due
654
+ """
648
655
  caseSubmissionDueDate: AwareDatetime | None = Field(
649
656
  ..., examples=["2023-07-27T20:30:00.000Z"]
650
657
  )
@@ -973,6 +980,12 @@ class AppealS78Case1(BaseModel):
973
980
  statementDueDate: AwareDatetime | None = Field(
974
981
  ..., examples=["2023-07-27T20:30:00.000Z"]
975
982
  )
983
+ caseManagementConferenceDate: AwareDatetime | None = Field(
984
+ None, examples=["2023-07-27T20:30:00.000Z"]
985
+ )
986
+ """
987
+ The date of the Case Management Conference (CMC)
988
+ """
976
989
  numberOfResidencesNetChange: float | None = None
977
990
  """
978
991
  The net gain in residences of the proposed development
@@ -1435,6 +1448,12 @@ class AppealS78Case2(BaseModel):
1435
1448
  """
1436
1449
  The date of the original LPA decision
1437
1450
  """
1451
+ applicationDecisionDueDate: AwareDatetime | None = Field(
1452
+ None, examples=["2023-07-27T20:30:00.000Z"]
1453
+ )
1454
+ """
1455
+ The date that an application decision is due
1456
+ """
1438
1457
  caseSubmissionDueDate: AwareDatetime | None = Field(
1439
1458
  ..., examples=["2023-07-27T20:30:00.000Z"]
1440
1459
  )
@@ -1763,6 +1782,12 @@ class AppealS78Case2(BaseModel):
1763
1782
  statementDueDate: AwareDatetime | None = Field(
1764
1783
  ..., examples=["2023-07-27T20:30:00.000Z"]
1765
1784
  )
1785
+ caseManagementConferenceDate: AwareDatetime | None = Field(
1786
+ None, examples=["2023-07-27T20:30:00.000Z"]
1787
+ )
1788
+ """
1789
+ The date of the Case Management Conference (CMC)
1790
+ """
1766
1791
  numberOfResidencesNetChange: float | None = None
1767
1792
  """
1768
1793
  The net gain in residences of the proposed development
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2026-02-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:41+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:41+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:40+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-16T16:31:41+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:40+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:40+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+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-16T16:31:40+00:00
3
+ # timestamp: 2026-02-19T12:13:41+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -381,6 +381,12 @@
381
381
  "examples": ["2023-07-27T20:30:00.000Z"],
382
382
  "description": "The date of the original LPA decision"
383
383
  },
384
+ "applicationDecisionDueDate": {
385
+ "type": ["string", "null"],
386
+ "format": "date-time",
387
+ "examples": ["2023-07-27T20:30:00.000Z"],
388
+ "description": "The date that an application decision is due"
389
+ },
384
390
  "caseSubmissionDueDate": {
385
391
  "type": ["string", "null"],
386
392
  "format": "date-time",
@@ -582,7 +588,7 @@
582
588
  "type": ["array", "null"],
583
589
  "items": {
584
590
  "type": "string",
585
- "enum": ["notice", "letter", "advert"]
591
+ "enum": ["notice", "letter", "advert", "not_notified"]
586
592
  },
587
593
  "examples": [["notice", "letter"], ["advert"]],
588
594
  "description": "The methods used to notify relevant parties"
@@ -491,6 +491,13 @@
491
491
  "description": "The date of the original LPA decision",
492
492
  "$comment": "Also available on HAS cases"
493
493
  },
494
+ "applicationDecisionDueDate": {
495
+ "type": ["string", "null"],
496
+ "format": "date-time",
497
+ "examples": ["2023-07-27T20:30:00.000Z"],
498
+ "description": "The date that an application decision is due",
499
+ "$comment": "Also available on HAS cases"
500
+ },
494
501
  "caseSubmissionDueDate": {
495
502
  "type": ["string", "null"],
496
503
  "format": "date-time",
@@ -603,7 +610,7 @@
603
610
  "type": ["array", "null"],
604
611
  "items": {
605
612
  "type": "string",
606
- "enum": ["notice", "letter", "advert"]
613
+ "enum": ["notice", "letter", "advert", "not_notified"]
607
614
  },
608
615
  "examples": [["notice", "letter"], ["advert"]],
609
616
  "description": "The methods used to notify relevant parties",
@@ -989,6 +996,12 @@
989
996
  "format": "date-time",
990
997
  "examples": ["2023-07-27T20:30:00.000Z"]
991
998
  },
999
+ "caseManagementConferenceDate": {
1000
+ "type": ["string", "null"],
1001
+ "format": "date-time",
1002
+ "examples": ["2023-07-27T20:30:00.000Z"],
1003
+ "description": "The date of the Case Management Conference (CMC)"
1004
+ },
992
1005
  "numberOfResidencesNetChange": {
993
1006
  "type": ["number", "null"],
994
1007
  "description": "The net gain in residences of the proposed development"
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "commands/appeals-components/lpa-questionnaire-enforcement-common.schema.json",
4
+ "title": "LPAQ Enforcement submission properties",
5
+ "description": "Schema defining any common enforcement specific properties for LPAQ submissions",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "noticeRelatesToBuildingEngineeringMiningOther",
10
+ "siteAreaSquareMetres",
11
+ "changeOfUseRefuseOrWaste",
12
+ "changeOfUseMineralExtraction",
13
+ "changeOfUseMineralStorage",
14
+ "relatesToErectionOfBuildingOrBuildings",
15
+ "relatesToBuildingWithAgriculturalPurpose",
16
+ "relatesToBuildingSingleDwellingHouse"
17
+ ],
18
+ "allOf": [
19
+ {
20
+ "properties": {
21
+ "noticeRelatesToBuildingEngineeringMiningOther": {
22
+ "type": ["boolean", "null"]
23
+ },
24
+ "siteAreaSquareMetres": {
25
+ "type": ["number", "null"],
26
+ "examples": [45.7],
27
+ "description": "The site area, in square meters"
28
+ },
29
+ "areaOfAllegedBreachInSquareMetres": {
30
+ "type": ["number", "null"],
31
+ "examples": [45.7],
32
+ "description": "Area of the alleged breach, in square meters"
33
+ },
34
+ "floorSpaceCreatedByBreachInSquareMetres": {
35
+ "type": ["number", "null"],
36
+ "examples": [45.7],
37
+ "description": "Floor space created by the breach, in square meters"
38
+ },
39
+ "changeOfUseRefuseOrWaste": {
40
+ "type": ["boolean", "null"]
41
+ },
42
+ "changeOfUseMineralExtraction": {
43
+ "type": ["boolean", "null"]
44
+ },
45
+ "changeOfUseMineralStorage": {
46
+ "type": ["boolean", "null"]
47
+ },
48
+ "relatesToErectionOfBuildingOrBuildings": {
49
+ "type": ["boolean", "null"]
50
+ },
51
+ "relatesToBuildingWithAgriculturalPurpose": {
52
+ "type": ["boolean", "null"]
53
+ },
54
+ "relatesToBuildingSingleDwellingHouse": {
55
+ "type": ["boolean", "null"]
56
+ }
57
+ }
58
+ }
59
+ ]
60
+ }
@@ -2,61 +2,13 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "commands/appeals-components/lpa-questionnaire-enforcement.schema.json",
4
4
  "title": "LPAQ Enforcement submission properties",
5
- "description": "Schema defining any enfrocement specific properties for LPAQ submissions",
5
+ "description": "Schema defining any enforcement specific properties for LPAQ submissions",
6
6
  "type": "object",
7
7
  "additionalProperties": true,
8
- "required": [
9
- "noticeRelatesToBuildingEngineeringMiningOther",
10
- "siteAreaSquareMetres",
11
- "changeOfUseRefuseOrWaste",
12
- "changeOfUseMineralExtraction",
13
- "changeOfUseMineralStorage",
14
- "relatesToErectionOfBuildingOrBuildings",
15
- "relatesToBuildingWithAgriculturalPurpose",
16
- "relatesToBuildingSingleDwellingHouse",
17
- "affectedTrunkRoadName",
18
- "isSiteOnCrownLand",
19
- "article4AffectedDevelopmentRights"
20
- ],
8
+ "required": ["affectedTrunkRoadName", "isSiteOnCrownLand", "article4AffectedDevelopmentRights"],
21
9
  "allOf": [
22
10
  {
23
11
  "properties": {
24
- "noticeRelatesToBuildingEngineeringMiningOther": {
25
- "type": ["boolean", "null"]
26
- },
27
- "siteAreaSquareMetres": {
28
- "type": ["number", "null"],
29
- "examples": [45.7],
30
- "description": "The site area, in square meters"
31
- },
32
- "areaOfAllegedBreachInSquareMetres": {
33
- "type": ["number", "null"],
34
- "examples": [45.7],
35
- "description": "Area of the alleged breach, in square meters"
36
- },
37
- "floorSpaceCreatedByBreachInSquareMetres": {
38
- "type": ["number", "null"],
39
- "examples": [45.7],
40
- "description": "Floor space created by the breach, in square meters"
41
- },
42
- "changeOfUseRefuseOrWaste": {
43
- "type": ["boolean", "null"]
44
- },
45
- "changeOfUseMineralExtraction": {
46
- "type": ["boolean", "null"]
47
- },
48
- "changeOfUseMineralStorage": {
49
- "type": ["boolean", "null"]
50
- },
51
- "relatesToErectionOfBuildingOrBuildings": {
52
- "type": ["boolean", "null"]
53
- },
54
- "relatesToBuildingWithAgriculturalPurpose": {
55
- "type": ["boolean", "null"]
56
- },
57
- "relatesToBuildingSingleDwellingHouse": {
58
- "type": ["boolean", "null"]
59
- },
60
12
  "affectedTrunkRoadName": {
61
13
  "type": ["string", "null"],
62
14
  "examples": ["Buckingham palace road"],