@planning-inspectorate/data-model 2.38.0 → 2.39.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 (41) hide show
  1. package/.azure/ci.yml +8 -0
  2. package/docs/README.md +2 -0
  3. package/docs/appeal-s78.md +2 -2
  4. package/docs/application-update.md +206 -0
  5. package/package.json +4 -4
  6. package/pins_data_model/gen_models.py +1 -0
  7. package/pins_data_model/models/model_appeal_document.py +0 -1
  8. package/pins_data_model/models/model_appeal_event.py +0 -1
  9. package/pins_data_model/models/model_appeal_event_estimate.py +0 -1
  10. package/pins_data_model/models/model_appeal_has.py +0 -1
  11. package/pins_data_model/models/model_appeal_representation.py +0 -1
  12. package/pins_data_model/models/model_appeal_s78.py +0 -1
  13. package/pins_data_model/models/model_application_update.py +55 -0
  14. package/pins_data_model/models/model_dart_response.py +0 -1
  15. package/pins_data_model/models/model_entraid.py +0 -1
  16. package/pins_data_model/models/model_folder.py +0 -1
  17. package/pins_data_model/models/model_gettimesheets_response.py +0 -1
  18. package/pins_data_model/models/model_listed_building.py +0 -1
  19. package/pins_data_model/models/model_listed_buildings.py +0 -1
  20. package/pins_data_model/models/model_nsip_document.py +0 -1
  21. package/pins_data_model/models/model_nsip_exam_timetable.py +0 -1
  22. package/pins_data_model/models/model_nsip_invoice.py +0 -1
  23. package/pins_data_model/models/model_nsip_meeting.py +0 -1
  24. package/pins_data_model/models/model_nsip_project.py +0 -1
  25. package/pins_data_model/models/model_nsip_project_update.py +0 -1
  26. package/pins_data_model/models/model_nsip_representation.py +0 -1
  27. package/pins_data_model/models/model_nsip_subscription.py +0 -1
  28. package/pins_data_model/models/model_pins_inspector.py +0 -1
  29. package/pins_data_model/models/model_pins_lpa.py +0 -1
  30. package/pins_data_model/models/model_s51_advice.py +0 -1
  31. package/pins_data_model/models/model_service_user.py +0 -1
  32. package/schemas/appeal-s78.schema.json +0 -1
  33. package/schemas/application-update.schema.json +52 -0
  34. package/src/enums.cjs +7 -0
  35. package/src/enums.d.ts +6 -0
  36. package/src/enums.js +6 -0
  37. package/src/index.cjs +7 -0
  38. package/src/schemas.d.ts +36 -1
  39. package/tests/appeals/appeal-s78.test.js +0 -1
  40. package/tests/appeals/expedited-appeals.test.js +1 -1
  41. 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
package/docs/README.md CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  * [Appeal S78 Case](./appeal-s78.md "Group B - Schema defining the metadata for an appeal") – `appeal-s78.schema.json`
16
16
 
17
+ * [Application Update Schema](./application-update.md "Application Update for Casework Project") – `application-update.schema.json`
18
+
17
19
  * [DaRT API response](./dart-response.md "Schema defining the data returned by the DaRT API") – `dart-response.schema.json`
18
20
 
19
21
  * [Entra ID User Objects](./entraid.md "A list of users from EntraID") – `entraid.schema.json`
@@ -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
 
@@ -0,0 +1,206 @@
1
+ ## Application Update Schema Type
2
+
3
+ `object` ([Application Update Schema](application-update.md))
4
+
5
+ # Application Update Schema Properties
6
+
7
+ | Property | Type | Required | Nullable | Defined by |
8
+ | :-------------------------------------------------- | :------- | :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
9
+ | [id](#id) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-id.md "application-update.schema.json#/properties/id") |
10
+ | [caseReference](#casereference) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-casereference.md "application-update.schema.json#/properties/caseReference") |
11
+ | [caseId](#caseid) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-caseid.md "application-update.schema.json#/properties/caseId") |
12
+ | [caseType](#casetype) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-casetype.md "application-update.schema.json#/properties/caseType") |
13
+ | [applicationUpdateStatus](#applicationupdatestatus) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-applicationupdatestatus.md "application-update.schema.json#/properties/applicationUpdateStatus") |
14
+ | [details](#details) | `string` | Required | cannot be null | [Application Update Schema](application-update-properties-details.md "application-update.schema.json#/properties/details") |
15
+ | [firstPublished](#firstpublished) | `string` | Optional | can be null | [Application Update Schema](application-update-properties-firstpublished.md "application-update.schema.json#/properties/firstPublished") |
16
+ | [unpublishedDate](#unpublisheddate) | `string` | Optional | can be null | [Application Update Schema](application-update-properties-unpublisheddate.md "application-update.schema.json#/properties/unpublishedDate") |
17
+ | [lastEdited](#lastedited) | `string` | Optional | can be null | [Application Update Schema](application-update-properties-lastedited.md "application-update.schema.json#/properties/lastEdited") |
18
+ | Additional Properties | Any | Optional | can be null | |
19
+
20
+ ## id
21
+
22
+ Primary key
23
+
24
+ `id`
25
+
26
+ * is required
27
+
28
+ * Type: `string`
29
+
30
+ * cannot be null
31
+
32
+ * defined in: [Application Update Schema](application-update-properties-id.md "application-update.schema.json#/properties/id")
33
+
34
+ ### id Type
35
+
36
+ `string`
37
+
38
+ ## caseReference
39
+
40
+ Business Key for the related case
41
+
42
+ `caseReference`
43
+
44
+ * is required
45
+
46
+ * Type: `string`
47
+
48
+ * cannot be null
49
+
50
+ * defined in: [Application Update Schema](application-update-properties-casereference.md "application-update.schema.json#/properties/caseReference")
51
+
52
+ ### caseReference Type
53
+
54
+ `string`
55
+
56
+ ## caseId
57
+
58
+ The unique ID for the case this Application Update belongs to.
59
+
60
+ `caseId`
61
+
62
+ * is required
63
+
64
+ * Type: `string`
65
+
66
+ * cannot be null
67
+
68
+ * defined in: [Application Update Schema](application-update-properties-caseid.md "application-update.schema.json#/properties/caseId")
69
+
70
+ ### caseId Type
71
+
72
+ `string`
73
+
74
+ ## caseType
75
+
76
+ The type of case this Application Update is for.
77
+
78
+ `caseType`
79
+
80
+ * is required
81
+
82
+ * Type: `string`
83
+
84
+ * cannot be null
85
+
86
+ * defined in: [Application Update Schema](application-update-properties-casetype.md "application-update.schema.json#/properties/caseType")
87
+
88
+ ### caseType Type
89
+
90
+ `string`
91
+
92
+ ## applicationUpdateStatus
93
+
94
+ Application Update Status. Name displayed to users, e.g. Draft
95
+
96
+ `applicationUpdateStatus`
97
+
98
+ * is required
99
+
100
+ * Type: `string`
101
+
102
+ * cannot be null
103
+
104
+ * defined in: [Application Update Schema](application-update-properties-applicationupdatestatus.md "application-update.schema.json#/properties/applicationUpdateStatus")
105
+
106
+ ### applicationUpdateStatus Type
107
+
108
+ `string`
109
+
110
+ ### applicationUpdateStatus Constraints
111
+
112
+ **enum**: the value of this property must be equal to one of the following values:
113
+
114
+ | Value | Explanation |
115
+ | :-------------- | :---------- |
116
+ | `"Draft"` | |
117
+ | `"Published"` | |
118
+ | `"Unpublished"` | |
119
+
120
+ ## details
121
+
122
+ Application Update text description.
123
+
124
+ `details`
125
+
126
+ * is required
127
+
128
+ * Type: `string`
129
+
130
+ * cannot be null
131
+
132
+ * defined in: [Application Update Schema](application-update-properties-details.md "application-update.schema.json#/properties/details")
133
+
134
+ ### details Type
135
+
136
+ `string`
137
+
138
+ ## firstPublished
139
+
140
+
141
+
142
+ `firstPublished`
143
+
144
+ * is optional
145
+
146
+ * Type: `string`
147
+
148
+ * can be null
149
+
150
+ * defined in: [Application Update Schema](application-update-properties-firstpublished.md "application-update.schema.json#/properties/firstPublished")
151
+
152
+ ### firstPublished Type
153
+
154
+ `string`
155
+
156
+ ### firstPublished Constraints
157
+
158
+ **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")
159
+
160
+ ## unpublishedDate
161
+
162
+
163
+
164
+ `unpublishedDate`
165
+
166
+ * is optional
167
+
168
+ * Type: `string`
169
+
170
+ * can be null
171
+
172
+ * defined in: [Application Update Schema](application-update-properties-unpublisheddate.md "application-update.schema.json#/properties/unpublishedDate")
173
+
174
+ ### unpublishedDate Type
175
+
176
+ `string`
177
+
178
+ ### unpublishedDate Constraints
179
+
180
+ **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")
181
+
182
+ ## lastEdited
183
+
184
+
185
+
186
+ `lastEdited`
187
+
188
+ * is optional
189
+
190
+ * Type: `string`
191
+
192
+ * can be null
193
+
194
+ * defined in: [Application Update Schema](application-update-properties-lastedited.md "application-update.schema.json#/properties/lastEdited")
195
+
196
+ ### lastEdited Type
197
+
198
+ `string`
199
+
200
+ ### lastEdited Constraints
201
+
202
+ **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")
203
+
204
+ ## Additional Properties
205
+
206
+ Additional properties are allowed and do not have to follow a specific schema
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.38.0",
3
+ "version": "2.39.0",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -30,8 +30,8 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@adobe/jsonschema2md": "^8.0.3",
33
- "@commitlint/cli": "^20.1.0",
34
- "@commitlint/config-conventional": "^20.0.0",
33
+ "@commitlint/cli": "^21.0.0",
34
+ "@commitlint/config-conventional": "^21.0.0",
35
35
  "@eslint/js": "^10.0.1",
36
36
  "ajv": "^8.17.1",
37
37
  "ajv-formats": "^3.0.1",
@@ -41,7 +41,7 @@
41
41
  "globals": "^17.3.0",
42
42
  "husky": "^9.1.7",
43
43
  "json-schema-to-typescript": "^15.0.4",
44
- "lint-staged": "^16.1.2",
44
+ "lint-staged": "^17.0.4",
45
45
  "lodash.snakecase": "^4.1.1",
46
46
  "prettier": "^3.6.2",
47
47
  "rollup": "^4.44.2",
@@ -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-30T10:24:14+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-30T10:24:14+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-30T10:24:14+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-30T10:24:13+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-30T10:24:14+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-30T10:24:14+00:00
4
3
 
5
4
  from __future__ import annotations
6
5
 
@@ -0,0 +1,55 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: application-update.schema.json
3
+
4
+ from __future__ import annotations
5
+
6
+ from enum import Enum
7
+
8
+ from pydantic import AwareDatetime, BaseModel, ConfigDict, Field
9
+
10
+
11
+ class ApplicationUpdateStatus(Enum):
12
+ """
13
+ Application Update Status. Name displayed to users, e.g. Draft
14
+ """
15
+
16
+ Draft = "Draft"
17
+ Published = "Published"
18
+ Unpublished = "Unpublished"
19
+
20
+
21
+ class ApplicationUpdateSchema(BaseModel):
22
+ """
23
+ Application Update for Casework Project
24
+ """
25
+
26
+ model_config = ConfigDict(
27
+ extra="allow",
28
+ )
29
+ id: str = Field(..., examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"])
30
+ """
31
+ Primary key
32
+ """
33
+ caseReference: str = Field(..., examples=["CROWN/2025/12345"])
34
+ """
35
+ Business Key for the related case
36
+ """
37
+ caseId: str = Field(..., examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"])
38
+ """
39
+ The unique ID for the case this Application Update belongs to.
40
+ """
41
+ caseType: str = Field(..., examples=["Crown Development Application"])
42
+ """
43
+ The type of case this Application Update is for.
44
+ """
45
+ applicationUpdateStatus: ApplicationUpdateStatus
46
+ """
47
+ Application Update Status. Name displayed to users, e.g. Draft
48
+ """
49
+ details: str
50
+ """
51
+ Application Update text description.
52
+ """
53
+ firstPublished: AwareDatetime | None = None
54
+ unpublishedDate: AwareDatetime | None = None
55
+ lastEdited: AwareDatetime | None = None
@@ -1,6 +1,5 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2026-04-30T10:24:14+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-30T10:24:14+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-30T10:24:13+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-30T10:24:14+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-30T10:24:13+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-30T10:24:14+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-30T10:24:13+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-30T10:24:14+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-30T10:24:14+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-30T10:24:14+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-30T10:24:14+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-update.schema.json
3
- # timestamp: 2026-04-30T10:24:14+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-30T10:24:14+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-30T10:24:14+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-30T10:24:13+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-30T10:24:14+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-30T10:24:14+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-30T10:24:14+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",
@@ -0,0 +1,52 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "application-update.schema.json",
4
+ "title": "Application Update Schema",
5
+ "description": "Application Update for Casework Project",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["id", "caseReference", "caseId", "caseType", "applicationUpdateStatus", "details"],
9
+ "properties": {
10
+ "id": {
11
+ "type": "string",
12
+ "description": "Primary key",
13
+ "example": "AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"
14
+ },
15
+ "caseReference": {
16
+ "type": "string",
17
+ "description": "Business Key for the related case",
18
+ "example": "CROWN/2025/12345"
19
+ },
20
+ "caseId": {
21
+ "type": "string",
22
+ "description": "The unique ID for the case this Application Update belongs to.",
23
+ "example": "AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"
24
+ },
25
+ "caseType": {
26
+ "type": "string",
27
+ "description": "The type of case this Application Update is for.",
28
+ "example": "Crown Development Application"
29
+ },
30
+ "applicationUpdateStatus": {
31
+ "type": "string",
32
+ "description": "Application Update Status. Name displayed to users, e.g. Draft",
33
+ "enum": ["Draft", "Published", "Unpublished"]
34
+ },
35
+ "details": {
36
+ "type": "string",
37
+ "description": "Application Update text description."
38
+ },
39
+ "firstPublished": {
40
+ "type": ["string", "null"],
41
+ "format": "date-time"
42
+ },
43
+ "unpublishedDate": {
44
+ "type": ["string", "null"],
45
+ "format": "date-time"
46
+ },
47
+ "lastEdited": {
48
+ "type": ["string", "null"],
49
+ "format": "date-time"
50
+ }
51
+ }
52
+ }
package/src/enums.cjs CHANGED
@@ -436,6 +436,12 @@ const APPEAL_VIRUS_CHECK_STATUS = Object.freeze({
436
436
  SCANNED: 'scanned',
437
437
  });
438
438
 
439
+ const APPLICATION_UPDATE_STATUS = Object.freeze({
440
+ DRAFT: 'Draft',
441
+ PUBLISHED: 'Published',
442
+ UNPUBLISHED: 'Unpublished',
443
+ });
444
+
439
445
  const CASE_STAGE = Object.freeze({
440
446
  0: '0',
441
447
  ACCEPTANCE: 'acceptance',
@@ -852,6 +858,7 @@ exports.APPEAL_SOURCE = APPEAL_SOURCE;
852
858
  exports.APPEAL_SOURCE_SYSTEM = APPEAL_SOURCE_SYSTEM;
853
859
  exports.APPEAL_TYPE_OF_PLANNING_APPLICATION = APPEAL_TYPE_OF_PLANNING_APPLICATION;
854
860
  exports.APPEAL_VIRUS_CHECK_STATUS = APPEAL_VIRUS_CHECK_STATUS;
861
+ exports.APPLICATION_UPDATE_STATUS = APPLICATION_UPDATE_STATUS;
855
862
  exports.CASE_STAGE = CASE_STAGE;
856
863
  exports.MESSAGE_EVENT_TYPE = MESSAGE_EVENT_TYPE;
857
864
  exports.METHOD = METHOD;
package/src/enums.d.ts CHANGED
@@ -434,6 +434,12 @@ export const APPEAL_VIRUS_CHECK_STATUS = {
434
434
  SCANNED: 'scanned',
435
435
  } as const;
436
436
 
437
+ export const APPLICATION_UPDATE_STATUS = {
438
+ DRAFT: 'Draft',
439
+ PUBLISHED: 'Published',
440
+ UNPUBLISHED: 'Unpublished',
441
+ } as const;
442
+
437
443
  export const CASE_STAGE = {
438
444
  0: '0',
439
445
  ACCEPTANCE: 'acceptance',
package/src/enums.js CHANGED
@@ -434,6 +434,12 @@ export const APPEAL_VIRUS_CHECK_STATUS = Object.freeze({
434
434
  SCANNED: 'scanned',
435
435
  });
436
436
 
437
+ export const APPLICATION_UPDATE_STATUS = Object.freeze({
438
+ DRAFT: 'Draft',
439
+ PUBLISHED: 'Published',
440
+ UNPUBLISHED: 'Unpublished',
441
+ });
442
+
437
443
  export const CASE_STAGE = Object.freeze({
438
444
  0: '0',
439
445
  ACCEPTANCE: 'acceptance',
package/src/index.cjs CHANGED
@@ -517,6 +517,12 @@ const APPEAL_VIRUS_CHECK_STATUS = Object.freeze({
517
517
  SCANNED: 'scanned',
518
518
  });
519
519
 
520
+ const APPLICATION_UPDATE_STATUS = Object.freeze({
521
+ DRAFT: 'Draft',
522
+ PUBLISHED: 'Published',
523
+ UNPUBLISHED: 'Unpublished',
524
+ });
525
+
520
526
  const CASE_STAGE = Object.freeze({
521
527
  0: '0',
522
528
  ACCEPTANCE: 'acceptance',
@@ -965,6 +971,7 @@ exports.APPEAL_SOURCE = APPEAL_SOURCE;
965
971
  exports.APPEAL_SOURCE_SYSTEM = APPEAL_SOURCE_SYSTEM;
966
972
  exports.APPEAL_TYPE_OF_PLANNING_APPLICATION = APPEAL_TYPE_OF_PLANNING_APPLICATION;
967
973
  exports.APPEAL_VIRUS_CHECK_STATUS = APPEAL_VIRUS_CHECK_STATUS;
974
+ exports.APPLICATION_UPDATE_STATUS = APPLICATION_UPDATE_STATUS;
968
975
  exports.CASE_STAGE = CASE_STAGE;
969
976
  exports.MESSAGE_EVENT_TYPE = MESSAGE_EVENT_TYPE;
970
977
  exports.METHOD = METHOD;
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
  */
@@ -1750,6 +1750,40 @@ export interface SiteAddress {
1750
1750
  siteAddressPostcode: string;
1751
1751
  }
1752
1752
 
1753
+ /**
1754
+ * Application Update for Casework Project
1755
+ */
1756
+ export interface ApplicationUpdateSchema {
1757
+ /**
1758
+ * Primary key
1759
+ */
1760
+ id: string;
1761
+ /**
1762
+ * Business Key for the related case
1763
+ */
1764
+ caseReference: string;
1765
+ /**
1766
+ * The unique ID for the case this Application Update belongs to.
1767
+ */
1768
+ caseId: string;
1769
+ /**
1770
+ * The type of case this Application Update is for.
1771
+ */
1772
+ caseType: string;
1773
+ /**
1774
+ * Application Update Status. Name displayed to users, e.g. Draft
1775
+ */
1776
+ applicationUpdateStatus: 'Draft' | 'Published' | 'Unpublished';
1777
+ /**
1778
+ * Application Update text description.
1779
+ */
1780
+ details: string;
1781
+ firstPublished?: string | null;
1782
+ unpublishedDate?: string | null;
1783
+ lastEdited?: string | null;
1784
+ [k: string]: unknown;
1785
+ }
1786
+
1753
1787
  /**
1754
1788
  * Schema defining the data returned by the DaRT API
1755
1789
  */
@@ -5131,6 +5165,7 @@ export type SchemaMap = {
5131
5165
  'appeal-has.schema.json': AppealHASCase;
5132
5166
  'appeal-representation.schema.json': AppealRepresentation;
5133
5167
  'appeal-s78.schema.json': AppealS78Case;
5168
+ 'application-update.schema.json': ApplicationUpdateSchema;
5134
5169
  'dart-response.schema.json': DaRTAPIResponse;
5135
5170
  'entraid.schema.json': EntraIDUserObjects;
5136
5171
  'folder.schema.json': Folder;
@@ -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