@planning-inspectorate/data-model 2.52.0 → 2.54.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.
- package/.azure/ci.yml +6 -6
- package/.azure/release.yml +2 -2
- package/docs/README.md +9 -5
- package/docs/appeal-document.md +1 -0
- package/docs/appeal-has.md +17 -15
- package/docs/appeal-s78.md +63 -19
- package/docs/applications-crowndev-application-defs-address.md +108 -0
- package/docs/applications-crowndev-application-defs-contact.md +99 -0
- package/docs/applications-crowndev-application-defs-organisation.md +117 -0
- package/docs/applications-crowndev-application-defs.md +3 -0
- package/docs/applications-crowndev-application.md +2257 -0
- package/docs/applications-notify-email-defs-contact.md +1 -0
- package/docs/applications-notify-email.md +1 -0
- package/docs/applications-representation-defs-contact.md +1 -0
- package/docs/applications-representation.md +5 -0
- package/package.json +1 -1
- package/pins_data_model/models/model_appeal_document.py +1 -0
- package/pins_data_model/models/model_appeal_has.py +2 -0
- package/pins_data_model/models/model_appeal_s78.py +118 -4
- package/pins_data_model/models/model_applications_crowndev_application.py +525 -0
- package/pins_data_model/models/model_applications_notify_email.py +1 -0
- package/pins_data_model/models/model_applications_representation.py +5 -0
- package/schemas/appeal-document.schema.json +1 -0
- package/schemas/appeal-has.schema.json +3 -1
- package/schemas/appeal-s78.schema.json +43 -1
- package/schemas/{applications-application.schema.json → applications-crowndev-application.schema.json} +11 -9
- package/schemas/applications-notify-email.schema.json +2 -2
- package/schemas/applications-representation.schema.json +6 -5
- package/src/enums.cjs +5 -0
- package/src/enums.d.ts +5 -0
- package/src/enums.js +5 -0
- package/src/index.cjs +5 -0
- package/src/schemas.d.ts +66 -47
- package/tests/appeals/appeal-has.test.js +41 -0
- package/tests/appeals/appeal-s78.test.js +41 -0
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: applications-crowndev-application.schema.json
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from enum import Enum, StrEnum
|
|
7
|
+
|
|
8
|
+
from pydantic import AwareDatetime, BaseModel, ConfigDict, Field
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Type(StrEnum):
|
|
12
|
+
"""
|
|
13
|
+
Type of application. Name displayed to users
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
Planning_permission = "Planning permission"
|
|
17
|
+
Outline_planning_permission_with_some_matters_reserved = (
|
|
18
|
+
"Outline planning permission with some matters reserved"
|
|
19
|
+
)
|
|
20
|
+
Outline_planning_permission_with_all_matters_reserved = (
|
|
21
|
+
"Outline planning permission with all matters reserved"
|
|
22
|
+
)
|
|
23
|
+
Approval_of_reserved_matters_following_outline_approval = (
|
|
24
|
+
"Approval of reserved matters following outline approval"
|
|
25
|
+
)
|
|
26
|
+
Planning_permission_and_listed_building_consent__LBC__for_alterations__extension_or_demolition_of_a_listed_building = "Planning permission and listed building consent (LBC) for alterations, extension or demolition of a listed building"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SubType(Enum):
|
|
30
|
+
"""
|
|
31
|
+
SubType applies to Planning permissions and LBC
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
Planning_permission = "Planning permission"
|
|
35
|
+
Listed_building_consent__LBC_ = "Listed building consent (LBC)"
|
|
36
|
+
NoneType_None = None
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ApplicationStatus(StrEnum):
|
|
40
|
+
"""
|
|
41
|
+
Current status of the case (enum)
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
New = "New"
|
|
45
|
+
Accepted = "Accepted"
|
|
46
|
+
Invalid = "Invalid"
|
|
47
|
+
Consultation_period_open = "Consultation period open"
|
|
48
|
+
Hearing_Inquiry_date_set = "Hearing/Inquiry date set"
|
|
49
|
+
Application_on_hold_awaiting_further_information = (
|
|
50
|
+
"Application on hold awaiting further information"
|
|
51
|
+
)
|
|
52
|
+
Report_awaited = "Report awaited"
|
|
53
|
+
Report_sent_to_Decision_Branch = "Report sent to Decision Branch"
|
|
54
|
+
Decision_awaited = "Decision awaited"
|
|
55
|
+
Decided = "Decided"
|
|
56
|
+
Withdrawn = "Withdrawn"
|
|
57
|
+
Declined_to_determine = "Declined to determine"
|
|
58
|
+
Closed___invalid = "Closed - invalid"
|
|
59
|
+
Closed___opened_in_error = "Closed - opened in error"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class ApplicationStage(Enum):
|
|
63
|
+
"""
|
|
64
|
+
Current stage of the case (enum)
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
Accepted = "Accepted"
|
|
68
|
+
Consultation = "Consultation"
|
|
69
|
+
Procedure_choice = "Procedure choice"
|
|
70
|
+
Written_representations = "Written representations"
|
|
71
|
+
Inquiry = "Inquiry"
|
|
72
|
+
Hearing_Inquiry_date_set = "Hearing/Inquiry date set"
|
|
73
|
+
Final_decision = "Final decision"
|
|
74
|
+
NoneType_None = None
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class Category(Enum):
|
|
78
|
+
"""
|
|
79
|
+
Application category (enum)
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
Major_Development = "Major Development"
|
|
83
|
+
Buildings_over_1000_square_metres = "Buildings over 1000 square metres"
|
|
84
|
+
Development_of_a_site_above_1_hectare = "Development of a site above 1 hectare"
|
|
85
|
+
Dwellings_numbering_10_or_more = "Dwellings numbering 10 or more"
|
|
86
|
+
Dwellings_of_0_5_hectare_or_more = "Dwellings of 0.5 hectare or more"
|
|
87
|
+
Minerals = "Minerals"
|
|
88
|
+
Waste = "Waste"
|
|
89
|
+
Non_Major_Development = "Non-Major Development"
|
|
90
|
+
Buildings_less_than_1000_square_metres = "Buildings less than 1000 square metres"
|
|
91
|
+
Development_of_a_site_less_than_1_hectare = (
|
|
92
|
+
"Development of a site less than 1 hectare"
|
|
93
|
+
)
|
|
94
|
+
Dwellings_numbering_between_1_and_9 = "Dwellings numbering between 1 and 9"
|
|
95
|
+
Dwellings_of_less_than_0_5_hectare = "Dwellings of less than 0.5 hectare"
|
|
96
|
+
Change_of_use = "Change of use"
|
|
97
|
+
Relevant_demolition = "Relevant demolition"
|
|
98
|
+
Other = "Other"
|
|
99
|
+
Listed_building_consent_to_alter_extend = "Listed building consent to alter/extend"
|
|
100
|
+
Listed_building_consent_to_demolish = "Listed building consent to demolish"
|
|
101
|
+
NoneType_None = None
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class DecisionOutcome(Enum):
|
|
105
|
+
"""
|
|
106
|
+
As displayed to users
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
Approved = "Approved"
|
|
110
|
+
Approved_with_conditions = "Approved with conditions"
|
|
111
|
+
Refused = "Refused"
|
|
112
|
+
Withdrawn = "Withdrawn"
|
|
113
|
+
NoneType_None = None
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class EiaScreeningOutcome(Enum):
|
|
117
|
+
"""
|
|
118
|
+
What was the outcome of the Environmental Impact Assessment
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
required = "required"
|
|
122
|
+
not_required = "not required"
|
|
123
|
+
NoneType_None = None
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class Procedure(Enum):
|
|
127
|
+
"""
|
|
128
|
+
Name displayed to users
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
Written_Representations = "Written Representations"
|
|
132
|
+
Hearing = "Hearing"
|
|
133
|
+
Inquiry = "Inquiry"
|
|
134
|
+
NoneType_None = None
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class ContactRoleType(StrEnum):
|
|
138
|
+
"""
|
|
139
|
+
Agent or Applicant details
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
agent = "agent"
|
|
143
|
+
applicant = "applicant"
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class ContactPreference(Enum):
|
|
147
|
+
email = "email"
|
|
148
|
+
post = "post"
|
|
149
|
+
NoneType_None = None
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class Contact(BaseModel):
|
|
153
|
+
model_config = ConfigDict(
|
|
154
|
+
extra="allow",
|
|
155
|
+
)
|
|
156
|
+
contactId: str = Field(..., examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"])
|
|
157
|
+
"""
|
|
158
|
+
Source PK for Contact
|
|
159
|
+
"""
|
|
160
|
+
contactPreference: ContactPreference | None = Field(None, examples=["email"])
|
|
161
|
+
writtenRepOrgName: str | None = None
|
|
162
|
+
"""
|
|
163
|
+
Organisation Name used for written-representation on behalf of an organisation
|
|
164
|
+
"""
|
|
165
|
+
writtenRepJobTitleorRole: str | None = None
|
|
166
|
+
"""
|
|
167
|
+
Job Title or Role used for written-representation on behalf of an organisation
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
class Address(BaseModel):
|
|
172
|
+
model_config = ConfigDict(
|
|
173
|
+
extra="allow",
|
|
174
|
+
)
|
|
175
|
+
line1: str | None = None
|
|
176
|
+
line2: str | None = None
|
|
177
|
+
townCity: str | None = None
|
|
178
|
+
county: str | None = None
|
|
179
|
+
postcode: str
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
class Organisation(BaseModel):
|
|
183
|
+
model_config = ConfigDict(
|
|
184
|
+
extra="allow",
|
|
185
|
+
)
|
|
186
|
+
contactRoleType: ContactRoleType = Field(..., examples=["agent"])
|
|
187
|
+
"""
|
|
188
|
+
Agent or Applicant details
|
|
189
|
+
"""
|
|
190
|
+
organisationId: str = Field(..., examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"])
|
|
191
|
+
"""
|
|
192
|
+
Source PK for Organisation
|
|
193
|
+
"""
|
|
194
|
+
organisationName: str | None = None
|
|
195
|
+
organisationAddress: list[Address] | None = None
|
|
196
|
+
contacts: list[Contact] | None = None
|
|
197
|
+
"""
|
|
198
|
+
An Organisation may be linked to one or more Contacts
|
|
199
|
+
"""
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
class CrownDevelopmentApplication(BaseModel):
|
|
203
|
+
"""
|
|
204
|
+
Main application details for Crown Development Project
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
model_config = ConfigDict(
|
|
208
|
+
extra="allow",
|
|
209
|
+
)
|
|
210
|
+
id: str = Field(..., examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"])
|
|
211
|
+
"""
|
|
212
|
+
Internal Identifier UUID
|
|
213
|
+
"""
|
|
214
|
+
reference: str = Field(..., examples=["CROWN/2025/12345"])
|
|
215
|
+
"""
|
|
216
|
+
External Identifier: CROWN/YYYY/XXXXXXX
|
|
217
|
+
"""
|
|
218
|
+
createdDate: AwareDatetime
|
|
219
|
+
"""
|
|
220
|
+
Date the case was created
|
|
221
|
+
"""
|
|
222
|
+
updatedDate: AwareDatetime | None = None
|
|
223
|
+
"""
|
|
224
|
+
Date the case was updated
|
|
225
|
+
"""
|
|
226
|
+
type: Type = Field(
|
|
227
|
+
..., examples=["Outline planning permission with some matters reserved"]
|
|
228
|
+
)
|
|
229
|
+
"""
|
|
230
|
+
Type of application. Name displayed to users
|
|
231
|
+
"""
|
|
232
|
+
subType: SubType | None = Field(None, examples=["Listed building consent (LBC)"])
|
|
233
|
+
"""
|
|
234
|
+
SubType applies to Planning permissions and LBC
|
|
235
|
+
"""
|
|
236
|
+
linkedParentId: str | None = Field(
|
|
237
|
+
None, examples=["AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"]
|
|
238
|
+
)
|
|
239
|
+
"""
|
|
240
|
+
Self-referencial for parent to children relationship
|
|
241
|
+
"""
|
|
242
|
+
description: str | None = None
|
|
243
|
+
"""
|
|
244
|
+
Description of the project
|
|
245
|
+
"""
|
|
246
|
+
primaryLPACode: str | None = Field(None, examples=["Z0116"])
|
|
247
|
+
"""
|
|
248
|
+
Primary Planning Body code
|
|
249
|
+
"""
|
|
250
|
+
secondaryLPACode: str | None = Field(None, examples=["Z0116"])
|
|
251
|
+
"""
|
|
252
|
+
Secondary LPAs when project overlaps authorities
|
|
253
|
+
"""
|
|
254
|
+
hasAgent: bool
|
|
255
|
+
"""
|
|
256
|
+
Is an agent assigned to the case on behalf of the applicant
|
|
257
|
+
"""
|
|
258
|
+
organisations: list[Organisation] | None = None
|
|
259
|
+
"""
|
|
260
|
+
Applications can have one or more organisaitons associated with them.
|
|
261
|
+
"""
|
|
262
|
+
siteAddress: list[Address] | None = None
|
|
263
|
+
"""
|
|
264
|
+
Site Address details
|
|
265
|
+
"""
|
|
266
|
+
siteEasting: str | None = Field(None, examples=["216600"])
|
|
267
|
+
"""
|
|
268
|
+
Easting of the site, if known
|
|
269
|
+
"""
|
|
270
|
+
siteNorthing: str | None = Field(None, examples=["771200"])
|
|
271
|
+
"""
|
|
272
|
+
Northing of the site, if known
|
|
273
|
+
"""
|
|
274
|
+
siteArea: float | None = Field(None, examples=[4.44])
|
|
275
|
+
"""
|
|
276
|
+
Site area in hectares
|
|
277
|
+
"""
|
|
278
|
+
expectedDateOfSubmission: AwareDatetime | None = None
|
|
279
|
+
"""
|
|
280
|
+
Date case officer expects the application to be submitted (NB: cases are created before document submissions as applicants upload directly)
|
|
281
|
+
"""
|
|
282
|
+
applicationStatus: ApplicationStatus | None = None
|
|
283
|
+
"""
|
|
284
|
+
Current status of the case (enum)
|
|
285
|
+
"""
|
|
286
|
+
applicationStage: ApplicationStage | None = None
|
|
287
|
+
"""
|
|
288
|
+
Current stage of the case (enum)
|
|
289
|
+
"""
|
|
290
|
+
nationallyImportant: bool | None = None
|
|
291
|
+
"""
|
|
292
|
+
Site is nationally important (Yes/No)
|
|
293
|
+
"""
|
|
294
|
+
nationallyImportantConfirmationDate: AwareDatetime | None = None
|
|
295
|
+
"""
|
|
296
|
+
Date the application's national importance was confirmed
|
|
297
|
+
"""
|
|
298
|
+
notNationallyImportantEmailSent: bool | None = None
|
|
299
|
+
"""
|
|
300
|
+
Flags if a notNationallyImportant email has been sent
|
|
301
|
+
"""
|
|
302
|
+
containsDistressingContent: bool | None = None
|
|
303
|
+
"""
|
|
304
|
+
Highlights the cases as containing distressing content
|
|
305
|
+
"""
|
|
306
|
+
lpaReference: str | None = None
|
|
307
|
+
"""
|
|
308
|
+
LPA cross reference. Reference number for the case as known by the Local Planning Authority (LPA)
|
|
309
|
+
"""
|
|
310
|
+
category: Category | None = None
|
|
311
|
+
"""
|
|
312
|
+
Application category (enum)
|
|
313
|
+
"""
|
|
314
|
+
isGreenBelt: bool | None = None
|
|
315
|
+
"""
|
|
316
|
+
Is the site in green belt land
|
|
317
|
+
"""
|
|
318
|
+
healthAndSafetyIssue: bool | None = None
|
|
319
|
+
"""
|
|
320
|
+
Does the Site has H&S Issue
|
|
321
|
+
"""
|
|
322
|
+
applicationReceivedDate: AwareDatetime | None = None
|
|
323
|
+
"""
|
|
324
|
+
Date the application was received
|
|
325
|
+
"""
|
|
326
|
+
applicationReceivedDateEmailSent: bool | None = None
|
|
327
|
+
"""
|
|
328
|
+
Flags if an applicationReceived email has been sent
|
|
329
|
+
"""
|
|
330
|
+
applicationAcceptedDate: AwareDatetime | None = None
|
|
331
|
+
"""
|
|
332
|
+
Date the application was accepted
|
|
333
|
+
"""
|
|
334
|
+
lpaQuestionnaireSentDate: AwareDatetime | None = None
|
|
335
|
+
"""
|
|
336
|
+
Date the lpa questionnaire was sent
|
|
337
|
+
"""
|
|
338
|
+
lpaQuestionnaireReceivedDate: AwareDatetime | None = None
|
|
339
|
+
"""
|
|
340
|
+
Date the lpa questionnaire was received
|
|
341
|
+
"""
|
|
342
|
+
lpaQuestionnaireReceivedEmailSent: bool | None = None
|
|
343
|
+
"""
|
|
344
|
+
Flags if an lpaQuestionnaireReceived email has been sent
|
|
345
|
+
"""
|
|
346
|
+
publishDate: AwareDatetime | None = None
|
|
347
|
+
"""
|
|
348
|
+
Date the application was published to the portal
|
|
349
|
+
"""
|
|
350
|
+
pressNoticeDate: AwareDatetime | None = None
|
|
351
|
+
"""
|
|
352
|
+
Date the press notice was published
|
|
353
|
+
"""
|
|
354
|
+
neighboursNotifiedByLpaDate: AwareDatetime | None = None
|
|
355
|
+
"""
|
|
356
|
+
Date the neighbours were notified by the LPA
|
|
357
|
+
"""
|
|
358
|
+
siteNoticeByLpaDate: AwareDatetime | None = None
|
|
359
|
+
"""
|
|
360
|
+
Date the site notice was erected by the LPA
|
|
361
|
+
"""
|
|
362
|
+
targetDecisionDate: AwareDatetime | None = None
|
|
363
|
+
"""
|
|
364
|
+
Date the application should be decided by
|
|
365
|
+
"""
|
|
366
|
+
extendedTargetDecisionDate: AwareDatetime | None = None
|
|
367
|
+
"""
|
|
368
|
+
Extended date by which the application should be decided
|
|
369
|
+
"""
|
|
370
|
+
recoveredDate: AwareDatetime | None = None
|
|
371
|
+
"""
|
|
372
|
+
Date the application was recovered by the Secretary of State
|
|
373
|
+
"""
|
|
374
|
+
recoveredReportSentDate: AwareDatetime | None = None
|
|
375
|
+
"""
|
|
376
|
+
Date the Inspector's report was sent to the Secretary of State
|
|
377
|
+
"""
|
|
378
|
+
withdrawnDate: AwareDatetime | None = None
|
|
379
|
+
"""
|
|
380
|
+
Date application was withdrawn
|
|
381
|
+
"""
|
|
382
|
+
decisionDate: AwareDatetime | None = None
|
|
383
|
+
"""
|
|
384
|
+
Date the application was decided on
|
|
385
|
+
"""
|
|
386
|
+
originalDecisionDate: AwareDatetime | None = None
|
|
387
|
+
"""
|
|
388
|
+
Date of the original decision if later quashed
|
|
389
|
+
"""
|
|
390
|
+
decisionOutcome: DecisionOutcome | None = None
|
|
391
|
+
"""
|
|
392
|
+
As displayed to users
|
|
393
|
+
"""
|
|
394
|
+
turnedAwayDate: AwareDatetime | None = None
|
|
395
|
+
"""
|
|
396
|
+
Date application was turned away
|
|
397
|
+
"""
|
|
398
|
+
representationsPublishDate: AwareDatetime | None = None
|
|
399
|
+
"""
|
|
400
|
+
Date the representations was publish
|
|
401
|
+
"""
|
|
402
|
+
representationsPeriodStartDate: AwareDatetime | None = None
|
|
403
|
+
"""
|
|
404
|
+
Start date of the representation period (starts at 00:00)
|
|
405
|
+
"""
|
|
406
|
+
representationsPeriodEndDate: AwareDatetime | None = None
|
|
407
|
+
"""
|
|
408
|
+
End date of the representation period (ends at 23:59)
|
|
409
|
+
"""
|
|
410
|
+
inspector1Id: str | None = None
|
|
411
|
+
"""
|
|
412
|
+
EntraID for Inspector
|
|
413
|
+
"""
|
|
414
|
+
inspector2Id: str | None = None
|
|
415
|
+
"""
|
|
416
|
+
EntraID for Inspector
|
|
417
|
+
"""
|
|
418
|
+
inspector3Id: str | None = None
|
|
419
|
+
"""
|
|
420
|
+
EntraID for Inspector
|
|
421
|
+
"""
|
|
422
|
+
assessorInspectorId: str | None = None
|
|
423
|
+
"""
|
|
424
|
+
EntraID for Assessor
|
|
425
|
+
"""
|
|
426
|
+
caseOfficerId: str | None = None
|
|
427
|
+
"""
|
|
428
|
+
EntraID for Case Officer
|
|
429
|
+
"""
|
|
430
|
+
planningOfficerId: str | None = None
|
|
431
|
+
"""
|
|
432
|
+
EntraID for Planning Officer
|
|
433
|
+
"""
|
|
434
|
+
eiaScreening: bool | None = None
|
|
435
|
+
"""
|
|
436
|
+
Does the application need an Environmental Impact Assessment
|
|
437
|
+
"""
|
|
438
|
+
eiaScreeningOutcome: EiaScreeningOutcome | None = None
|
|
439
|
+
"""
|
|
440
|
+
What was the outcome of the Environmental Impact Assessment
|
|
441
|
+
"""
|
|
442
|
+
environmentalStatementReceivedDate: AwareDatetime | None = None
|
|
443
|
+
"""
|
|
444
|
+
Date the environmental statement was received
|
|
445
|
+
"""
|
|
446
|
+
siteIsVisibleFromPublicLand: bool | None = None
|
|
447
|
+
"""
|
|
448
|
+
Site is visible from public land (Yes/No or TRUE/FALSE tbc)
|
|
449
|
+
"""
|
|
450
|
+
procedure: Procedure | None = None
|
|
451
|
+
"""
|
|
452
|
+
Name displayed to users
|
|
453
|
+
"""
|
|
454
|
+
procedureNotificationDate: AwareDatetime | None = None
|
|
455
|
+
eventDate: AwareDatetime | None = None
|
|
456
|
+
eventPrepDuration: float | None = Field(None, examples=[1234.56])
|
|
457
|
+
eventSittingDuration: float | None = Field(None, examples=[1234.56])
|
|
458
|
+
eventReportingDuration: float | None = Field(None, examples=[1234.56])
|
|
459
|
+
eventVenue: str | None = None
|
|
460
|
+
eventNotificationDate: AwareDatetime | None = None
|
|
461
|
+
eventIssuesReportPublishedDate: AwareDatetime | None = None
|
|
462
|
+
eventStatementsDate: AwareDatetime | None = None
|
|
463
|
+
eventCaseManagementConferenceDate: AwareDatetime | None = None
|
|
464
|
+
eventPreMeetingDate: AwareDatetime | None = None
|
|
465
|
+
eventProofsOfEvidenceDate: AwareDatetime | None = None
|
|
466
|
+
hasApplicationFee: bool | None = None
|
|
467
|
+
"""
|
|
468
|
+
Application has associated Fee (Yes/No or TRUE/FALSE tbc)
|
|
469
|
+
"""
|
|
470
|
+
applicationFee: float | None = None
|
|
471
|
+
"""
|
|
472
|
+
The amount to be payed by the Applicant
|
|
473
|
+
"""
|
|
474
|
+
applicationFeeReceivedDate: AwareDatetime | None = None
|
|
475
|
+
"""
|
|
476
|
+
Date the application fee was received
|
|
477
|
+
"""
|
|
478
|
+
eligibleForFeeRefund: bool | None = None
|
|
479
|
+
"""
|
|
480
|
+
Is the applicant eligible for a refund on the fee
|
|
481
|
+
"""
|
|
482
|
+
applicationFeeRefundAmount: float | None = None
|
|
483
|
+
"""
|
|
484
|
+
The amount to be refunded to the Applicant
|
|
485
|
+
"""
|
|
486
|
+
applicationFeeRefundDate: AwareDatetime | None = None
|
|
487
|
+
"""
|
|
488
|
+
Date the application fee was refunded
|
|
489
|
+
"""
|
|
490
|
+
siteVisitDate: AwareDatetime | None = None
|
|
491
|
+
"""
|
|
492
|
+
Date the site was/is going to be visited by the inspector
|
|
493
|
+
"""
|
|
494
|
+
cilLiable: bool | None = None
|
|
495
|
+
"""
|
|
496
|
+
Is the application liable for a community infrastructure levy
|
|
497
|
+
"""
|
|
498
|
+
cilAmount: float | None = None
|
|
499
|
+
"""
|
|
500
|
+
The amount for the community infrastructure levy
|
|
501
|
+
"""
|
|
502
|
+
bngExempt: bool | None = None
|
|
503
|
+
"""
|
|
504
|
+
Is the site exempt from the Biodiversity Net Gain
|
|
505
|
+
"""
|
|
506
|
+
hasCostsApplications: bool | None = None
|
|
507
|
+
"""
|
|
508
|
+
If a party is making a cost claim against another for unreasonable behaviour
|
|
509
|
+
"""
|
|
510
|
+
costsApplicationsComment: str | None = None
|
|
511
|
+
"""
|
|
512
|
+
Details about the cost application
|
|
513
|
+
"""
|
|
514
|
+
environmentalImpactAssessment: bool | None = None
|
|
515
|
+
"""
|
|
516
|
+
Does the application have an Environmental Impact Assessment - used for context in emails to LPAs
|
|
517
|
+
"""
|
|
518
|
+
developmentPlan: bool | None = None
|
|
519
|
+
"""
|
|
520
|
+
Is the application a standard development plan - used for context in emails to LPAs
|
|
521
|
+
"""
|
|
522
|
+
rightOfWay: bool | None = None
|
|
523
|
+
"""
|
|
524
|
+
Does the application apply to rights of way - used for context in emails to LPAs
|
|
525
|
+
"""
|
|
@@ -32,6 +32,7 @@ class SubmittedReceivedMethod(Enum):
|
|
|
32
32
|
Email = "Email"
|
|
33
33
|
Post = "Post"
|
|
34
34
|
In_person = "In person"
|
|
35
|
+
NoneType_None = None
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
class RepresentedType(Enum):
|
|
@@ -46,11 +47,13 @@ class RepresentedType(Enum):
|
|
|
46
47
|
An_organisation_or_charity_I_do_not_work_or_volunteer_for = (
|
|
47
48
|
"An organisation or charity I do not work or volunteer for"
|
|
48
49
|
)
|
|
50
|
+
NoneType_None = None
|
|
49
51
|
|
|
50
52
|
|
|
51
53
|
class RepresentedCategory(Enum):
|
|
52
54
|
Consultees = "Consultees"
|
|
53
55
|
Interested_party = "Interested party"
|
|
56
|
+
NoneType_None = None
|
|
54
57
|
|
|
55
58
|
|
|
56
59
|
class WithdrawalReason(Enum):
|
|
@@ -62,11 +65,13 @@ class WithdrawalReason(Enum):
|
|
|
62
65
|
Mistaken_Submission = "Mistaken Submission"
|
|
63
66
|
Misunderstanding = "Misunderstanding"
|
|
64
67
|
Personal_Reasons = "Personal Reasons"
|
|
68
|
+
NoneType_None = None
|
|
65
69
|
|
|
66
70
|
|
|
67
71
|
class ContactPreference(Enum):
|
|
68
72
|
email = "email"
|
|
69
73
|
post = "post"
|
|
74
|
+
NoneType_None = None
|
|
70
75
|
|
|
71
76
|
|
|
72
77
|
class Contact(BaseModel):
|
|
@@ -196,7 +196,9 @@
|
|
|
196
196
|
"awaiting_transfer",
|
|
197
197
|
"transferred",
|
|
198
198
|
"event",
|
|
199
|
-
"awaiting_event"
|
|
199
|
+
"awaiting_event",
|
|
200
|
+
"notice_withdrawn",
|
|
201
|
+
"closed_opened_in_error"
|
|
200
202
|
],
|
|
201
203
|
"description": "The processing status for the appeal",
|
|
202
204
|
"$comment": "Also available on HAS cases"
|
|
@@ -1214,6 +1216,46 @@
|
|
|
1214
1216
|
"description": "A list of grounds for the appeal, supporting facts & start dates. Enforcement cases (C) can have grounds (a) to (g)",
|
|
1215
1217
|
"$comment": "Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)"
|
|
1216
1218
|
},
|
|
1219
|
+
"enforcementCaseGroundsOfAppeal": {
|
|
1220
|
+
"type": ["array", "null"],
|
|
1221
|
+
"items": {
|
|
1222
|
+
"type": "object",
|
|
1223
|
+
"additionalProperties": true,
|
|
1224
|
+
"properties": {
|
|
1225
|
+
"appealGroundLetter": {
|
|
1226
|
+
"type": ["string", "null"],
|
|
1227
|
+
"enum": ["a", "b", "c", "d", "e", "f", "g", null]
|
|
1228
|
+
},
|
|
1229
|
+
"groundForAppealStartDate": {
|
|
1230
|
+
"type": ["string", "null"],
|
|
1231
|
+
"format": "date-time",
|
|
1232
|
+
"examples": ["2023-07-27T20:30:00.000Z"]
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
"description": "Case Officer list of grounds for the appeal & start dates. Enforcement cases (C) can have grounds (a) to (g)",
|
|
1237
|
+
"$comment": "Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)"
|
|
1238
|
+
},
|
|
1239
|
+
"elbCaseGroundsOfAppeal": {
|
|
1240
|
+
"type": ["array", "null"],
|
|
1241
|
+
"items": {
|
|
1242
|
+
"type": "object",
|
|
1243
|
+
"additionalProperties": true,
|
|
1244
|
+
"properties": {
|
|
1245
|
+
"appealGroundLetter": {
|
|
1246
|
+
"type": ["string", "null"],
|
|
1247
|
+
"enum": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", null]
|
|
1248
|
+
},
|
|
1249
|
+
"groundForAppealStartDate": {
|
|
1250
|
+
"type": ["string", "null"],
|
|
1251
|
+
"format": "date-time",
|
|
1252
|
+
"examples": ["2023-07-27T20:30:00.000Z"]
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
},
|
|
1256
|
+
"description": "Case Officer list of grounds for the appeal & start dates. Enforcement cases (C) can have grounds (a) to (g)",
|
|
1257
|
+
"$comment": "Enforcement Listed Building cases (F) have a separate list of grounds (a) to (k)"
|
|
1258
|
+
},
|
|
1217
1259
|
"applicationMadeAndFeePaid": {
|
|
1218
1260
|
"type": ["boolean", "null"],
|
|
1219
1261
|
"description": "Was an application made and paid for"
|