@planning-inspectorate/data-model 2.37.0 → 2.38.1

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 (39) hide show
  1. package/.azure/ci.yml +8 -0
  2. package/docs/appeal-s78.md +2 -2
  3. package/docs/nsip-project.md +1 -0
  4. package/package.json +1 -1
  5. package/pins_data_model/gen_models.py +1 -0
  6. package/pins_data_model/models/model_appeal_document.py +0 -1
  7. package/pins_data_model/models/model_appeal_event.py +0 -1
  8. package/pins_data_model/models/model_appeal_event_estimate.py +0 -1
  9. package/pins_data_model/models/model_appeal_has.py +0 -1
  10. package/pins_data_model/models/model_appeal_representation.py +0 -1
  11. package/pins_data_model/models/model_appeal_s78.py +0 -1
  12. package/pins_data_model/models/model_dart_response.py +0 -1
  13. package/pins_data_model/models/model_entraid.py +0 -1
  14. package/pins_data_model/models/model_folder.py +0 -1
  15. package/pins_data_model/models/model_gettimesheets_response.py +0 -1
  16. package/pins_data_model/models/model_listed_building.py +0 -1
  17. package/pins_data_model/models/model_listed_buildings.py +0 -1
  18. package/pins_data_model/models/model_nsip_document.py +0 -1
  19. package/pins_data_model/models/model_nsip_exam_timetable.py +0 -1
  20. package/pins_data_model/models/model_nsip_invoice.py +0 -1
  21. package/pins_data_model/models/model_nsip_meeting.py +0 -1
  22. package/pins_data_model/models/model_nsip_project.py +1 -1
  23. package/pins_data_model/models/model_nsip_project_update.py +0 -1
  24. package/pins_data_model/models/model_nsip_representation.py +0 -1
  25. package/pins_data_model/models/model_nsip_subscription.py +0 -1
  26. package/pins_data_model/models/model_pins_inspector.py +0 -1
  27. package/pins_data_model/models/model_pins_lpa.py +0 -1
  28. package/pins_data_model/models/model_s51_advice.py +0 -1
  29. package/pins_data_model/models/model_service_user.py +0 -1
  30. package/schemas/appeal-s78.schema.json +0 -1
  31. package/schemas/nsip-project.schema.json +1 -0
  32. package/src/enums.cjs +1 -0
  33. package/src/enums.d.ts +1 -0
  34. package/src/enums.js +1 -0
  35. package/src/index.cjs +1 -0
  36. package/src/schemas.d.ts +2 -1
  37. package/tests/appeals/appeal-s78.test.js +0 -1
  38. package/tests/appeals/expedited-appeals.test.js +1 -1
  39. package/pins_data_model/models/model_case_schedule.py +0 -11
package/.azure/ci.yml CHANGED
@@ -61,6 +61,14 @@ extends:
61
61
  parameters:
62
62
  nodeVersion: 22
63
63
  script: node --test
64
+ - script: |
65
+ set -e
66
+ python3 -m pip install -r requirements.txt
67
+ displayName: 'Install pip modules'
68
+ - script: |
69
+ set -e
70
+ python3 pins_data_model/gen_models.py
71
+ displayName: 'Generate Python models'
64
72
  - script: |
65
73
  git status --porcelain
66
74
  if [[ `git status --porcelain` ]]; then
@@ -45,7 +45,7 @@ any of
45
45
  | [lpaQuestionnaireValidationOutcomeDate](#lpaquestionnairevalidationoutcomedate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-lpaquestionnairevalidationoutcomedate.md "appeal-s78.schema.json#/properties/lpaQuestionnaireValidationOutcomeDate") |
46
46
  | [lpaQuestionnaireValidationDetails](#lpaquestionnairevalidationdetails) | `array` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-lpaquestionnairevalidationdetails.md "appeal-s78.schema.json#/properties/lpaQuestionnaireValidationDetails") |
47
47
  | [lpaStatement](#lpastatement) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-lpastatement.md "appeal-s78.schema.json#/properties/lpaStatement") |
48
- | [listOfDocumentsBeforeDecision](#listofdocumentsbeforedecision) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-listofdocumentsbeforedecision.md "appeal-s78.schema.json#/properties/listOfDocumentsBeforeDecision") |
48
+ | [listOfDocumentsBeforeDecision](#listofdocumentsbeforedecision) | `string` | Optional | can be null | [Appeal S78 Case](appeal-s78-properties-listofdocumentsbeforedecision.md "appeal-s78.schema.json#/properties/listOfDocumentsBeforeDecision") |
49
49
  | [caseWithdrawnDate](#casewithdrawndate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-casewithdrawndate.md "appeal-s78.schema.json#/properties/caseWithdrawnDate") |
50
50
  | [caseTransferredDate](#casetransferreddate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-casetransferreddate.md "appeal-s78.schema.json#/properties/caseTransferredDate") |
51
51
  | [transferredCaseClosedDate](#transferredcasecloseddate) | `string` | Required | can be null | [Appeal S78 Case](appeal-s78-properties-transferredcasecloseddate.md "appeal-s78.schema.json#/properties/transferredCaseClosedDate") |
@@ -1178,7 +1178,7 @@ Free text response from LPA listing documents used to drive their decision
1178
1178
 
1179
1179
  `listOfDocumentsBeforeDecision`
1180
1180
 
1181
- * is required
1181
+ * is optional
1182
1182
 
1183
1183
  * Type: `string`
1184
1184
 
@@ -398,6 +398,7 @@ Decision outcome: approved/refused/split-decision/granted/partially\_consented/q
398
398
  | `"BC07 - Sport"` | |
399
399
  | `"BC08 - Leisure"` | |
400
400
  | `"BC09 - Tourism"` | |
401
+ | `"BC10 - Data Centres"` | |
401
402
  | `"EN01 - Generating Stations"` | |
402
403
  | `"EN02 - Electric Lines"` | |
403
404
  | `"EN03 - Underground Gas Storage Facilities"` | |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.37.0",
3
+ "version": "2.38.1",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -45,6 +45,7 @@ def gen_models() -> None:
45
45
  use_field_description=True,
46
46
  target_python_version=PythonVersion.PY_311,
47
47
  use_schema_description=True,
48
+ disable_timestamp=True,
48
49
  )
49
50
 
50
51
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-document.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-event.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-event-estimate.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-has.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-representation.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-s78.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: entraid.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: folder.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: gettimesheets-response.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-building.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-buildings.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-document.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-exam-timetable.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-invoice.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-meeting.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -64,6 +63,7 @@ class ProjectType(Enum):
64
63
  BC07___Sport = "BC07 - Sport"
65
64
  BC08___Leisure = "BC08 - Leisure"
66
65
  BC09___Tourism = "BC09 - Tourism"
66
+ BC10___Data_Centres = "BC10 - Data Centres"
67
67
  EN01___Generating_Stations = "EN01 - Generating Stations"
68
68
  EN02___Electric_Lines = "EN02 - Electric Lines"
69
69
  EN03___Underground_Gas_Storage_Facilities = (
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project-update.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-representation.schema.json
3
- # timestamp: 2026-04-29T07:10:32+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-subscription.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-inspector.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-lpa.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: s51-advice.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: service-user.schema.json
3
- # timestamp: 2026-04-29T07:10:31+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -38,7 +38,6 @@
38
38
  "lpaQuestionnaireValidationOutcomeDate",
39
39
  "lpaQuestionnaireValidationDetails",
40
40
  "lpaStatement",
41
- "listOfDocumentsBeforeDecision",
42
41
  "caseWithdrawnDate",
43
42
  "caseTransferredDate",
44
43
  "transferredCaseClosedDate",
@@ -148,6 +148,7 @@
148
148
  "BC07 - Sport",
149
149
  "BC08 - Leisure",
150
150
  "BC09 - Tourism",
151
+ "BC10 - Data Centres",
151
152
  "EN01 - Generating Stations",
152
153
  "EN02 - Electric Lines",
153
154
  "EN03 - Underground Gas Storage Facilities",
package/src/enums.cjs CHANGED
@@ -608,6 +608,7 @@ const NSIP_PROJECT_TYPE = Object.freeze({
608
608
  BC_07_SPORT: 'BC07 - Sport',
609
609
  BC_08_LEISURE: 'BC08 - Leisure',
610
610
  BC_09_TOURISM: 'BC09 - Tourism',
611
+ BC_10_DATA_CENTRES: 'BC10 - Data Centres',
611
612
  EN_01_GENERATING_STATIONS: 'EN01 - Generating Stations',
612
613
  EN_02_ELECTRIC_LINES: 'EN02 - Electric Lines',
613
614
  EN_03_UNDERGROUND_GAS_STORAGE_FACILITIES: 'EN03 - Underground Gas Storage Facilities',
package/src/enums.d.ts CHANGED
@@ -606,6 +606,7 @@ export const NSIP_PROJECT_TYPE = {
606
606
  BC_07_SPORT: 'BC07 - Sport',
607
607
  BC_08_LEISURE: 'BC08 - Leisure',
608
608
  BC_09_TOURISM: 'BC09 - Tourism',
609
+ BC_10_DATA_CENTRES: 'BC10 - Data Centres',
609
610
  EN_01_GENERATING_STATIONS: 'EN01 - Generating Stations',
610
611
  EN_02_ELECTRIC_LINES: 'EN02 - Electric Lines',
611
612
  EN_03_UNDERGROUND_GAS_STORAGE_FACILITIES: 'EN03 - Underground Gas Storage Facilities',
package/src/enums.js CHANGED
@@ -606,6 +606,7 @@ export const NSIP_PROJECT_TYPE = Object.freeze({
606
606
  BC_07_SPORT: 'BC07 - Sport',
607
607
  BC_08_LEISURE: 'BC08 - Leisure',
608
608
  BC_09_TOURISM: 'BC09 - Tourism',
609
+ BC_10_DATA_CENTRES: 'BC10 - Data Centres',
609
610
  EN_01_GENERATING_STATIONS: 'EN01 - Generating Stations',
610
611
  EN_02_ELECTRIC_LINES: 'EN02 - Electric Lines',
611
612
  EN_03_UNDERGROUND_GAS_STORAGE_FACILITIES: 'EN03 - Underground Gas Storage Facilities',
package/src/index.cjs CHANGED
@@ -689,6 +689,7 @@ const NSIP_PROJECT_TYPE = Object.freeze({
689
689
  BC_07_SPORT: 'BC07 - Sport',
690
690
  BC_08_LEISURE: 'BC08 - Leisure',
691
691
  BC_09_TOURISM: 'BC09 - Tourism',
692
+ BC_10_DATA_CENTRES: 'BC10 - Data Centres',
692
693
  EN_01_GENERATING_STATIONS: 'EN01 - Generating Stations',
693
694
  EN_02_ELECTRIC_LINES: 'EN02 - Electric Lines',
694
695
  EN_03_UNDERGROUND_GAS_STORAGE_FACILITIES: 'EN03 - Underground Gas Storage Facilities',
package/src/schemas.d.ts CHANGED
@@ -1089,7 +1089,7 @@ export type AppealS78Case = (GridReference | SiteAddress) & {
1089
1089
  /**
1090
1090
  * Free text response from LPA listing documents used to drive their decision
1091
1091
  */
1092
- listOfDocumentsBeforeDecision: string | null;
1092
+ listOfDocumentsBeforeDecision?: string | null;
1093
1093
  /**
1094
1094
  * The date the appeal was withdrawn by the appellant
1095
1095
  */
@@ -2525,6 +2525,7 @@ export interface NSIPProject {
2525
2525
  | 'BC07 - Sport'
2526
2526
  | 'BC08 - Leisure'
2527
2527
  | 'BC09 - Tourism'
2528
+ | 'BC10 - Data Centres'
2528
2529
  | 'EN01 - Generating Stations'
2529
2530
  | 'EN02 - Electric Lines'
2530
2531
  | 'EN03 - Underground Gas Storage Facilities'
@@ -40,7 +40,6 @@ const appealS78 = {
40
40
  lpaQuestionnaireValidationOutcomeDate: null,
41
41
  lpaQuestionnaireValidationDetails: ['cupidatat dolore in', 'officia in nostrud non', 'eu amet velit labore aute'],
42
42
  lpaStatement: 'ipsum consectetur labore pariatur',
43
- listOfDocumentsBeforeDecision: null,
44
43
  caseWithdrawnDate: '1941-07-27T04:17:40.0Z',
45
44
  caseTransferredDate: null,
46
45
  transferredCaseClosedDate: null,
@@ -40,8 +40,8 @@ const expeditedAppealPayload = {
40
40
  lpaQuestionnaireValidationOutcomeDate: '2024-01-10T12:00:00.000Z',
41
41
  lpaQuestionnaireValidationDetails: null,
42
42
  lpaStatement: 'LPA Statement content',
43
- listOfDocumentsBeforeDecision: null,
44
43
  caseWithdrawnDate: null,
44
+ listOfDocumentsBeforeDecision: null,
45
45
  caseTransferredDate: null,
46
46
  transferredCaseClosedDate: null,
47
47
  caseDecisionOutcomeDate: null,
@@ -1,11 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: case-schedule.schema.json
3
- # timestamp: 2024-01-11T20:15:05+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from pydantic import BaseModel
8
-
9
-
10
- class CaseSchedule(BaseModel):
11
- pass