@planning-inspectorate/data-model 1.11.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 (131) hide show
  1. package/.azure/ci.yml +60 -0
  2. package/.azure/release.yml +57 -0
  3. package/.github/dependabot.yml +11 -0
  4. package/.husky/install.mjs +7 -0
  5. package/.husky/pre-commit +1 -0
  6. package/.prettierignore +11 -0
  7. package/.prettierrc +19 -0
  8. package/LICENSE +21 -0
  9. package/README.md +237 -0
  10. package/commitlint.config.js +8 -0
  11. package/docs/README.md +85 -0
  12. package/docs/appeal-document.md +776 -0
  13. package/docs/appeal-event-estimate.md +108 -0
  14. package/docs/appeal-event.md +404 -0
  15. package/docs/appeal-has.md +1960 -0
  16. package/docs/appeal-representation.md +375 -0
  17. package/docs/appeal-s78.md +3607 -0
  18. package/docs/appeal.md +1879 -0
  19. package/docs/case-schedule.md +8 -0
  20. package/docs/dart-response.md +1413 -0
  21. package/docs/employee.md +70 -0
  22. package/docs/entraid.md +108 -0
  23. package/docs/folder.md +147 -0
  24. package/docs/gettimesheets-response.md +188 -0
  25. package/docs/interested-party.md +284 -0
  26. package/docs/listed-building.md +113 -0
  27. package/docs/listed-buildings.md +113 -0
  28. package/docs/nsip-document.md +966 -0
  29. package/docs/nsip-exam-timetable-defs-event.md +223 -0
  30. package/docs/nsip-exam-timetable-defs-line-item.md +51 -0
  31. package/docs/nsip-exam-timetable-defs.md +3 -0
  32. package/docs/nsip-exam-timetable-submission.md +113 -0
  33. package/docs/nsip-exam-timetable.md +352 -0
  34. package/docs/nsip-project-update.md +163 -0
  35. package/docs/nsip-project.md +2098 -0
  36. package/docs/nsip-representation-defs-attachment.md +133 -0
  37. package/docs/nsip-representation-defs.md +3 -0
  38. package/docs/nsip-representation.md +448 -0
  39. package/docs/nsip-subscription.md +193 -0
  40. package/docs/pins-inspector.md +184 -0
  41. package/docs/pins-lpa.md +260 -0
  42. package/docs/s51-advice.md +460 -0
  43. package/docs/service-user.md +575 -0
  44. package/eslint.config.js +21 -0
  45. package/jsconfig.json +12 -0
  46. package/package.json +55 -0
  47. package/pins_data_model/__init__.py +0 -0
  48. package/pins_data_model/gen_models.py +51 -0
  49. package/pins_data_model/load_schemas.py +51 -0
  50. package/pins_data_model/models/__init__.py +0 -0
  51. package/pins_data_model/models/model_appeal_document.py +294 -0
  52. package/pins_data_model/models/model_appeal_event.py +117 -0
  53. package/pins_data_model/models/model_appeal_event_estimate.py +37 -0
  54. package/pins_data_model/models/model_appeal_has.py +585 -0
  55. package/pins_data_model/models/model_appeal_representation.py +132 -0
  56. package/pins_data_model/models/model_appeal_s78.py +864 -0
  57. package/pins_data_model/models/model_case_schedule.py +11 -0
  58. package/pins_data_model/models/model_dart_response.py +292 -0
  59. package/pins_data_model/models/model_entraid.py +37 -0
  60. package/pins_data_model/models/model_folder.py +56 -0
  61. package/pins_data_model/models/model_gettimesheets_response.py +45 -0
  62. package/pins_data_model/models/model_listed_building.py +33 -0
  63. package/pins_data_model/models/model_listed_buildings.py +33 -0
  64. package/pins_data_model/models/model_nsip_document.py +199 -0
  65. package/pins_data_model/models/model_nsip_exam_timetable.py +90 -0
  66. package/pins_data_model/models/model_nsip_project.py +488 -0
  67. package/pins_data_model/models/model_nsip_project_update.py +60 -0
  68. package/pins_data_model/models/model_nsip_representation.py +83 -0
  69. package/pins_data_model/models/model_nsip_subscription.py +60 -0
  70. package/pins_data_model/models/model_pins_inspector.py +53 -0
  71. package/pins_data_model/models/model_pins_lpa.py +69 -0
  72. package/pins_data_model/models/model_s51_advice.py +109 -0
  73. package/pins_data_model/models/model_service_user.py +121 -0
  74. package/requirements.txt +2 -0
  75. package/schemas/__init__.py +0 -0
  76. package/schemas/appeal-document.schema.json +250 -0
  77. package/schemas/appeal-event-estimate.schema.json +31 -0
  78. package/schemas/appeal-event.schema.json +123 -0
  79. package/schemas/appeal-has.schema.json +576 -0
  80. package/schemas/appeal-representation.schema.json +131 -0
  81. package/schemas/appeal-s78.schema.json +1060 -0
  82. package/schemas/commands/__init__.py +0 -0
  83. package/schemas/commands/appeal-common-submission.schema.json +202 -0
  84. package/schemas/commands/appeal-has-submission.schema.json +82 -0
  85. package/schemas/commands/appeal-representation-submission.schema.json +192 -0
  86. package/schemas/commands/appeal-s78-submission.schema.json +100 -0
  87. package/schemas/commands/appellant-submission.schema.json +164 -0
  88. package/schemas/commands/interested-party.schema.json +80 -0
  89. package/schemas/commands/lpa-questionnaire-common.schema.json +110 -0
  90. package/schemas/commands/lpa-questionnaire-has.schema.json +69 -0
  91. package/schemas/commands/lpa-questionnaire-s78.schema.json +218 -0
  92. package/schemas/commands/lpa-questionnaire.schema.json +125 -0
  93. package/schemas/commands/new-deadline-submission.schema.json +59 -0
  94. package/schemas/commands/nsip-exam-timetable-submission.schema.json +27 -0
  95. package/schemas/commands/register-nsip-subscription.schema.json +32 -0
  96. package/schemas/commands/register-representation.schema.json +51 -0
  97. package/schemas/dart-response.schema.json +350 -0
  98. package/schemas/entraid.schema.json +31 -0
  99. package/schemas/folder.schema.json +49 -0
  100. package/schemas/gettimesheets-response.schema.json +46 -0
  101. package/schemas/listed-building.schema.json +31 -0
  102. package/schemas/listed-buildings.schema.json +31 -0
  103. package/schemas/nsip-document.schema.json +235 -0
  104. package/schemas/nsip-exam-timetable.schema.json +101 -0
  105. package/schemas/nsip-project-update.schema.json +49 -0
  106. package/schemas/nsip-project.schema.json +539 -0
  107. package/schemas/nsip-representation.schema.json +110 -0
  108. package/schemas/nsip-subscription.schema.json +52 -0
  109. package/schemas/pins-inspector.schema.json +47 -0
  110. package/schemas/pins-lpa.schema.json +63 -0
  111. package/schemas/s51-advice.schema.json +113 -0
  112. package/schemas/service-user.schema.json +152 -0
  113. package/setup.py +15 -0
  114. package/src/enums.cjs +632 -0
  115. package/src/enums.d.ts +573 -0
  116. package/src/enums.js +573 -0
  117. package/src/gen-docs.js +34 -0
  118. package/src/gen-enums.js +119 -0
  119. package/src/gen-types.js +70 -0
  120. package/src/index.cjs +746 -0
  121. package/src/index.d.ts +18 -0
  122. package/src/index.js +34 -0
  123. package/src/lib/load.js +78 -0
  124. package/src/schemas.d.ts +4570 -0
  125. package/tests/appeals/appeal-event.test.js +62 -0
  126. package/tests/appeals/commands/appeal-representation-submission.test.js +107 -0
  127. package/tests/appeals/commands/has-questionnaire.test.js +92 -0
  128. package/tests/appeals/commands/has-submission.test.js +113 -0
  129. package/tests/appeals/commands/s78-questionnaire.test.js +96 -0
  130. package/tests/appeals/commands/s78-submission.test.js +119 -0
  131. package/tests/schemas.test.js +97 -0
@@ -0,0 +1,4570 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * Schema defining the metadata for appeal documents
10
+ */
11
+ export interface AppealDocument {
12
+ /**
13
+ * The unique identifier for the document
14
+ */
15
+ documentId: string;
16
+ /**
17
+ * Internal case identifier
18
+ */
19
+ caseId: number | null;
20
+ /**
21
+ * External case identifier
22
+ */
23
+ caseReference: string;
24
+ /**
25
+ * A document can have multiple versions, and this indicates the latest version
26
+ */
27
+ version: number;
28
+ /**
29
+ * Current stored name of the document
30
+ */
31
+ filename: string;
32
+ /**
33
+ * Original name of document
34
+ */
35
+ originalFilename: string;
36
+ /**
37
+ * The file size, in bytes
38
+ */
39
+ size: number;
40
+ /**
41
+ * The mime type for the current version of the file
42
+ */
43
+ mime: string;
44
+ /**
45
+ * The internal location of the document
46
+ */
47
+ documentURI: string;
48
+ /**
49
+ * The location of the published document, will be null if the datePublished is not set
50
+ */
51
+ publishedDocumentURI: string | null;
52
+ /**
53
+ * Indicates the virus check status for the current document
54
+ */
55
+ virusCheckStatus: 'not_scanned' | 'scanned' | 'affected' | null;
56
+ /**
57
+ * A MD5 hash to check the validity of the file
58
+ */
59
+ fileMD5: string | null;
60
+ /**
61
+ * The creation date for the document
62
+ */
63
+ dateCreated: string;
64
+ /**
65
+ * The date the document was received
66
+ */
67
+ dateReceived: string | null;
68
+ /**
69
+ * The date the document was published
70
+ */
71
+ datePublished: string | null;
72
+ /**
73
+ * The last update date for the document
74
+ */
75
+ lastModified: string | null;
76
+ /**
77
+ * The internal code for an appeal type, e.g. Householder (D)
78
+ */
79
+ caseType: 'C' | 'D' | 'F' | 'G' | 'H' | 'L' | 'Q' | 'S' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'ZA' | 'ZP' | null;
80
+ /**
81
+ * Indicates the redaction status for the document
82
+ */
83
+ redactedStatus: 'not_redacted' | 'redacted' | 'no_redaction_required' | null;
84
+ /**
85
+ * The type of document, used for exchange, migrations and consumption from the appeal back-office system
86
+ */
87
+ documentType:
88
+ | 'appellantCaseCorrespondence'
89
+ | 'appellantCaseWithdrawalLetter'
90
+ | 'appellantCostsApplication'
91
+ | 'appellantCostsCorrespondence'
92
+ | 'appellantCostsWithdrawal'
93
+ | 'appellantStatement'
94
+ | 'applicationDecisionLetter'
95
+ | 'changedDescription'
96
+ | 'originalApplicationForm'
97
+ | 'whoNotified'
98
+ | 'whoNotifiedSiteNotice'
99
+ | 'whoNotifiedLetterToNeighbours'
100
+ | 'whoNotifiedPressAdvert'
101
+ | 'conservationMap'
102
+ | 'lpaCaseCorrespondence'
103
+ | 'lpaCostsApplication'
104
+ | 'lpaCostsCorrespondence'
105
+ | 'lpaCostsWithdrawal'
106
+ | 'otherPartyRepresentations'
107
+ | 'planningOfficerReport'
108
+ | 'appellantCostsDecisionLetter'
109
+ | 'lpaCostsDecisionLetter'
110
+ | 'caseDecisionLetter'
111
+ | 'crossTeamCorrespondence'
112
+ | 'inspectorCorrespondence'
113
+ | 'mainPartyCorrespondence'
114
+ | 'uncategorised'
115
+ | 'designAccessStatement'
116
+ | 'plansDrawings'
117
+ | 'newPlansDrawings'
118
+ | 'planningObligation'
119
+ | 'ownershipCertificate'
120
+ | 'otherNewDocuments'
121
+ | 'statementCommonGround'
122
+ | 'communityInfrastructureLevy'
123
+ | 'supplementaryPlanning'
124
+ | 'otherRelevantPolicies'
125
+ | 'emergingPlan'
126
+ | 'developmentPlanPolicies'
127
+ | 'consultationResponses'
128
+ | 'eiaEnvironmentalStatement'
129
+ | 'eiaScreeningDirection'
130
+ | 'eiaScreeningOpinion'
131
+ | 'eiaScopingOpinion'
132
+ | 'definitiveMapStatement'
133
+ | 'treePreservationPlan'
134
+ | 'interestedPartyComment'
135
+ | 'lpaStatement'
136
+ | 'rule6Statement'
137
+ | 'appellantFinalComment'
138
+ | 'lpaFinalComment'
139
+ | 'appellantProofOfEvidence'
140
+ | 'appellantWitnessesEvidence'
141
+ | 'lpaProofOfEvidence'
142
+ | 'lpaWitnessesEvidence'
143
+ | 'rule6ProofOfEvidence'
144
+ | 'rule6WitnessesEvidence'
145
+ | 'environmentalAssessment'
146
+ | 'appealNotification'
147
+ | 'historicEnglandConsultation'
148
+ | null;
149
+ /**
150
+ * The system mastering the metadata for the current document
151
+ */
152
+ sourceSystem: 'back-office-appeals' | 'horizon' | 'acp' | 'sharepoint' | null;
153
+ /**
154
+ * Indicates where the documents originates from
155
+ */
156
+ origin: 'pins' | 'citizen' | 'lpa' | 'ogd' | null;
157
+ /**
158
+ * Owner of the current document
159
+ */
160
+ owner: string | null;
161
+ /**
162
+ * Name of person who authored document
163
+ */
164
+ author: string | null;
165
+ /**
166
+ * A custom description for the document
167
+ */
168
+ description: string | null;
169
+ /**
170
+ * The stage in the appeal process that has created the document
171
+ */
172
+ caseStage:
173
+ | 'appellant-case'
174
+ | 'lpa-questionnaire'
175
+ | 'statements'
176
+ | 'third-party-comments'
177
+ | 'evidence'
178
+ | 'witnesses'
179
+ | 'final-comments'
180
+ | 'appeal-decision'
181
+ | 'costs'
182
+ | 'internal'
183
+ | null;
184
+ /**
185
+ * The folder ID containing the document in Horizon
186
+ */
187
+ horizonFolderId: string | null;
188
+ [k: string]: unknown;
189
+ }
190
+
191
+ /**
192
+ * All event estimates belong to a case. A case has only one event estimate.
193
+ */
194
+ export interface AppealEventEstimate {
195
+ /**
196
+ * The unique identifier within the Back Office.
197
+ */
198
+ id: number;
199
+ /**
200
+ * The case reference the event estimate belongs to.
201
+ */
202
+ caseReference: string;
203
+ /**
204
+ * Estimated inspector time (days) to prepare for event.
205
+ */
206
+ preparationTime: number | null;
207
+ /**
208
+ * Estimated inspector time (days) for event.
209
+ */
210
+ sittingTime: number | null;
211
+ /**
212
+ * Estimated inspector time (days) for event reporting.
213
+ */
214
+ reportingTime: number | null;
215
+ [k: string]: unknown;
216
+ }
217
+
218
+ /**
219
+ * Schema defining the metadata for appeal events, such as site visits, inquiries, hearings
220
+ */
221
+ export interface AppealEvent {
222
+ /**
223
+ * The unique identifier for the event
224
+ */
225
+ eventId: string;
226
+ /**
227
+ * External case identifier
228
+ */
229
+ caseReference: string;
230
+ /**
231
+ * The type of event
232
+ */
233
+ eventType:
234
+ | 'site_visit_access_required'
235
+ | 'site_visit_accompanied'
236
+ | 'site_visit_unaccompanied'
237
+ | 'hearing'
238
+ | 'hearing_virtual'
239
+ | 'inquiry'
240
+ | 'inquiry_virtual'
241
+ | 'in_house'
242
+ | 'pre_inquiry'
243
+ | 'pre_inquiry_virtual';
244
+ /**
245
+ * An optional description / name for the event
246
+ */
247
+ eventName: string | null;
248
+ /**
249
+ * Status of the event
250
+ */
251
+ eventStatus:
252
+ | 'withdrawn'
253
+ | 'in_abeyance'
254
+ | 'change_of_procedure'
255
+ | 'new_rescheduled'
256
+ | 'confirmed'
257
+ | 'link_to_enforcement'
258
+ | 'offered'
259
+ | 'postponed';
260
+ /**
261
+ * Indicates if the event is urgent
262
+ */
263
+ isUrgent: boolean;
264
+ /**
265
+ * Indicates if the event has been published
266
+ */
267
+ eventPublished: boolean | null;
268
+ /**
269
+ * Event start date and time
270
+ */
271
+ eventStartDateTime: string;
272
+ /**
273
+ * Event end date and time
274
+ */
275
+ eventEndDateTime: string | null;
276
+ /**
277
+ * The date third-parties were informed of the site visit event
278
+ */
279
+ notificationOfSiteVisit: string | null;
280
+ /**
281
+ * First line of address for the event site
282
+ */
283
+ addressLine1: string | null;
284
+ /**
285
+ * Second line of address for the event site
286
+ */
287
+ addressLine2: string | null;
288
+ /**
289
+ * Town / City of the event address
290
+ */
291
+ addressTown: string | null;
292
+ /**
293
+ * County of the event address
294
+ */
295
+ addressCounty: string | null;
296
+ /**
297
+ * Postal code of the event address
298
+ */
299
+ addressPostcode: string | null;
300
+ [k: string]: unknown;
301
+ }
302
+
303
+ /**
304
+ * Schema defining the metadata for an appeal
305
+ */
306
+ export interface AppealHASCase {
307
+ /**
308
+ * Internal case identifier
309
+ */
310
+ caseId: number | null;
311
+ /**
312
+ * External case identifier
313
+ */
314
+ caseReference: string;
315
+ /**
316
+ * Case submission id - link to draft submission created by appellant
317
+ */
318
+ submissionId?: string | null;
319
+ /**
320
+ * The processing status for the appeal
321
+ */
322
+ caseStatus:
323
+ | 'assign_case_officer'
324
+ | 'validation'
325
+ | 'ready_to_start'
326
+ | 'lpa_questionnaire'
327
+ | 'issue_determination'
328
+ | 'complete'
329
+ | 'invalid'
330
+ | 'closed'
331
+ | 'withdrawn'
332
+ | 'awaiting_transfer'
333
+ | 'transferred'
334
+ | 'event'
335
+ | 'awaiting_event';
336
+ /**
337
+ * The internal code for an appeal type, e.g. D (Householder)
338
+ */
339
+ caseType: 'C' | 'D' | 'F' | 'G' | 'H' | 'L' | 'Q' | 'S' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'ZA' | 'ZP';
340
+ /**
341
+ * The type of procedure for the appeal
342
+ */
343
+ caseProcedure: 'written' | 'hearing' | 'inquiry';
344
+ /**
345
+ * A unique identifier for the Local Planning Authority
346
+ */
347
+ lpaCode: string;
348
+ /**
349
+ * Unique identifier for the case officer assigned to the case
350
+ */
351
+ caseOfficerId: string | null;
352
+ /**
353
+ * Unique identifier for the inspector assigned to the case
354
+ */
355
+ inspectorId: string | null;
356
+ /**
357
+ * A level used for allocation purposes
358
+ */
359
+ allocationLevel: 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | null;
360
+ /**
361
+ * A band used for allocation purposes
362
+ */
363
+ allocationBand: 1 | 2 | 3 | null;
364
+ /**
365
+ * A list of specialisms for allocation purposes
366
+ */
367
+ caseSpecialisms: string[] | null;
368
+ /**
369
+ * The date the appeal was submitted by the appellant
370
+ */
371
+ caseSubmittedDate: string;
372
+ /**
373
+ * The date the appeal was received
374
+ */
375
+ caseCreatedDate: string;
376
+ /**
377
+ * The date the appeal was last updated in the back-office
378
+ */
379
+ caseUpdatedDate: string;
380
+ /**
381
+ * The date since when the appeal was considered valid
382
+ */
383
+ caseValidDate: string | null;
384
+ /**
385
+ * The date the appeal was validated in the back-office
386
+ */
387
+ caseValidationDate: string | null;
388
+ /**
389
+ * The outcome of the validation action
390
+ */
391
+ caseValidationOutcome: 'valid' | 'invalid' | 'incomplete' | null;
392
+ /**
393
+ * A list of reasons why the appeal is invalid
394
+ */
395
+ caseValidationInvalidDetails: string[] | null;
396
+ /**
397
+ * A list of reasons why the appeal is incomplete
398
+ */
399
+ caseValidationIncompleteDetails: string[] | null;
400
+ /**
401
+ * When the validation outcome is incomplete, an extension may be granted to provide missing information
402
+ */
403
+ caseExtensionDate: string | null;
404
+ /**
405
+ * A date indicating when the case was started, resulting in the creation of a timetable
406
+ */
407
+ caseStartedDate: string | null;
408
+ /**
409
+ * A date indicating when the case was published
410
+ */
411
+ casePublishedDate: string | null;
412
+ /**
413
+ * Indicates if the case is linked, and the type of relationship
414
+ */
415
+ linkedCaseStatus: 'lead' | 'child' | null;
416
+ /**
417
+ * The reference of the lead case, if the case is a child case
418
+ */
419
+ leadCaseReference: string | null;
420
+ /**
421
+ * If the case is started and has a timetable, a deadline for the LPA to provide a response
422
+ */
423
+ lpaQuestionnaireDueDate: string | null;
424
+ /**
425
+ * The date the LPA provided a response to the case
426
+ */
427
+ lpaQuestionnaireSubmittedDate: string | null;
428
+ /**
429
+ * The date the LPA response was receeived
430
+ */
431
+ lpaQuestionnaireCreatedDate: string | null;
432
+ /**
433
+ * The date indicating when the questionnaire review was completed and the questionnaire published
434
+ */
435
+ lpaQuestionnairePublishedDate: string | null;
436
+ /**
437
+ * The outcome of the validation action
438
+ */
439
+ lpaQuestionnaireValidationOutcome: 'complete' | 'incomplete' | null;
440
+ /**
441
+ * The date the LPA response was validated
442
+ */
443
+ lpaQuestionnaireValidationOutcomeDate: string | null;
444
+ /**
445
+ * A list of reasons why the questionnaire is incomplete
446
+ */
447
+ lpaQuestionnaireValidationDetails: string[] | null;
448
+ /**
449
+ * A statement provided by the LPA
450
+ */
451
+ lpaStatement: string | null;
452
+ /**
453
+ * The date the appeal was withdrawn by the appellant
454
+ */
455
+ caseWithdrawnDate: string | null;
456
+ /**
457
+ * The date the appeal was transferred to a new case of a different type
458
+ */
459
+ caseTransferredDate: string | null;
460
+ /**
461
+ * The date the appeal was closed and the appellant requested to resubmit
462
+ */
463
+ transferredCaseClosedDate: string | null;
464
+ /**
465
+ * The date of the appeal decision
466
+ */
467
+ caseDecisionOutcomeDate: string | null;
468
+ /**
469
+ * The date the appeal decision was published
470
+ */
471
+ caseDecisionPublishedDate: string | null;
472
+ /**
473
+ * The final outcome for the decision
474
+ */
475
+ caseDecisionOutcome: 'allowed' | 'split_decision' | 'dismissed' | 'invalid' | null;
476
+ /**
477
+ * The date the appeal decision letter
478
+ */
479
+ caseCompletedDate: string | null;
480
+ /**
481
+ * Indicates if an enforcement notice is the reason for the appeal
482
+ */
483
+ enforcementNotice: boolean | null;
484
+ /**
485
+ * The unique identifier of the LPA application
486
+ */
487
+ applicationReference: string;
488
+ /**
489
+ * The date of the original LPA application
490
+ */
491
+ applicationDate: string;
492
+ /**
493
+ * The outcome of the original LPA decision
494
+ */
495
+ applicationDecision: 'granted' | 'refused' | 'not_received';
496
+ /**
497
+ * The date of the original LPA decision
498
+ */
499
+ applicationDecisionDate: string | null;
500
+ /**
501
+ * The statutory deadline for submitting an appeal from the original LPA decision date
502
+ */
503
+ caseSubmissionDueDate: string | null;
504
+ /**
505
+ * First line of address for the appeal site
506
+ */
507
+ siteAddressLine1: string;
508
+ /**
509
+ * Second line of address for the appeal site
510
+ */
511
+ siteAddressLine2: string | null;
512
+ /**
513
+ * Town / City of the site address
514
+ */
515
+ siteAddressTown: string;
516
+ /**
517
+ * County of the site address
518
+ */
519
+ siteAddressCounty: string | null;
520
+ /**
521
+ * Postal code of the site address
522
+ */
523
+ siteAddressPostcode: string;
524
+ /**
525
+ * Provided information on site accessibility
526
+ */
527
+ siteAccessDetails: string[] | null;
528
+ /**
529
+ * Provided information on site health and safety
530
+ */
531
+ siteSafetyDetails: string[] | null;
532
+ /**
533
+ * The site area, in square meters
534
+ */
535
+ siteAreaSquareMetres: number | null;
536
+ /**
537
+ * The floor space, in square meters
538
+ */
539
+ floorSpaceSquareMetres: number | null;
540
+ /**
541
+ * Indicates if the LPA considers the appeal type appropriate
542
+ */
543
+ isCorrectAppealType: boolean | null;
544
+ /**
545
+ * Indicates if the site is in a green belt
546
+ */
547
+ isGreenBelt: boolean | null;
548
+ /**
549
+ * Indicates if the site is in a conservation area
550
+ */
551
+ inConservationArea: boolean | null;
552
+ /**
553
+ * Indicates if the appellant has complete ownership of the site
554
+ */
555
+ ownsAllLand: boolean | null;
556
+ /**
557
+ * Indicates if the appellant has partial ownership of the site
558
+ */
559
+ ownsSomeLand: boolean | null;
560
+ /**
561
+ * Indicates if the appellant knows other owners of the site
562
+ */
563
+ knowsOtherOwners: 'Yes' | 'No' | 'Some' | null;
564
+ /**
565
+ * Indicates if the appellant knows all owners of the site
566
+ */
567
+ knowsAllOwners: 'Yes' | 'No' | 'Some' | null;
568
+ /**
569
+ * Indicates if the appellant has advertised the appeal to the LPA decision
570
+ */
571
+ advertisedAppeal: boolean | null;
572
+ /**
573
+ * The methods used to notify relevant parties
574
+ */
575
+ notificationMethod: ('notice' | 'letter' | 'advert' | null)[] | null;
576
+ /**
577
+ * Indicates if the appellant has informed other owners of the site
578
+ */
579
+ ownersInformed: boolean | null;
580
+ /**
581
+ * The original description of the development, as provided by the appellant
582
+ */
583
+ originalDevelopmentDescription: string | null;
584
+ /**
585
+ * Indicates that the LPA has changed the development description
586
+ */
587
+ changedDevelopmentDescription: boolean | null;
588
+ /**
589
+ * New conditions details provided by the LPA
590
+ */
591
+ newConditionDetails: string | null;
592
+ /**
593
+ * A list of related case references known to the appellant and the LPA
594
+ */
595
+ nearbyCaseReferences: string[] | null;
596
+ /**
597
+ * A list of neighbouring site addresses
598
+ */
599
+ neighbouringSiteAddresses:
600
+ | {
601
+ /**
602
+ * First line of address of the site
603
+ */
604
+ neighbouringSiteAddressLine1: string;
605
+ /**
606
+ * Second line of address of the site
607
+ */
608
+ neighbouringSiteAddressLine2: string | null;
609
+ /**
610
+ * Town / City of the site address
611
+ */
612
+ neighbouringSiteAddressTown: string;
613
+ /**
614
+ * County of the site address
615
+ */
616
+ neighbouringSiteAddressCounty: string | null;
617
+ /**
618
+ * Postal code of the site address
619
+ */
620
+ neighbouringSiteAddressPostcode: string;
621
+ /**
622
+ * Provided information on site accessibility on this address
623
+ */
624
+ neighbouringSiteAccessDetails: string | null;
625
+ /**
626
+ * Provided information on site health and safety on this address
627
+ */
628
+ neighbouringSiteSafetyDetails: string | null;
629
+ [k: string]: unknown;
630
+ }[]
631
+ | null;
632
+ /**
633
+ * A general reason given for the need to visit any neighbours
634
+ */
635
+ reasonForNeighbourVisits?: string | null;
636
+ /**
637
+ * A list of affected listed building IDs from Historic England
638
+ */
639
+ affectedListedBuildingNumbers: string[] | null;
640
+ /**
641
+ * Indicates if the appellant has applied for costs
642
+ */
643
+ appellantCostsAppliedFor: boolean | null;
644
+ /**
645
+ * Indicates if the appellant has applied for costs
646
+ */
647
+ lpaCostsAppliedFor: boolean | null;
648
+ typeOfPlanningApplication?:
649
+ | 'full-appeal'
650
+ | 'householder-planning'
651
+ | 'outline-planning'
652
+ | 'prior-approval'
653
+ | 'reserved-matters'
654
+ | 'removal-or-variation-of-conditions'
655
+ | 'listed-building'
656
+ | 'minor-commercial-development'
657
+ | null;
658
+ [k: string]: unknown;
659
+ }
660
+
661
+ /**
662
+ * Schema defining the metadata for appeal representations, such as statements, third-party comments and final comments
663
+ */
664
+ export interface AppealRepresentation {
665
+ /**
666
+ * The unique identifier for the representation
667
+ */
668
+ representationId: string;
669
+ /**
670
+ * Internal case identifier
671
+ */
672
+ caseId: number | null;
673
+ /**
674
+ * External case identifier
675
+ */
676
+ caseReference: string;
677
+ /**
678
+ * Status of the representation
679
+ */
680
+ representationStatus:
681
+ | 'awaiting_review'
682
+ | 'referred'
683
+ | 'valid'
684
+ | 'invalid'
685
+ | 'invalid_incomplete'
686
+ | 'published'
687
+ | 'archived'
688
+ | 'draft'
689
+ | 'withdrawn'
690
+ | null;
691
+ /**
692
+ * The original representation
693
+ */
694
+ originalRepresentation: string | null;
695
+ /**
696
+ * Indicates if the representation is redacted
697
+ */
698
+ redacted: boolean | null;
699
+ /**
700
+ * The redacted version of the representation
701
+ */
702
+ redactedRepresentation: string | null;
703
+ /**
704
+ * Unique identifier for the case team member that performed the redaction
705
+ */
706
+ redactedBy: string | null;
707
+ /**
708
+ * A list of reasons why the representation has been marked as invalid or incomplete.
709
+ */
710
+ invalidOrIncompleteDetails:
711
+ | (
712
+ | 'Received after deadline'
713
+ | 'Includes personal or medical information'
714
+ | 'Includes inflammatory content'
715
+ | 'Duplicated or repeated comment'
716
+ | 'Not relevant to this appeal'
717
+ | 'Contains links to web pages'
718
+ | 'No list of suggested conditions'
719
+ | 'other_reason'
720
+ | null
721
+ )[]
722
+ | null;
723
+ /**
724
+ * A list of free text reasons why the representation has been marked as invalid or incomplete
725
+ */
726
+ otherInvalidOrIncompleteDetails: string[] | null;
727
+ /**
728
+ * Source of the representation (citizen or LPA)
729
+ */
730
+ source: 'lpa' | 'citizen' | null;
731
+ /**
732
+ * Service User Id of the person or organisation making the representation
733
+ */
734
+ serviceUserId: string | null;
735
+ /**
736
+ * The type of representation
737
+ */
738
+ representationType: 'statement' | 'comment' | 'final_comment' | 'proofs_evidence' | null;
739
+ dateReceived: string;
740
+ /**
741
+ * An array of documentIds
742
+ */
743
+ documentIds: string[];
744
+ [k: string]: unknown;
745
+ }
746
+
747
+ /**
748
+ * Schema defining the metadata for an appeal (S78)
749
+ */
750
+ export interface AppealS78Case {
751
+ /**
752
+ * Internal case identifier
753
+ */
754
+ caseId: number | null;
755
+ /**
756
+ * External case identifier
757
+ */
758
+ caseReference: string;
759
+ /**
760
+ * Case submission id - link to draft submission created by appellant
761
+ */
762
+ submissionId?: string | null;
763
+ /**
764
+ * The processing status for the appeal
765
+ */
766
+ caseStatus:
767
+ | 'assign_case_officer'
768
+ | 'validation'
769
+ | 'ready_to_start'
770
+ | 'lpa_questionnaire'
771
+ | 'issue_determination'
772
+ | 'statements'
773
+ | 'evidence'
774
+ | 'witnesses'
775
+ | 'final_comments'
776
+ | 'complete'
777
+ | 'invalid'
778
+ | 'closed'
779
+ | 'withdrawn'
780
+ | 'awaiting_transfer'
781
+ | 'transferred'
782
+ | 'event'
783
+ | 'awaiting_event';
784
+ /**
785
+ * The internal code for an appeal type, e.g. D (Householder)
786
+ */
787
+ caseType: 'C' | 'D' | 'F' | 'G' | 'H' | 'L' | 'Q' | 'S' | 'V' | 'W' | 'X' | 'Y' | 'Z' | 'ZA' | 'ZP';
788
+ /**
789
+ * The type of procedure for the appeal
790
+ */
791
+ caseProcedure: 'written' | 'hearing' | 'inquiry' | null;
792
+ /**
793
+ * A unique identifier for the Local Planning Authority
794
+ */
795
+ lpaCode: string;
796
+ /**
797
+ * Unique identifier for the case officer assigned to the case
798
+ */
799
+ caseOfficerId: string | null;
800
+ /**
801
+ * Unique identifier for the inspector assigned to the case
802
+ */
803
+ inspectorId: string | null;
804
+ /**
805
+ * A level used for allocation purposes
806
+ */
807
+ allocationLevel: 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | null;
808
+ /**
809
+ * A band used for allocation purposes
810
+ */
811
+ allocationBand: 1 | 2 | 3 | null;
812
+ /**
813
+ * A list of specialisms for allocation purposes
814
+ */
815
+ caseSpecialisms: string[] | null;
816
+ /**
817
+ * The date the appeal was submitted by the appellant
818
+ */
819
+ caseSubmittedDate: string;
820
+ /**
821
+ * The date the appeal was received
822
+ */
823
+ caseCreatedDate: string;
824
+ /**
825
+ * The date the appeal was last updated in the back-office
826
+ */
827
+ caseUpdatedDate: string;
828
+ /**
829
+ * The date since when the appeal was considered valid
830
+ */
831
+ caseValidDate: string | null;
832
+ /**
833
+ * The date the appeal was validated in the back-office
834
+ */
835
+ caseValidationDate: string | null;
836
+ /**
837
+ * The outcome of the validation action
838
+ */
839
+ caseValidationOutcome: 'valid' | 'invalid' | 'incomplete' | null;
840
+ /**
841
+ * A list of reasons why the appeal is invalid
842
+ */
843
+ caseValidationInvalidDetails: string[] | null;
844
+ /**
845
+ * A list of reasons why the appeal is incomplete
846
+ */
847
+ caseValidationIncompleteDetails: string[] | null;
848
+ /**
849
+ * When the validation outcome is incomplete, an extension may be granted to provide missing information
850
+ */
851
+ caseExtensionDate: string | null;
852
+ /**
853
+ * A date indicating when the case was started, resulting in the creation of a timetable
854
+ */
855
+ caseStartedDate: string | null;
856
+ /**
857
+ * A date indicating when the case was published
858
+ */
859
+ casePublishedDate: string | null;
860
+ /**
861
+ * Indicates if the case is linked, and the type of relationship
862
+ */
863
+ linkedCaseStatus: 'lead' | 'child' | null;
864
+ /**
865
+ * The reference of the lead case, if the case is a child case
866
+ */
867
+ leadCaseReference: string | null;
868
+ /**
869
+ * If the case is started and has a timetable, a deadline for the LPA to provide a response
870
+ */
871
+ lpaQuestionnaireDueDate: string | null;
872
+ /**
873
+ * The date the LPA provided a response to the case
874
+ */
875
+ lpaQuestionnaireSubmittedDate: string | null;
876
+ /**
877
+ * The date the LPA response was receeived
878
+ */
879
+ lpaQuestionnaireCreatedDate: string | null;
880
+ /**
881
+ * The date indicating when the questionnaire review was completed and the questionnaire published
882
+ */
883
+ lpaQuestionnairePublishedDate: string | null;
884
+ /**
885
+ * The outcome of the validation action
886
+ */
887
+ lpaQuestionnaireValidationOutcome: 'complete' | 'incomplete' | null;
888
+ /**
889
+ * The date the LPA response was validated
890
+ */
891
+ lpaQuestionnaireValidationOutcomeDate: string | null;
892
+ /**
893
+ * A list of reasons why the questionnaire is incomplete
894
+ */
895
+ lpaQuestionnaireValidationDetails: string[] | null;
896
+ /**
897
+ * A statement provided by the LPA
898
+ */
899
+ lpaStatement: string | null;
900
+ /**
901
+ * The date the appeal was withdrawn by the appellant
902
+ */
903
+ caseWithdrawnDate: string | null;
904
+ /**
905
+ * The date the appeal was transferred to a new case of a different type
906
+ */
907
+ caseTransferredDate: string | null;
908
+ /**
909
+ * The date the appeal was closed and the appellant requested to resubmit
910
+ */
911
+ transferredCaseClosedDate: string | null;
912
+ /**
913
+ * The date of the appeal decision
914
+ */
915
+ caseDecisionOutcomeDate: string | null;
916
+ /**
917
+ * The date the appeal decision was published
918
+ */
919
+ caseDecisionPublishedDate: string | null;
920
+ /**
921
+ * The final outcome for the decision
922
+ */
923
+ caseDecisionOutcome: 'allowed' | 'split_decision' | 'dismissed' | 'invalid' | null;
924
+ /**
925
+ * The date the appeal decision letter
926
+ */
927
+ caseCompletedDate: string | null;
928
+ /**
929
+ * Indicates if an enforcement notice is the reason for the appeal
930
+ */
931
+ enforcementNotice: boolean | null;
932
+ /**
933
+ * The unique identifier of the LPA application
934
+ */
935
+ applicationReference: string;
936
+ /**
937
+ * The date of the original LPA application
938
+ */
939
+ applicationDate: string;
940
+ /**
941
+ * The outcome of the original LPA decision
942
+ */
943
+ applicationDecision: 'granted' | 'refused' | 'not_received';
944
+ /**
945
+ * The date of the original LPA decision
946
+ */
947
+ applicationDecisionDate: string | null;
948
+ /**
949
+ * The statutory deadline for submitting an appeal from the original LPA decision date
950
+ */
951
+ caseSubmissionDueDate: string | null;
952
+ /**
953
+ * First line of address for the appeal site
954
+ */
955
+ siteAddressLine1: string;
956
+ /**
957
+ * Second line of address for the appeal site
958
+ */
959
+ siteAddressLine2: string | null;
960
+ /**
961
+ * Town / City of the site address
962
+ */
963
+ siteAddressTown: string;
964
+ /**
965
+ * County of the site address
966
+ */
967
+ siteAddressCounty: string | null;
968
+ /**
969
+ * Postal code of the site address
970
+ */
971
+ siteAddressPostcode: string;
972
+ /**
973
+ * Provided information on site accessibility
974
+ */
975
+ siteAccessDetails: string[] | null;
976
+ /**
977
+ * Provided information on site health and safety
978
+ */
979
+ siteSafetyDetails: string[] | null;
980
+ /**
981
+ * The site area, in square meters
982
+ */
983
+ siteAreaSquareMetres: number | null;
984
+ /**
985
+ * The floor space, in square meters
986
+ */
987
+ floorSpaceSquareMetres: number | null;
988
+ /**
989
+ * Indicates if the LPA considers the appeal type appropriate
990
+ */
991
+ isCorrectAppealType: boolean | null;
992
+ /**
993
+ * Indicates if the site is in a green belt
994
+ */
995
+ isGreenBelt: boolean | null;
996
+ /**
997
+ * Indicates if the site is in a conservation area
998
+ */
999
+ inConservationArea: boolean | null;
1000
+ /**
1001
+ * Indicates if the appellant has complete ownership of the site
1002
+ */
1003
+ ownsAllLand: boolean | null;
1004
+ /**
1005
+ * Indicates if the appellant has partial ownership of the site
1006
+ */
1007
+ ownsSomeLand: boolean | null;
1008
+ /**
1009
+ * Indicates if the appellant knows other owners of the site
1010
+ */
1011
+ knowsOtherOwners: 'Yes' | 'No' | 'Some' | null;
1012
+ /**
1013
+ * Indicates if the appellant knows all owners of the site
1014
+ */
1015
+ knowsAllOwners: 'Yes' | 'No' | 'Some' | null;
1016
+ /**
1017
+ * Indicates if the appellant has advertised the appeal to the LPA decision
1018
+ */
1019
+ advertisedAppeal: boolean | null;
1020
+ /**
1021
+ * The methods used to notify relevant parties
1022
+ */
1023
+ notificationMethod: ('notice' | 'letter' | 'advert' | null)[] | null;
1024
+ /**
1025
+ * Indicates if the appellant has informed other owners of the site
1026
+ */
1027
+ ownersInformed: boolean | null;
1028
+ /**
1029
+ * The original description of the development, as provided by the appellant
1030
+ */
1031
+ originalDevelopmentDescription: string | null;
1032
+ /**
1033
+ * Indicates that the LPA has changed the development description
1034
+ */
1035
+ changedDevelopmentDescription: boolean | null;
1036
+ /**
1037
+ * New conditions details provided by the LPA
1038
+ */
1039
+ newConditionDetails: string | null;
1040
+ /**
1041
+ * A list of related case references known to the appellant and the LPA
1042
+ */
1043
+ nearbyCaseReferences: string[] | null;
1044
+ /**
1045
+ * A list of neighbouring site addresses
1046
+ */
1047
+ neighbouringSiteAddresses:
1048
+ | {
1049
+ /**
1050
+ * First line of address of the site
1051
+ */
1052
+ neighbouringSiteAddressLine1: string;
1053
+ /**
1054
+ * Second line of address of the site
1055
+ */
1056
+ neighbouringSiteAddressLine2: string | null;
1057
+ /**
1058
+ * Town / City of the site address
1059
+ */
1060
+ neighbouringSiteAddressTown: string;
1061
+ /**
1062
+ * County of the site address
1063
+ */
1064
+ neighbouringSiteAddressCounty: string | null;
1065
+ /**
1066
+ * Postal code of the site address
1067
+ */
1068
+ neighbouringSiteAddressPostcode: string;
1069
+ /**
1070
+ * Provided information on site accessibility on this address
1071
+ */
1072
+ neighbouringSiteAccessDetails: string | null;
1073
+ /**
1074
+ * Provided information on site health and safety on this address
1075
+ */
1076
+ neighbouringSiteSafetyDetails: string | null;
1077
+ [k: string]: unknown;
1078
+ }[]
1079
+ | null;
1080
+ /**
1081
+ * A general reason given for the need to visit any neighbours
1082
+ */
1083
+ reasonForNeighbourVisits: string | null;
1084
+ /**
1085
+ * A list of affected listed building IDs from Historic England
1086
+ */
1087
+ affectedListedBuildingNumbers: string[] | null;
1088
+ /**
1089
+ * A list of changed listed building IDs from Historic England
1090
+ */
1091
+ changedListedBuildingNumbers: string[] | null;
1092
+ /**
1093
+ * A grant or loan has been made to preserve the listed building
1094
+ */
1095
+ preserveGrantLoan?: boolean | null;
1096
+ /**
1097
+ * Are Historic England to be consulted?
1098
+ */
1099
+ consultHistoricEngland?: boolean | null;
1100
+ /**
1101
+ * Indicates if the appellant has applied for costs
1102
+ */
1103
+ appellantCostsAppliedFor: boolean | null;
1104
+ /**
1105
+ * Indicates if the appellant has applied for costs
1106
+ */
1107
+ lpaCostsAppliedFor: boolean | null;
1108
+ /**
1109
+ * Indicates if the site is an agricultural holding
1110
+ */
1111
+ agriculturalHolding: boolean | null;
1112
+ /**
1113
+ * Indicates if the site is a tenant agricultural holding
1114
+ */
1115
+ tenantAgriculturalHolding: boolean | null;
1116
+ /**
1117
+ * Indicates if the site is an agricultural holding with other tenants
1118
+ */
1119
+ otherTenantsAgriculturalHolding: boolean | null;
1120
+ /**
1121
+ * If the site is an agricultural holding, indicates tenants are informed
1122
+ */
1123
+ informedTenantsAgriculturalHolding: boolean | null;
1124
+ /**
1125
+ * The procedure preference indicated by the appellant
1126
+ */
1127
+ appellantProcedurePreference: 'written' | 'hearing' | 'inquiry' | null;
1128
+ /**
1129
+ * The procedure details preference indicated by the appellant
1130
+ */
1131
+ appellantProcedurePreferenceDetails: string | null;
1132
+ /**
1133
+ * The duration of the procedure indicated by the appellant
1134
+ */
1135
+ appellantProcedurePreferenceDuration: number | null;
1136
+ /**
1137
+ * The number of witnesses appellant has suggested for inquiries preference
1138
+ */
1139
+ appellantProcedurePreferenceWitnessCount: number | null;
1140
+ /**
1141
+ * The planning obligation information, if available
1142
+ */
1143
+ statusPlanningObligation: string | null;
1144
+ /**
1145
+ * Indicates that a scheduled monument is affected
1146
+ */
1147
+ affectsScheduledMonument: boolean | null;
1148
+ /**
1149
+ * Indicates the existence of protected species
1150
+ */
1151
+ hasProtectedSpecies: boolean | null;
1152
+ /**
1153
+ * Indicates an area of outstanding beauty (National Landscape)
1154
+ */
1155
+ isAonbNationalLandscape: boolean | null;
1156
+ /**
1157
+ * The designated site names
1158
+ */
1159
+ designatedSitesNames: string[] | null;
1160
+ /**
1161
+ * Indicates a traveller site
1162
+ */
1163
+ isGypsyOrTravellerSite: boolean | null;
1164
+ /**
1165
+ * Indicates a PROW (public right of way)
1166
+ */
1167
+ isPublicRightOfWay: boolean | null;
1168
+ /**
1169
+ * The impact schedule from EIA
1170
+ */
1171
+ eiaEnvironmentalImpactSchedule: 'schedule-1' | 'schedule-2' | null;
1172
+ /**
1173
+ * The development description from EIA
1174
+ */
1175
+ eiaDevelopmentDescription:
1176
+ | 'agriculture-aquaculture'
1177
+ | 'change-extensions'
1178
+ | 'chemical-industry'
1179
+ | 'energy-industry'
1180
+ | 'extractive-industry'
1181
+ | 'food-industry'
1182
+ | 'infrastructure-projects'
1183
+ | 'mineral-industry'
1184
+ | 'other-projects'
1185
+ | 'production-processing-of-metals'
1186
+ | 'rubber-industry'
1187
+ | 'textile-industries'
1188
+ | 'tourism-leisure'
1189
+ | null;
1190
+ /**
1191
+ * The sensitive area details from EIA
1192
+ */
1193
+ eiaSensitiveAreaDetails: string | null;
1194
+ /**
1195
+ * EIA specific threshold
1196
+ */
1197
+ eiaColumnTwoThreshold: boolean | null;
1198
+ /**
1199
+ * EIA screening opinion
1200
+ */
1201
+ eiaScreeningOpinion: boolean | null;
1202
+ /**
1203
+ * EIA environmental statement required
1204
+ */
1205
+ eiaRequiresEnvironmentalStatement: boolean | null;
1206
+ /**
1207
+ * EIA completed environmental statement required
1208
+ */
1209
+ eiaCompletedEnvironmentalStatement: boolean | null;
1210
+ /**
1211
+ * Indicates statutory consultees
1212
+ */
1213
+ hasStatutoryConsultees: boolean | null;
1214
+ /**
1215
+ * The details of the bodies consulted
1216
+ */
1217
+ consultedBodiesDetails: string | null;
1218
+ /**
1219
+ * Indicates the existence of an infrastructure levy
1220
+ */
1221
+ hasInfrastructureLevy: boolean | null;
1222
+ /**
1223
+ * Indicates if the infrastructure levy is formally adopted
1224
+ */
1225
+ isInfrastructureLevyFormallyAdopted: boolean | null;
1226
+ /**
1227
+ * The date of the infrastructure levy adoption
1228
+ */
1229
+ infrastructureLevyAdoptedDate: string | null;
1230
+ /**
1231
+ * The expected date of the infrastructure levy
1232
+ */
1233
+ infrastructureLevyExpectedDate: string | null;
1234
+ /**
1235
+ * The procedure preference indicated by the LPA
1236
+ */
1237
+ lpaProcedurePreference: 'written' | 'hearing' | 'inquiry' | null;
1238
+ /**
1239
+ * The procedure details preference indicated by the LPA
1240
+ */
1241
+ lpaProcedurePreferenceDetails: string | null;
1242
+ /**
1243
+ * The duration of enquiry indicated by the LPA
1244
+ */
1245
+ lpaProcedurePreferenceDuration: number | null;
1246
+ caseworkReason: string | null;
1247
+ importantInformation: string | null;
1248
+ jurisdiction: string | null;
1249
+ redeterminedIndicator: string | null;
1250
+ /**
1251
+ * The date of the cost report
1252
+ */
1253
+ dateCostsReportDespatched: string | null;
1254
+ dateNotRecoveredOrDerecovered: string | null;
1255
+ dateRecovered: string | null;
1256
+ originalCaseDecisionDate: string | null;
1257
+ targetDate: string | null;
1258
+ appellantCommentsSubmittedDate: string | null;
1259
+ appellantStatementSubmittedDate: string | null;
1260
+ appellantProofsSubmittedDate: string | null;
1261
+ finalCommentsDueDate: string | null;
1262
+ interestedPartyRepsDueDate: string | null;
1263
+ lpaCommentsSubmittedDate: string | null;
1264
+ lpaProofsSubmittedDate: string | null;
1265
+ lpaStatementSubmittedDate: string | null;
1266
+ proofsOfEvidenceDueDate: string | null;
1267
+ siteNoticesSentDate: string | null;
1268
+ statementDueDate: string | null;
1269
+ /**
1270
+ * The net gain in residences of the proposed development
1271
+ */
1272
+ numberOfResidencesNetChange: number | null;
1273
+ siteGridReferenceEasting: string | null;
1274
+ siteGridReferenceNorthing: string | null;
1275
+ siteViewableFromRoad: boolean | null;
1276
+ siteWithinSSSI: boolean | null;
1277
+ typeOfPlanningApplication:
1278
+ | 'full-appeal'
1279
+ | 'householder-planning'
1280
+ | 'outline-planning'
1281
+ | 'prior-approval'
1282
+ | 'reserved-matters'
1283
+ | 'removal-or-variation-of-conditions'
1284
+ | 'listed-building'
1285
+ | 'minor-commercial-development'
1286
+ | null;
1287
+ developmentType:
1288
+ | 'householder'
1289
+ | 'change-of-use'
1290
+ | 'major-dwellings'
1291
+ | 'major-industry-storage'
1292
+ | 'major-offices'
1293
+ | 'major-retail-services'
1294
+ | 'major-traveller-caravan'
1295
+ | 'mineral-workings'
1296
+ | 'minor-dwellings'
1297
+ | 'minor-industry-storage'
1298
+ | 'minor-offices'
1299
+ | 'minor-retail-services'
1300
+ | 'minor-traveller-caravan'
1301
+ | 'other-major'
1302
+ | 'other-minor'
1303
+ | null;
1304
+ [k: string]: unknown;
1305
+ }
1306
+
1307
+ /**
1308
+ * Schema defining the data returned by the DaRT API
1309
+ */
1310
+ export interface DaRTAPIResponse {
1311
+ /**
1312
+ * Internal case identifier
1313
+ */
1314
+ caseId?: number;
1315
+ /**
1316
+ * External case identifier
1317
+ */
1318
+ caseReference: number;
1319
+ /**
1320
+ * The processing state for the case
1321
+ */
1322
+ caseStatus?: string;
1323
+ /**
1324
+ * The internal code for a type of case
1325
+ */
1326
+ caseType?: string;
1327
+ /**
1328
+ * The type of procedure for the case
1329
+ */
1330
+ caseProcedure?: string | null;
1331
+ /**
1332
+ * PINS internal code for LPA
1333
+ */
1334
+ lpaCode?: string | null;
1335
+ /**
1336
+ * Name of the LPA
1337
+ */
1338
+ lpaName?: string | null;
1339
+ /**
1340
+ * A case level used for allocation purposes
1341
+ */
1342
+ allocationLevel?: string | null;
1343
+ /**
1344
+ * A band used for allocation purposes
1345
+ */
1346
+ allocationBand?: string | null;
1347
+ /**
1348
+ * A list of case specialisms for allocation purposes
1349
+ */
1350
+ caseSpecialisms?: string[] | null;
1351
+ /**
1352
+ * The date the case was submitted by the appellant
1353
+ */
1354
+ caseSubmittedDate?: string;
1355
+ /**
1356
+ * The date the case was received
1357
+ */
1358
+ caseCreatedDate?: string;
1359
+ /**
1360
+ * The date the case was last updated in the back-office
1361
+ */
1362
+ caseUpdatedDate?: string;
1363
+ /**
1364
+ * The date since when the case was considered valid
1365
+ */
1366
+ caseValidDate?: string | null;
1367
+ /**
1368
+ * The date the case was validated in the back-office
1369
+ */
1370
+ caseValidationDate?: string | null;
1371
+ /**
1372
+ * The outcome of the validation action
1373
+ */
1374
+ caseValidationOutcome?: string | null;
1375
+ /**
1376
+ * A list of reasons why the appeal is invalid
1377
+ */
1378
+ caseValidationInvalidDetails?: string[] | null;
1379
+ /**
1380
+ * A list of reasons why the appeal is incomplete
1381
+ */
1382
+ caseValidationIncompleteDetails?: string[] | null;
1383
+ /**
1384
+ * When the validation outcome is incomplete, an extension may be granted to provide missing information
1385
+ */
1386
+ caseExtensionDate?: string | null;
1387
+ /**
1388
+ * A date indicating when the case was started, resulting in the creation of a timetable
1389
+ */
1390
+ caseStartedDate?: string | null;
1391
+ /**
1392
+ * A date indicating when the case was published
1393
+ */
1394
+ casePublishedDate?: string | null;
1395
+ /**
1396
+ * Indicates if the case is linked, and the type of relationship
1397
+ */
1398
+ linkedCaseStatus?: string | null;
1399
+ /**
1400
+ * The reference of the lead case, if the case is a child case
1401
+ */
1402
+ leadCaseReference?: string | null;
1403
+ /**
1404
+ * The date the case was withdrawn by the appellant
1405
+ */
1406
+ caseWithdrawnDate?: string | null;
1407
+ /**
1408
+ * The date the case was transferred to a new case of a different type
1409
+ */
1410
+ caseTransferredDate?: string | null;
1411
+ /**
1412
+ * The date the case was closed and the appellant requested to resubmit
1413
+ */
1414
+ transferredCaseClosedDate?: string | null;
1415
+ /**
1416
+ * The date of the case decision
1417
+ */
1418
+ caseDecisionOutcomeDate?: string | null;
1419
+ /**
1420
+ * The date the case decision was published
1421
+ */
1422
+ caseDecisionPublishedDate?: string | null;
1423
+ /**
1424
+ * The final outcome for the decision
1425
+ */
1426
+ caseDecisionOutcome?: string | null;
1427
+ /**
1428
+ * The date the case decision letter
1429
+ */
1430
+ caseCompletedDate?: string | null;
1431
+ /**
1432
+ * Indicates if an enforcement notice is the reason for the appeal
1433
+ */
1434
+ enforcementNotice?: boolean | null;
1435
+ /**
1436
+ * The unique identifier of the LPA application
1437
+ */
1438
+ applicationReference: string;
1439
+ /**
1440
+ * The date of the original LPA application
1441
+ */
1442
+ applicationDate?: string;
1443
+ /**
1444
+ * The outcome of the original LPA decision
1445
+ */
1446
+ applicationDecision?: string;
1447
+ /**
1448
+ * The date of the original LPA decision
1449
+ */
1450
+ lpaDecisionDate?: string | null;
1451
+ /**
1452
+ * The statutory deadline for submitting an appeal from the original LPA decision date
1453
+ */
1454
+ caseSubmissionDueDate?: string | null;
1455
+ /**
1456
+ * First line of case site address
1457
+ */
1458
+ siteAddressLine1?: string | null;
1459
+ /**
1460
+ * Second line of case site address
1461
+ */
1462
+ siteAddressLine2?: string | null;
1463
+ /**
1464
+ * Town / City of the site address
1465
+ */
1466
+ siteAddressTown?: string | null;
1467
+ /**
1468
+ * County of the site address
1469
+ */
1470
+ siteAddressCounty?: string | null;
1471
+ /**
1472
+ * Postal code of the site address
1473
+ */
1474
+ siteAddressPostcode?: string | null;
1475
+ /**
1476
+ * Indicates if the LPA considers the appeal type appropriate
1477
+ */
1478
+ isCorrectAppealType?: boolean | null;
1479
+ /**
1480
+ * The original description of the development, as provided by the appellant
1481
+ */
1482
+ originalDevelopmentDescription?: string | null;
1483
+ /**
1484
+ * Indicates that the LPA has changed the development description
1485
+ */
1486
+ changedDevelopmentDescription?: boolean | null;
1487
+ /**
1488
+ * Since the original application, a number of things have changed.
1489
+ */
1490
+ newConditionDetails?: string | null;
1491
+ /**
1492
+ * A list of related case references known to the appellant and the LPA
1493
+ */
1494
+ nearbyCaseReferences?: string[] | null;
1495
+ /**
1496
+ * A list of neighbouring site addresses
1497
+ */
1498
+ neighbouringSiteAddresses?:
1499
+ | {
1500
+ /**
1501
+ * First line of address of the neighbouring site
1502
+ */
1503
+ neighbouringSiteAddressLine1: string | null;
1504
+ /**
1505
+ * Second line of address of the neighbouring site
1506
+ */
1507
+ neighbouringSiteAddressLine2: string | null;
1508
+ /**
1509
+ * Town / City of the neighbouring site address
1510
+ */
1511
+ neighbouringSiteAddressTown: string | null;
1512
+ /**
1513
+ * County of the neighbouring site address
1514
+ */
1515
+ neighbouringSiteAddressCounty: string | null;
1516
+ /**
1517
+ * Postal code of the neighbouring site address
1518
+ */
1519
+ neighbouringSiteAddressPostcode: string | null;
1520
+ [k: string]: unknown;
1521
+ }[]
1522
+ | null;
1523
+ /**
1524
+ * A list of affected listed building IDs from Historic England
1525
+ */
1526
+ affectedListedBuildingNumbers?: string[] | null;
1527
+ /**
1528
+ * Indicates if the appellant has applied for costs
1529
+ */
1530
+ appellantCostsAppliedFor?: boolean | null;
1531
+ /**
1532
+ * Indicates if the LPA has applied for costs
1533
+ */
1534
+ lpaCostsAppliedFor?: boolean | null;
1535
+ /**
1536
+ * Name of the appellant
1537
+ */
1538
+ appellantName?: string;
1539
+ /**
1540
+ * The type of event
1541
+ */
1542
+ typeOfEvent?: string | null;
1543
+ /**
1544
+ * Event start date and time
1545
+ */
1546
+ startDateOfTheEvent?: string | null;
1547
+ /**
1548
+ * Name of inspector allocated to case
1549
+ */
1550
+ inspectorName?: string | null;
1551
+ /**
1552
+ * name of case officer assigned to case
1553
+ */
1554
+ caseOfficerName?: string | null;
1555
+ /**
1556
+ * The qualifications of the inspector
1557
+ */
1558
+ inspectorQualifications?: string | null;
1559
+ [k: string]: unknown;
1560
+ }
1561
+
1562
+ /**
1563
+ * A list of users from EntraID
1564
+ */
1565
+ export interface EntraIDUserObjects {
1566
+ /**
1567
+ * The employee's unique identifier
1568
+ */
1569
+ employeeId: string;
1570
+ /**
1571
+ * The unique identifier within the EntraID
1572
+ */
1573
+ id: string;
1574
+ /**
1575
+ * The employee's given name
1576
+ */
1577
+ givenName: string;
1578
+ /**
1579
+ * The employee's surname
1580
+ */
1581
+ surname: string;
1582
+ /**
1583
+ * The employee's email address
1584
+ */
1585
+ userPrincipalName: string;
1586
+ [k: string]: unknown;
1587
+ }
1588
+
1589
+ /**
1590
+ * Folders can have optional parents. All folders belong to a Case.
1591
+ */
1592
+ export interface Folder {
1593
+ /**
1594
+ * The unique identifier within the Back Office.
1595
+ */
1596
+ id: number;
1597
+ /**
1598
+ * The case reference this folder belongs to.
1599
+ */
1600
+ caseReference: string;
1601
+ /**
1602
+ * Folder display name in English.
1603
+ */
1604
+ displayNameEnglish: string;
1605
+ /**
1606
+ * Folder display name in Welsh.
1607
+ */
1608
+ displayNameWelsh: string | null;
1609
+ /**
1610
+ * Optional parent folder ID.
1611
+ */
1612
+ parentFolderId: number | null;
1613
+ caseStage:
1614
+ | 'draft'
1615
+ | 'pre-application'
1616
+ | 'acceptance'
1617
+ | 'pre-examination'
1618
+ | 'examination'
1619
+ | 'recommendation'
1620
+ | 'decision'
1621
+ | 'post_decision'
1622
+ | 'withdrawn'
1623
+ | 'developers_application'
1624
+ | 'correspondence'
1625
+ | '0'
1626
+ | null;
1627
+ [k: string]: unknown;
1628
+ }
1629
+
1630
+ /**
1631
+ * Schema defining the data returned by the DaRT API
1632
+ */
1633
+ export interface GetTimesheetsAPIResponse {
1634
+ /**
1635
+ * External case identifier
1636
+ */
1637
+ caseReference: number;
1638
+ /**
1639
+ * The unique identifier of the application
1640
+ */
1641
+ applicationReference: string;
1642
+ /**
1643
+ * First line of case site address
1644
+ */
1645
+ siteAddressLine1?: string;
1646
+ /**
1647
+ * Second line of case site address
1648
+ */
1649
+ siteAddressLine2?: string;
1650
+ /**
1651
+ * Town / City of the site address
1652
+ */
1653
+ siteAddressTown?: string;
1654
+ /**
1655
+ * County of the site address
1656
+ */
1657
+ siteAddressCounty?: string;
1658
+ /**
1659
+ * Postal code of the site address
1660
+ */
1661
+ siteAddressPostcode?: string;
1662
+ [k: string]: unknown;
1663
+ }
1664
+
1665
+ /**
1666
+ * Delta of listed building data pushed by the ODW. Primary use case is to support Appeals UI
1667
+ */
1668
+ export interface ListedBuilding {
1669
+ /**
1670
+ * A unique identifier for the listed building.
1671
+ */
1672
+ entity: number;
1673
+ /**
1674
+ * Reference number for the listed buildign
1675
+ */
1676
+ reference: string;
1677
+ /**
1678
+ * Name of listed building
1679
+ */
1680
+ name: string;
1681
+ /**
1682
+ * Grade assigned to the listing.
1683
+ */
1684
+ listedBuildingGrade: string;
1685
+ [k: string]: unknown;
1686
+ }
1687
+
1688
+ /**
1689
+ * Temporary copy of listed-building to ensure compatibility until ODW is updated
1690
+ */
1691
+ export interface ListedBuildings {
1692
+ /**
1693
+ * A unique identifier for the listed building.
1694
+ */
1695
+ entity: number;
1696
+ /**
1697
+ * Reference number for the listed buildign
1698
+ */
1699
+ reference: string;
1700
+ /**
1701
+ * Name of listed building
1702
+ */
1703
+ name: string;
1704
+ /**
1705
+ * Grade assigned to the listing.
1706
+ */
1707
+ listedBuildingGrade: string;
1708
+ [k: string]: unknown;
1709
+ }
1710
+
1711
+ /**
1712
+ * NSIP document schema
1713
+ */
1714
+ export interface NSIPDocument {
1715
+ /**
1716
+ * The unique identifier for the file. This will be different to documentReference
1717
+ */
1718
+ documentId: string;
1719
+ /**
1720
+ * Internal case identifier
1721
+ */
1722
+ caseId: number | null;
1723
+ caseRef: string | null;
1724
+ /**
1725
+ * Reference used throughout ODT <CaseRef>-<SequenceNo>
1726
+ */
1727
+ documentReference: string | null;
1728
+ version: number;
1729
+ examinationRefNo: string | null;
1730
+ /**
1731
+ * Current stored filename of the file
1732
+ */
1733
+ filename: string;
1734
+ /**
1735
+ * Original filename of file
1736
+ */
1737
+ originalFilename: string;
1738
+ size: number;
1739
+ mime: string | null;
1740
+ /**
1741
+ * The internal location of the document
1742
+ */
1743
+ documentURI: string;
1744
+ /**
1745
+ * The location of the published document. Only applicable to documents which are published.
1746
+ */
1747
+ publishedDocumentURI: string | null;
1748
+ path: string | null;
1749
+ virusCheckStatus: 'not_scanned' | 'scanned' | 'affected' | null;
1750
+ fileMD5: string | null;
1751
+ dateCreated: string;
1752
+ lastModified: string | null;
1753
+ caseType: 'nsip' | 'has' | null;
1754
+ redactedStatus: 'not_redacted' | 'redacted' | null;
1755
+ publishedStatus:
1756
+ | 'not_checked'
1757
+ | 'checked'
1758
+ | 'ready_to_publish'
1759
+ | 'do_not_publish'
1760
+ | 'publishing'
1761
+ | 'published'
1762
+ | 'archived'
1763
+ | 'unpublished'
1764
+ | 'unpublishing'
1765
+ | 'awaiting_upload'
1766
+ | null;
1767
+ datePublished: string | null;
1768
+ documentType: string | null;
1769
+ securityClassification: 'public' | 'official' | 'secret' | 'top-secret' | null;
1770
+ sourceSystem: 'back-office-appeals' | 'back-office-applications' | 'horizon' | 'ni_file' | 'sharepoint' | null;
1771
+ origin: 'pins' | 'citizen' | 'lpa' | 'ogd' | null;
1772
+ owner: string | null;
1773
+ /**
1774
+ * Name of person who authored document
1775
+ */
1776
+ author: string | null;
1777
+ /**
1778
+ * Welsh name of person who authored document
1779
+ */
1780
+ authorWelsh?: string | null;
1781
+ /**
1782
+ * The on behalf of or agent submitter of document
1783
+ */
1784
+ representative: string | null;
1785
+ description: string | null;
1786
+ descriptionWelsh?: string | null;
1787
+ documentCaseStage:
1788
+ | 'draft'
1789
+ | 'pre-application'
1790
+ | 'acceptance'
1791
+ | 'pre-examination'
1792
+ | 'examination'
1793
+ | 'recommendation'
1794
+ | 'decision'
1795
+ | 'post_decision'
1796
+ | 'withdrawn'
1797
+ | 'developers_application'
1798
+ | 'correspondence'
1799
+ | '0'
1800
+ | null;
1801
+ /**
1802
+ * Filter field to provide additional filtering
1803
+ */
1804
+ filter1: string | null;
1805
+ /**
1806
+ * Filter field in Welsh
1807
+ */
1808
+ filter1Welsh?: string | null;
1809
+ /**
1810
+ * Filter field to provide additional filtering
1811
+ */
1812
+ filter2: string | null;
1813
+ /**
1814
+ * The folder where the document exists
1815
+ */
1816
+ horizonFolderId: string | null;
1817
+ /**
1818
+ * The GUID of the transcript document (if one was provided).
1819
+ */
1820
+ transcriptId: string | null;
1821
+ [k: string]: unknown;
1822
+ }
1823
+
1824
+ /**
1825
+ * Examination Timetable for an NSIP Project
1826
+ */
1827
+ export interface ExaminationTimetable {
1828
+ /**
1829
+ * Unique string reference of the associated Case
1830
+ */
1831
+ caseReference: string;
1832
+ /**
1833
+ * whether the Examination Timetable has been published or not
1834
+ */
1835
+ published?: boolean | null;
1836
+ events: Event[];
1837
+ [k: string]: unknown;
1838
+ }
1839
+ export interface Event {
1840
+ /**
1841
+ * Event Identifier
1842
+ */
1843
+ eventId: number;
1844
+ /**
1845
+ * Compulsory Acquisition Hearing/Deadline/Issue Specific Hearing etc
1846
+ */
1847
+ type:
1848
+ | 'Accompanied Site Inspection'
1849
+ | 'Compulsory Acquisition Hearing'
1850
+ | 'Deadline'
1851
+ | 'Deadline For Close Of Examination'
1852
+ | 'Issued By'
1853
+ | 'Issue Specific Hearing'
1854
+ | 'Open Floor Hearing'
1855
+ | 'Other Meeting'
1856
+ | 'Preliminary Meeting'
1857
+ | 'Procedural Deadline (Pre-Examination)'
1858
+ | 'Procedural Decision'
1859
+ | 'Publication Of';
1860
+ /**
1861
+ * Title Of Examination Timetable Event
1862
+ */
1863
+ eventTitle: string;
1864
+ /**
1865
+ * Title Of Examination Timetable Event In Welsh
1866
+ */
1867
+ eventTitleWelsh?: string | null;
1868
+ description: string;
1869
+ descriptionWelsh?: string | null;
1870
+ /**
1871
+ * Optional start date for event window
1872
+ */
1873
+ eventDeadlineStartDate?: string | null;
1874
+ /**
1875
+ * Event Date = effective deadline (end) date
1876
+ */
1877
+ date: string;
1878
+ eventLineItems: LineItem[];
1879
+ [k: string]: unknown;
1880
+ }
1881
+ export interface LineItem {
1882
+ description: string;
1883
+ descriptionWelsh?: string | null;
1884
+ [k: string]: unknown;
1885
+ }
1886
+
1887
+ /**
1888
+ * NSIP Project Update (formerly known as Banners)
1889
+ */
1890
+ export interface NSIPProjectUpdate {
1891
+ /**
1892
+ * The unique identifier within the Back Office.
1893
+ */
1894
+ id: number;
1895
+ /**
1896
+ * the case reference this update relates to
1897
+ */
1898
+ caseReference: string;
1899
+ /**
1900
+ * The date the update was published
1901
+ */
1902
+ updateDate: string | null;
1903
+ /**
1904
+ * Internal title or name of the update
1905
+ */
1906
+ updateName: string | null;
1907
+ /**
1908
+ * HTML content of the update in English. Can only include `<a> <b> <ul> <li>` tags.
1909
+ */
1910
+ updateContentEnglish: string;
1911
+ /**
1912
+ * HTML content of the update in Welsh. Can only include `<a> <b> <ul> <li>` tags.
1913
+ */
1914
+ updateContentWelsh: string | null;
1915
+ /**
1916
+ * The current status of this update
1917
+ */
1918
+ updateStatus: 'draft' | 'ready-to-publish' | 'published' | 'ready-to-unpublish' | 'unpublished' | 'archived';
1919
+ [k: string]: unknown;
1920
+ }
1921
+
1922
+ /**
1923
+ * Subset of Pins Data Model [Case]
1924
+ */
1925
+ export interface NSIPProject {
1926
+ /**
1927
+ * The unique identifier within the Back Office. This is not the same as the case reference
1928
+ */
1929
+ caseId: number;
1930
+ caseReference: string | null;
1931
+ /**
1932
+ * Name of project
1933
+ */
1934
+ projectName: string | null;
1935
+ /**
1936
+ * Name of project in Welsh
1937
+ */
1938
+ projectNameWelsh?: string | null;
1939
+ projectDescription: string | null;
1940
+ projectDescriptionWelsh?: string | null;
1941
+ /**
1942
+ * Decision: approved/refused/split-decision
1943
+ */
1944
+ decision: 'approved' | 'refused' | 'split-decision' | null;
1945
+ publishStatus: 'published' | 'unpublished' | null;
1946
+ /**
1947
+ * {Sector Abbreviation} - {Sector Display Name}
1948
+ */
1949
+ sector:
1950
+ | 'BC - Business and Commercial'
1951
+ | 'EN - Energy'
1952
+ | 'TR - Transport'
1953
+ | 'WA - Water'
1954
+ | 'WS - Waste'
1955
+ | 'WW - Waste Water'
1956
+ | null;
1957
+ /**
1958
+ * {SubSector Abbreviation} - {SubSector Display Name}
1959
+ */
1960
+ projectType:
1961
+ | 'BC01 - Office Use'
1962
+ | 'BC02 - Research and Development of Products or Processes'
1963
+ | 'BC03 - An Industrial Process or Processes'
1964
+ | 'BC04 - Storage or Distribution of Goods'
1965
+ | 'BC05 - Conferences'
1966
+ | 'BC06 - Exhibitions'
1967
+ | 'BC07 - Sport'
1968
+ | 'BC08 - Leisure'
1969
+ | 'BC09 - Tourism'
1970
+ | 'EN01 - Generating Stations'
1971
+ | 'EN02 - Electric Lines'
1972
+ | 'EN03 - Underground Gas Storage Facilities'
1973
+ | 'EN04 - LNG Facilities'
1974
+ | 'EN05 - Gas Reception Facilities'
1975
+ | 'EN06 - Gas Transporter Pipe-lines'
1976
+ | 'EN07 - Other Pipe-lines'
1977
+ | 'TR01 - Highways'
1978
+ | 'TR02 - Airports'
1979
+ | 'TR03 - Harbour Facilities'
1980
+ | 'TR04 - Railways'
1981
+ | 'TR05 - Rail Freight Interchanges'
1982
+ | 'WS01 - Hazardous Waste Facilities'
1983
+ | 'WW01 - Waste Water Treatment Plants'
1984
+ | 'WA01 - Dams and Reservoirs'
1985
+ | 'WA02 - Transfer of Water Resources'
1986
+ | null;
1987
+ sourceSystem: 'back-office-applications' | 'horizon';
1988
+ /**
1989
+ * Process stage identifier
1990
+ */
1991
+ stage:
1992
+ | 'draft'
1993
+ | 'pre_application'
1994
+ | 'acceptance'
1995
+ | 'pre_examination'
1996
+ | 'examination'
1997
+ | 'recommendation'
1998
+ | 'decision'
1999
+ | 'post_decision'
2000
+ | 'withdrawn'
2001
+ | null;
2002
+ /**
2003
+ * Description of site location
2004
+ */
2005
+ projectLocation: string | null;
2006
+ /**
2007
+ * Description of site location in Welsh
2008
+ */
2009
+ projectLocationWelsh?: string | null;
2010
+ /**
2011
+ * PINS Project email address pubished on website
2012
+ */
2013
+ projectEmailAddress: string | null;
2014
+ regions: (
2015
+ | 'east_midlands'
2016
+ | 'eastern'
2017
+ | 'london'
2018
+ | 'north_east'
2019
+ | 'north_west'
2020
+ | 'south_east'
2021
+ | 'south_west'
2022
+ | 'wales'
2023
+ | 'west_midlands'
2024
+ | 'yorkshire_and_the_humber'
2025
+ )[];
2026
+ /**
2027
+ * Drives addition of Transboundary tab on website. [TODO]
2028
+ */
2029
+ transboundary: boolean | null;
2030
+ /**
2031
+ * Project site Easting co-ordinate.
2032
+ */
2033
+ easting: number | null;
2034
+ /**
2035
+ * Project site Northing co-ordinate.
2036
+ */
2037
+ northing: number | null;
2038
+ /**
2039
+ * Welsh Language translation required.
2040
+ */
2041
+ welshLanguage: boolean | null;
2042
+ /**
2043
+ * Resolution of pinned map. Set when co-ordinates are created.
2044
+ */
2045
+ mapZoomLevel: 'country' | 'region' | 'county' | 'borough' | 'district' | 'city' | 'town' | 'junction' | 'none' | null;
2046
+ /**
2047
+ * Relevant Government Department. [TODO]
2048
+ */
2049
+ secretaryOfState: string | null;
2050
+ _preApplicationDates?: unknown;
2051
+ /**
2052
+ * Date at which applicant notify PINS of a project (pre-publishing)
2053
+ */
2054
+ datePINSFirstNotifiedOfProject: string | null;
2055
+ /**
2056
+ * Date Project Appears On Website
2057
+ */
2058
+ dateProjectAppearsOnWebsite: string | null;
2059
+ /**
2060
+ * Approximate Anticipated Submission Date Of Application, e.g. Q3 2023
2061
+ */
2062
+ anticipatedSubmissionDateNonSpecific: string | null;
2063
+ /**
2064
+ * Anticipated Submission Date Of Application
2065
+ */
2066
+ anticipatedDateOfSubmission: string | null;
2067
+ /**
2068
+ * (TBC by Env. Services Team)
2069
+ */
2070
+ screeningOpinionSought: string | null;
2071
+ /**
2072
+ * (TBC by Env. Services Team)
2073
+ */
2074
+ screeningOpinionIssued: string | null;
2075
+ /**
2076
+ * (TBC by Env. Services Team)
2077
+ */
2078
+ scopingOpinionSought: string | null;
2079
+ /**
2080
+ * (TBC by Env. Services Team)
2081
+ */
2082
+ scopingOpinionIssued: string | null;
2083
+ /**
2084
+ * Applicant must notify PINS of statutory consultation
2085
+ */
2086
+ section46Notification: string | null;
2087
+ _acceptanceDates?: unknown;
2088
+ /**
2089
+ * Date Applcation is submitted
2090
+ */
2091
+ dateOfDCOSubmission: string | null;
2092
+ /**
2093
+ * DeadlineForAcceptanceDecision
2094
+ */
2095
+ deadlineForAcceptanceDecision: string | null;
2096
+ /**
2097
+ * Date Application is Formerly Accepted by PINS
2098
+ */
2099
+ dateOfDCOAcceptance: string | null;
2100
+ /**
2101
+ * Date of Non Acceptance
2102
+ */
2103
+ dateOfNonAcceptance: string | null;
2104
+ _preExaminationDates?: unknown;
2105
+ /**
2106
+ * Date at which point publish can submit relevant reps
2107
+ */
2108
+ dateOfRepresentationPeriodOpen: string | null;
2109
+ /**
2110
+ * Date at which point publish can no longer submit relevant reps
2111
+ */
2112
+ dateOfRelevantRepresentationClose: string | null;
2113
+ /**
2114
+ * ExtensionToDateRelevantRepresentationsClose
2115
+ */
2116
+ extensionToDateRelevantRepresentationsClose: string | null;
2117
+ /**
2118
+ * Date at which relevant reps appear on the website
2119
+ */
2120
+ dateRRepAppearOnWebsite: string | null;
2121
+ dateIAPIDue: string | null;
2122
+ rule6LetterPublishDate: string | null;
2123
+ /**
2124
+ * Meeting between all parties inc public
2125
+ */
2126
+ preliminaryMeetingStartDate: string | null;
2127
+ notificationDateForPMAndEventsDirectlyFollowingPM: string | null;
2128
+ notificationDateForEventsDeveloper: string | null;
2129
+ _examinationDates?: unknown;
2130
+ /**
2131
+ * Applicant has notified all parties of application
2132
+ */
2133
+ dateSection58NoticeReceived: string | null;
2134
+ /**
2135
+ * ConfirmedStartOfExamination by panel
2136
+ */
2137
+ confirmedStartOfExamination: string | null;
2138
+ rule8LetterPublishDate: string | null;
2139
+ /**
2140
+ * DeadlineForCloseOfExamination
2141
+ */
2142
+ deadlineForCloseOfExamination: string | null;
2143
+ /**
2144
+ * ConfirmedSEndOfExamination by panel
2145
+ */
2146
+ dateTimeExaminationEnds: string | null;
2147
+ /**
2148
+ * Examination Period extended to this date
2149
+ */
2150
+ stage4ExtensionToExamCloseDate: string | null;
2151
+ _recommendationDates?: unknown;
2152
+ /**
2153
+ * DeadlineForSubmissionOfRecommendation
2154
+ */
2155
+ deadlineForSubmissionOfRecommendation: string | null;
2156
+ /**
2157
+ * Date recomm report sent to SoS
2158
+ */
2159
+ dateOfRecommendations: string | null;
2160
+ /**
2161
+ * Recommendation period extended to this date
2162
+ */
2163
+ stage5ExtensionToRecommendationDeadline: string | null;
2164
+ _decisionDates?: unknown;
2165
+ /**
2166
+ * DeadlineForDecision
2167
+ */
2168
+ deadlineForDecision: string | null;
2169
+ /**
2170
+ * Decision by SoS
2171
+ */
2172
+ confirmedDateOfDecision: string | null;
2173
+ /**
2174
+ * Decision period extended to this date
2175
+ */
2176
+ stage5ExtensionToDecisionDeadline: string | null;
2177
+ _postDecisionDates?: unknown;
2178
+ /**
2179
+ * Judicial Review
2180
+ */
2181
+ jRPeriodEndDate: string | null;
2182
+ _withdrawalDates?: unknown;
2183
+ /**
2184
+ * DateProjectWithdrawn by applicant
2185
+ */
2186
+ dateProjectWithdrawn: string | null;
2187
+ /**
2188
+ * Maps to [Employee].[EmployeeID].
2189
+ */
2190
+ operationsLeadId: string | null;
2191
+ /**
2192
+ * New NSIP role, Maps to [Employee].[EmployeeID]
2193
+ */
2194
+ operationsManagerId: string | null;
2195
+ /**
2196
+ * Maps to [Employee].[EmployeeID]
2197
+ */
2198
+ caseManagerId: string | null;
2199
+ nsipOfficerIds: string[];
2200
+ nsipAdministrationOfficerIds: string[];
2201
+ /**
2202
+ * Maps to [Employee].[EmployeeID]
2203
+ */
2204
+ leadInspectorId: string | null;
2205
+ inspectorIds: string[];
2206
+ /**
2207
+ * Maps to [Employee].[EmployeeID]
2208
+ */
2209
+ environmentalServicesOfficerId: string | null;
2210
+ /**
2211
+ * Maps to [Employee].[EmployeeID]
2212
+ */
2213
+ legalOfficerId: string | null;
2214
+ /**
2215
+ * Maps to [ServiceUser].[id] where the serviceUserType is Applicant
2216
+ */
2217
+ applicantId: string | null;
2218
+ /**
2219
+ * Has this case been migrated from the legacy system? True if so.
2220
+ */
2221
+ migrationStatus: boolean | null;
2222
+ /**
2223
+ * Date at which relevant reps can be reopened
2224
+ */
2225
+ dateOfReOpenRelevantRepresentationStart: string | null;
2226
+ /**
2227
+ * Date at which relevant reps can no longer be reopened
2228
+ */
2229
+ dateOfReOpenRelevantRepresentationClose: string | null;
2230
+ /**
2231
+ * Is this an application for a material change?
2232
+ */
2233
+ isMaterialChange?: boolean | null;
2234
+ [k: string]: unknown;
2235
+ }
2236
+
2237
+ /**
2238
+ * NSIP Representation schema
2239
+ */
2240
+ export interface Representation {
2241
+ representationId: number;
2242
+ referenceId: string | null;
2243
+ examinationLibraryRef: string | null;
2244
+ caseRef: string;
2245
+ /**
2246
+ * The unique identifier within the Back Office. This is not the same as the case reference
2247
+ */
2248
+ caseId: number | null;
2249
+ status:
2250
+ | 'awaiting_review'
2251
+ | 'referred'
2252
+ | 'valid'
2253
+ | 'invalid'
2254
+ | 'published'
2255
+ | 'archived'
2256
+ | 'draft'
2257
+ | 'withdrawn'
2258
+ | null;
2259
+ originalRepresentation: string;
2260
+ redacted: boolean | null;
2261
+ redactedRepresentation: string | null;
2262
+ redactedBy: string | null;
2263
+ redactedNotes: string | null;
2264
+ representationFrom: 'PERSON' | 'ORGANISATION' | 'AGENT' | null;
2265
+ /**
2266
+ * ServiceUser Id of the person or organisation being represented
2267
+ */
2268
+ representedId: string;
2269
+ /**
2270
+ * ServiceUser Id of the person or organisation submitting representation in the case of Agent representationFrom
2271
+ */
2272
+ representativeId: string | null;
2273
+ registerFor: 'PERSON' | 'ORGANISATION' | 'FAMILY_GROUP' | null;
2274
+ representationType:
2275
+ | 'Local Authorities'
2276
+ | 'Parish Councils'
2277
+ | 'Members of the Public/Businesses'
2278
+ | 'Public & Businesses'
2279
+ | 'Statutory Consultees'
2280
+ | 'Non-Statutory Organisations'
2281
+ | 'Another Individual'
2282
+ | null;
2283
+ dateReceived: string;
2284
+ attachmentIds: string[];
2285
+ [k: string]: unknown;
2286
+ }
2287
+
2288
+ /**
2289
+ * Subscribers are a subset of Service Users, part of the PINS Data Model
2290
+ */
2291
+ export interface NsipSubscription {
2292
+ /**
2293
+ * The unique identifier within the Back Office. Ignored as part of register-nsip-subscription.
2294
+ */
2295
+ subscriptionId: number | null;
2296
+ /**
2297
+ * the case reference the subscription relates to
2298
+ */
2299
+ caseReference: string;
2300
+ emailAddress: string;
2301
+ /**
2302
+ * which update does the subscriber want to get notified of. For multiple types, use multiple messages.
2303
+ */
2304
+ subscriptionType: 'allUpdates' | 'applicationSubmitted' | 'applicationDecided' | 'registrationOpen';
2305
+ /**
2306
+ * The date to start getting updates
2307
+ */
2308
+ startDate: string | null;
2309
+ /**
2310
+ * The date to stop getting updates
2311
+ */
2312
+ endDate: string | null;
2313
+ language: 'English' | 'Welsh' | null;
2314
+ [k: string]: unknown;
2315
+ }
2316
+
2317
+ /**
2318
+ * Inspector attributes as per Horizon. This will be extended with SAP/Entra data
2319
+ */
2320
+ export interface PINSInspector {
2321
+ /**
2322
+ * The PINS-generated unique horizon ID
2323
+ */
2324
+ horizonId: string;
2325
+ /**
2326
+ * The first name of the inspector
2327
+ */
2328
+ firstName: string;
2329
+ /**
2330
+ * The last name of the inspector
2331
+ */
2332
+ lastName: string;
2333
+ /**
2334
+ * The post name of the inspector
2335
+ */
2336
+ postName?: string | null;
2337
+ /**
2338
+ * The organisation name of the inspector
2339
+ */
2340
+ organisationName?: string | null;
2341
+ /**
2342
+ * The title of the inspector
2343
+ */
2344
+ title?: string | null;
2345
+ /**
2346
+ * The salutation of the inspector
2347
+ */
2348
+ salutation?: string | null;
2349
+ /**
2350
+ * The qualifications of the inspector
2351
+ */
2352
+ qualifications?: string | null;
2353
+ /**
2354
+ * The email address of the inspector
2355
+ */
2356
+ email: string | null;
2357
+ [k: string]: unknown;
2358
+ }
2359
+
2360
+ /**
2361
+ * Local Planning Authority (LPA) attributes as per Horizon. This will be extended with ONS data
2362
+ */
2363
+ export interface PINSLPA {
2364
+ /**
2365
+ * The PINS name of the LPA
2366
+ */
2367
+ lpaName: string;
2368
+ /**
2369
+ * The organisation type of the LPA
2370
+ */
2371
+ organisationType?: string;
2372
+ /**
2373
+ * The PINS-generated unqiue LPA code
2374
+ */
2375
+ pinsLpaCode: string;
2376
+ /**
2377
+ * LPA address Post Office Box
2378
+ */
2379
+ poBox?: string | null;
2380
+ /**
2381
+ * First line of LPA address
2382
+ */
2383
+ address1?: string | null;
2384
+ /**
2385
+ * Second line of LPA address
2386
+ */
2387
+ address2?: string | null;
2388
+ /**
2389
+ * LPA address city or town
2390
+ */
2391
+ city?: string | null;
2392
+ /**
2393
+ * LPA address county
2394
+ */
2395
+ county?: string | null;
2396
+ /**
2397
+ * LPA address postcode
2398
+ */
2399
+ postcode?: string | null;
2400
+ /**
2401
+ * LPA address country
2402
+ */
2403
+ country?: string | null;
2404
+ /**
2405
+ * LPA telephine number
2406
+ */
2407
+ telephoneNumber?: string | null;
2408
+ /**
2409
+ * LPA fax number
2410
+ */
2411
+ fax?: string | null;
2412
+ /**
2413
+ * LPA email address
2414
+ */
2415
+ emailAddress?: string | null;
2416
+ [k: string]: unknown;
2417
+ }
2418
+
2419
+ /**
2420
+ * Section 51 Advice schema
2421
+ */
2422
+ export interface S51Advice {
2423
+ adviceId: number;
2424
+ adviceReference: string;
2425
+ caseId: number | null;
2426
+ caseReference: string | null;
2427
+ /**
2428
+ * Title of the advice
2429
+ */
2430
+ title: string;
2431
+ /**
2432
+ * Title of the advice in Welsh
2433
+ */
2434
+ titleWelsh?: string | null;
2435
+ /**
2436
+ * Who the enquiry is from
2437
+ */
2438
+ from: string | null;
2439
+ /**
2440
+ * Who the enquiry is on behalf of
2441
+ */
2442
+ agent: string | null;
2443
+ /**
2444
+ * How the enquiry was made
2445
+ */
2446
+ method: 'phone' | 'email' | 'meeting' | 'post' | 'fax' | null;
2447
+ /**
2448
+ * Date the enquiry was made
2449
+ */
2450
+ enquiryDate: string | null;
2451
+ /**
2452
+ * Details of the enquiry
2453
+ */
2454
+ enquiryDetails: string | null;
2455
+ /**
2456
+ * Details of the enquiry in Welsh
2457
+ */
2458
+ enquiryDetailsWelsh?: string | null;
2459
+ /**
2460
+ * Who issued the advice
2461
+ */
2462
+ adviceGivenBy: string | null;
2463
+ /**
2464
+ * Date the advice was given
2465
+ */
2466
+ adviceDate: string | null;
2467
+ /**
2468
+ * Details of the advice
2469
+ */
2470
+ adviceDetails: string | null;
2471
+ /**
2472
+ * Details of the advice in Welsh
2473
+ */
2474
+ adviceDetailsWelsh?: string | null;
2475
+ status: 'checked' | 'unchecked' | 'readytopublish' | 'published' | 'donotpublish' | null;
2476
+ redactionStatus: 'unredacted' | 'redacted' | null;
2477
+ attachmentIds: string[];
2478
+ [k: string]: unknown;
2479
+ }
2480
+
2481
+ /**
2482
+ * Service User of the planning inspectorate. Also contains role information by combining serviceUserType and caseReference.
2483
+ */
2484
+ export interface ServiceUser {
2485
+ /**
2486
+ * A unique identifier for the entity.
2487
+ */
2488
+ id: string;
2489
+ /**
2490
+ * A formal greeting, e.g., Mr, Mrs, Ms.
2491
+ */
2492
+ salutation: string | null;
2493
+ /**
2494
+ * The first name of the individual.
2495
+ */
2496
+ firstName: string | null;
2497
+ /**
2498
+ * The last name of the individual.
2499
+ */
2500
+ lastName: string | null;
2501
+ /**
2502
+ * The first line of the address.
2503
+ */
2504
+ addressLine1: string | null;
2505
+ /**
2506
+ * The second line of the address, usually includes suite or apartment number.
2507
+ */
2508
+ addressLine2: string | null;
2509
+ /**
2510
+ * The town or city of the address.
2511
+ */
2512
+ addressTown: string | null;
2513
+ /**
2514
+ * The county in which the town or city is located.
2515
+ */
2516
+ addressCounty: string | null;
2517
+ /**
2518
+ * The postal code for the address.
2519
+ */
2520
+ postcode: string | null;
2521
+ /**
2522
+ * The country of the address.
2523
+ */
2524
+ addressCountry: string | null;
2525
+ /**
2526
+ * The name of the organisation associated with the individual.
2527
+ */
2528
+ organisation: string | null;
2529
+ /**
2530
+ * The type or nature of the organisation.
2531
+ */
2532
+ organisationType: string | null;
2533
+ /**
2534
+ * The individual's role or position within the organisation.
2535
+ */
2536
+ role: string | null;
2537
+ /**
2538
+ * The primary telephone contact number.
2539
+ */
2540
+ telephoneNumber: string | null;
2541
+ /**
2542
+ * An alternate or secondary phone number.
2543
+ */
2544
+ otherPhoneNumber: string | null;
2545
+ /**
2546
+ * A fax contact number.
2547
+ */
2548
+ faxNumber: string | null;
2549
+ /**
2550
+ * The primary email address for contact.
2551
+ */
2552
+ emailAddress: string | null;
2553
+ /**
2554
+ * Website address or URL.
2555
+ */
2556
+ webAddress: string | null;
2557
+ /**
2558
+ * Type or category of the service user.
2559
+ */
2560
+ serviceUserType:
2561
+ | 'Applicant'
2562
+ | 'Appellant'
2563
+ | 'Agent'
2564
+ | 'Rule6Party'
2565
+ | 'InterestedParty'
2566
+ | 'RepresentationContact'
2567
+ | 'Subscriber';
2568
+ /**
2569
+ * Reference number for a particular case or incident.
2570
+ */
2571
+ caseReference: string;
2572
+ /**
2573
+ * The originating system from where the data was sourced.
2574
+ */
2575
+ sourceSystem: string;
2576
+ /**
2577
+ * Unique identifier from the source system.
2578
+ */
2579
+ sourceSuid: string;
2580
+ [k: string]: unknown;
2581
+ }
2582
+
2583
+ /**
2584
+ * Schema defining any properties common across all appeal types for appeal submissions
2585
+ */
2586
+ export interface AppellantCommonSubmissionProperties {
2587
+ /**
2588
+ * Case submission id - link to draft submission created by appellant
2589
+ */
2590
+ submissionId: string;
2591
+ /**
2592
+ * The type of procedure for the appeal
2593
+ */
2594
+ caseProcedure: 'written' | 'hearing' | 'inquiry';
2595
+ /**
2596
+ * A unique identifier for the Local Planning Authority
2597
+ */
2598
+ lpaCode: string;
2599
+ /**
2600
+ * The date the appeal was submitted by the appellant
2601
+ */
2602
+ caseSubmittedDate: string;
2603
+ /**
2604
+ * Indicates if an enforcement notice is the reason for the appeal
2605
+ */
2606
+ enforcementNotice: boolean | null;
2607
+ /**
2608
+ * The unique identifier of the LPA application
2609
+ */
2610
+ applicationReference: string;
2611
+ /**
2612
+ * The date of the original LPA application
2613
+ */
2614
+ applicationDate: string;
2615
+ /**
2616
+ * The outcome of the original LPA decision
2617
+ */
2618
+ applicationDecision: 'granted' | 'refused' | 'not_received';
2619
+ /**
2620
+ * The date of the original LPA decision
2621
+ */
2622
+ applicationDecisionDate: string | null;
2623
+ /**
2624
+ * The statutory deadline for submitting an appeal from the original LPA decision date
2625
+ */
2626
+ caseSubmissionDueDate: string | null;
2627
+ /**
2628
+ * First line of address for the appeal site
2629
+ */
2630
+ siteAddressLine1: string;
2631
+ /**
2632
+ * Second line of address for the appeal site
2633
+ */
2634
+ siteAddressLine2: string | null;
2635
+ /**
2636
+ * Town / City of the site address
2637
+ */
2638
+ siteAddressTown: string;
2639
+ /**
2640
+ * County of the site address
2641
+ */
2642
+ siteAddressCounty: string | null;
2643
+ /**
2644
+ * Postal code of the site address
2645
+ */
2646
+ siteAddressPostcode: string;
2647
+ /**
2648
+ * Provided information on site accessibility
2649
+ */
2650
+ siteAccessDetails: string[] | null;
2651
+ /**
2652
+ * Provided information on site health and safety
2653
+ */
2654
+ siteSafetyDetails: string[] | null;
2655
+ /**
2656
+ * A list of neighbouring site addresses
2657
+ */
2658
+ neighbouringSiteAddresses:
2659
+ | {
2660
+ /**
2661
+ * First line of address of the site
2662
+ */
2663
+ neighbouringSiteAddressLine1: string;
2664
+ /**
2665
+ * Second line of address of the site
2666
+ */
2667
+ neighbouringSiteAddressLine2: string | null;
2668
+ /**
2669
+ * Town / City of the site address
2670
+ */
2671
+ neighbouringSiteAddressTown: string;
2672
+ /**
2673
+ * County of the site address
2674
+ */
2675
+ neighbouringSiteAddressCounty: string | null;
2676
+ /**
2677
+ * Postal code of the site address
2678
+ */
2679
+ neighbouringSiteAddressPostcode: string;
2680
+ /**
2681
+ * Provided information on site accessibility on this address
2682
+ */
2683
+ neighbouringSiteAccessDetails: string | null;
2684
+ /**
2685
+ * Provided information on site health and safety on this address
2686
+ */
2687
+ neighbouringSiteSafetyDetails: string | null;
2688
+ [k: string]: unknown;
2689
+ }[]
2690
+ | null;
2691
+ /**
2692
+ * A list of related case references known to the appellant and the LPA
2693
+ */
2694
+ nearbyCaseReferences: string[] | null;
2695
+ typeOfPlanningApplication?:
2696
+ | 'full-appeal'
2697
+ | 'householder-planning'
2698
+ | 'outline-planning'
2699
+ | 'prior-approval'
2700
+ | 'reserved-matters'
2701
+ | 'removal-or-variation-of-conditions'
2702
+ | 'listed-building'
2703
+ | 'minor-commercial-development'
2704
+ | null;
2705
+ [k: string]: unknown;
2706
+ }
2707
+
2708
+ /**
2709
+ * Schema defining any HAS specific properties for submissions
2710
+ */
2711
+ export type AppellantHASSubmissionProperties = AppellantCommonSubmissionProperties & {
2712
+ /**
2713
+ * Indicates if the site is in a green belt
2714
+ */
2715
+ isGreenBelt?: boolean | null;
2716
+ /**
2717
+ * The site area, in square meters
2718
+ */
2719
+ siteAreaSquareMetres?: number | null;
2720
+ /**
2721
+ * The floor space, in square meters
2722
+ */
2723
+ floorSpaceSquareMetres?: number | null;
2724
+ /**
2725
+ * Indicates if the appellant has complete ownership of the site
2726
+ */
2727
+ ownsAllLand?: boolean | null;
2728
+ /**
2729
+ * Indicates if the appellant has partial ownership of the site
2730
+ */
2731
+ ownsSomeLand?: boolean | null;
2732
+ /**
2733
+ * Indicates if the appellant knows other owners of the site
2734
+ */
2735
+ knowsOtherOwners?: 'Yes' | 'No' | 'Some' | null;
2736
+ /**
2737
+ * Indicates if the appellant knows all owners of the site
2738
+ */
2739
+ knowsAllOwners?: 'Yes' | 'No' | 'Some' | null;
2740
+ /**
2741
+ * Indicates if the appellant has advertised the appeal to the LPA decision
2742
+ */
2743
+ advertisedAppeal?: boolean | null;
2744
+ /**
2745
+ * Indicates if the appellant has informed other owners of the site
2746
+ */
2747
+ ownersInformed?: boolean | null;
2748
+ /**
2749
+ * The original description of the development, as provided by the appellant
2750
+ */
2751
+ originalDevelopmentDescription?: string | null;
2752
+ /**
2753
+ * Indicates that the LPA has changed the development description
2754
+ */
2755
+ changedDevelopmentDescription?: boolean | null;
2756
+ /**
2757
+ * Indicates if the appellant has applied for costs
2758
+ */
2759
+ appellantCostsAppliedFor?: boolean | null;
2760
+ };
2761
+
2762
+ /**
2763
+ * Schema defining any properties common across all appeal types for appeal submissions
2764
+ */
2765
+ export interface AppellantCommonSubmissionProperties {
2766
+ /**
2767
+ * Case submission id - link to draft submission created by appellant
2768
+ */
2769
+ submissionId: string;
2770
+ /**
2771
+ * The type of procedure for the appeal
2772
+ */
2773
+ caseProcedure: 'written' | 'hearing' | 'inquiry';
2774
+ /**
2775
+ * A unique identifier for the Local Planning Authority
2776
+ */
2777
+ lpaCode: string;
2778
+ /**
2779
+ * The date the appeal was submitted by the appellant
2780
+ */
2781
+ caseSubmittedDate: string;
2782
+ /**
2783
+ * Indicates if an enforcement notice is the reason for the appeal
2784
+ */
2785
+ enforcementNotice: boolean | null;
2786
+ /**
2787
+ * The unique identifier of the LPA application
2788
+ */
2789
+ applicationReference: string;
2790
+ /**
2791
+ * The date of the original LPA application
2792
+ */
2793
+ applicationDate: string;
2794
+ /**
2795
+ * The outcome of the original LPA decision
2796
+ */
2797
+ applicationDecision: 'granted' | 'refused' | 'not_received';
2798
+ /**
2799
+ * The date of the original LPA decision
2800
+ */
2801
+ applicationDecisionDate: string | null;
2802
+ /**
2803
+ * The statutory deadline for submitting an appeal from the original LPA decision date
2804
+ */
2805
+ caseSubmissionDueDate: string | null;
2806
+ /**
2807
+ * First line of address for the appeal site
2808
+ */
2809
+ siteAddressLine1: string;
2810
+ /**
2811
+ * Second line of address for the appeal site
2812
+ */
2813
+ siteAddressLine2: string | null;
2814
+ /**
2815
+ * Town / City of the site address
2816
+ */
2817
+ siteAddressTown: string;
2818
+ /**
2819
+ * County of the site address
2820
+ */
2821
+ siteAddressCounty: string | null;
2822
+ /**
2823
+ * Postal code of the site address
2824
+ */
2825
+ siteAddressPostcode: string;
2826
+ /**
2827
+ * Provided information on site accessibility
2828
+ */
2829
+ siteAccessDetails: string[] | null;
2830
+ /**
2831
+ * Provided information on site health and safety
2832
+ */
2833
+ siteSafetyDetails: string[] | null;
2834
+ /**
2835
+ * A list of neighbouring site addresses
2836
+ */
2837
+ neighbouringSiteAddresses:
2838
+ | {
2839
+ /**
2840
+ * First line of address of the site
2841
+ */
2842
+ neighbouringSiteAddressLine1: string;
2843
+ /**
2844
+ * Second line of address of the site
2845
+ */
2846
+ neighbouringSiteAddressLine2: string | null;
2847
+ /**
2848
+ * Town / City of the site address
2849
+ */
2850
+ neighbouringSiteAddressTown: string;
2851
+ /**
2852
+ * County of the site address
2853
+ */
2854
+ neighbouringSiteAddressCounty: string | null;
2855
+ /**
2856
+ * Postal code of the site address
2857
+ */
2858
+ neighbouringSiteAddressPostcode: string;
2859
+ /**
2860
+ * Provided information on site accessibility on this address
2861
+ */
2862
+ neighbouringSiteAccessDetails: string | null;
2863
+ /**
2864
+ * Provided information on site health and safety on this address
2865
+ */
2866
+ neighbouringSiteSafetyDetails: string | null;
2867
+ [k: string]: unknown;
2868
+ }[]
2869
+ | null;
2870
+ /**
2871
+ * A list of related case references known to the appellant and the LPA
2872
+ */
2873
+ nearbyCaseReferences: string[] | null;
2874
+ typeOfPlanningApplication?:
2875
+ | 'full-appeal'
2876
+ | 'householder-planning'
2877
+ | 'outline-planning'
2878
+ | 'prior-approval'
2879
+ | 'reserved-matters'
2880
+ | 'removal-or-variation-of-conditions'
2881
+ | 'listed-building'
2882
+ | 'minor-commercial-development'
2883
+ | null;
2884
+ [k: string]: unknown;
2885
+ }
2886
+
2887
+ /**
2888
+ * Schema defining the data produced by the Front-Office when a representation is created on an appeal
2889
+ */
2890
+ export type AppealRepresentationSubmission = {
2891
+ /**
2892
+ * External case identifier
2893
+ */
2894
+ caseReference: string;
2895
+ /**
2896
+ * The date the representation was submitted
2897
+ */
2898
+ representationSubmittedDate: string | null;
2899
+ /**
2900
+ * The type of representation
2901
+ */
2902
+ representationType: 'statement' | 'comment' | 'final_comment' | 'proofs_evidence' | null;
2903
+ /**
2904
+ * The original representation
2905
+ */
2906
+ representation: string | null;
2907
+ documents: {
2908
+ /**
2909
+ * The unique identifier for the document
2910
+ */
2911
+ documentId: string;
2912
+ /**
2913
+ * Current stored name of the document
2914
+ */
2915
+ filename: string;
2916
+ /**
2917
+ * Original name of document
2918
+ */
2919
+ originalFilename: string;
2920
+ /**
2921
+ * The file size, in bytes
2922
+ */
2923
+ size: number;
2924
+ /**
2925
+ * The mime type for the current version of the file
2926
+ */
2927
+ mime: string;
2928
+ /**
2929
+ * The internal location of the document
2930
+ */
2931
+ documentURI: string;
2932
+ /**
2933
+ * The creation date for the document
2934
+ */
2935
+ dateCreated: string;
2936
+ /**
2937
+ * The type of document, used for exchange, migrations and consumption from the appeal back-office system
2938
+ */
2939
+ documentType:
2940
+ | 'interestedPartyComment'
2941
+ | 'lpaStatement'
2942
+ | 'rule6Statement'
2943
+ | 'appellantFinalComment'
2944
+ | 'lpaFinalComment'
2945
+ | 'appellantProofOfEvidence'
2946
+ | 'appellantWitnessesEvidence'
2947
+ | 'lpaProofOfEvidence'
2948
+ | 'lpaWitnessesEvidence'
2949
+ | 'rule6ProofOfEvidence'
2950
+ | 'rule6WitnessesEvidence'
2951
+ | null;
2952
+ [k: string]: unknown;
2953
+ }[];
2954
+ /**
2955
+ * Service User Id of the person or organisation making the representation
2956
+ */
2957
+ serviceUserId?: string | null;
2958
+ /**
2959
+ * A unique identifier for the Local Planning Authority
2960
+ */
2961
+ lpaCode?: string | null;
2962
+ newUser?: {
2963
+ /**
2964
+ * A formal greeting, e.g., Mr, Mrs, Ms.
2965
+ */
2966
+ salutation: string | null;
2967
+ /**
2968
+ * The first name of the individual.
2969
+ */
2970
+ firstName: string | null;
2971
+ /**
2972
+ * The last name of the individual.
2973
+ */
2974
+ lastName: string | null;
2975
+ /**
2976
+ * The primary email address for contact.
2977
+ */
2978
+ emailAddress: string | null;
2979
+ /**
2980
+ * The primary telephone contact number.
2981
+ */
2982
+ telephoneNumber: string | null;
2983
+ /**
2984
+ * The name of the organisation associated with the individual.
2985
+ */
2986
+ organisation: string | null;
2987
+ /**
2988
+ * Type or category of the service user.
2989
+ */
2990
+ serviceUserType: 'InterestedParty';
2991
+ /**
2992
+ * First line of address of the user making the representation
2993
+ */
2994
+ addressLine1?: string;
2995
+ /**
2996
+ * Second line of address of the user making the representation
2997
+ */
2998
+ addressLine2?: string | null;
2999
+ /**
3000
+ * Town / City of the user making the representation
3001
+ */
3002
+ addressTown?: string;
3003
+ /**
3004
+ * County of the user making the representation
3005
+ */
3006
+ addressCounty?: string | null;
3007
+ /**
3008
+ * Postal code of the user making the representation
3009
+ */
3010
+ addressPostcode?: string;
3011
+ [k: string]: unknown;
3012
+ };
3013
+ [k: string]: unknown;
3014
+ } & {
3015
+ [k: string]: unknown;
3016
+ };
3017
+
3018
+ /**
3019
+ * Schema defining any S78 specific properties for questionnaire submissions
3020
+ */
3021
+ export type AppellantS78SubmissionProperties = AppellantHASSubmissionProperties & {
3022
+ /**
3023
+ * Indicates if the site is an agricultural holding
3024
+ */
3025
+ agriculturalHolding?: boolean | null;
3026
+ /**
3027
+ * Indicates if the site is a tenant agricultural holding
3028
+ */
3029
+ tenantAgriculturalHolding?: boolean | null;
3030
+ /**
3031
+ * Indicates if the site is an agricultural holding with other tenants
3032
+ */
3033
+ otherTenantsAgriculturalHolding?: boolean | null;
3034
+ /**
3035
+ * If the site is an agricultural holding, indicates tenants are informed
3036
+ */
3037
+ informedTenantsAgriculturalHolding?: boolean | null;
3038
+ /**
3039
+ * The procedure preference indicated by the appellant
3040
+ */
3041
+ appellantProcedurePreference?: 'written' | 'hearing' | 'inquiry' | null;
3042
+ /**
3043
+ * The procedure details preference indicated by the appellant
3044
+ */
3045
+ appellantProcedurePreferenceDetails?: string | null;
3046
+ /**
3047
+ * The duration of the procedure indicated by the appellant
3048
+ */
3049
+ appellantProcedurePreferenceDuration?: number | null;
3050
+ /**
3051
+ * The number of witnesses in inquiries
3052
+ */
3053
+ appellantProcedurePreferenceWitnessCount?: number | null;
3054
+ /**
3055
+ * Indicates the existence of a planning obligation
3056
+ */
3057
+ planningObligation?: boolean | null;
3058
+ /**
3059
+ * The planning obligation information, if available
3060
+ */
3061
+ statusPlanningObligation?: string | null;
3062
+ developmentType?:
3063
+ | 'householder'
3064
+ | 'change-of-use'
3065
+ | 'major-dwellings'
3066
+ | 'major-industry-storage'
3067
+ | 'major-offices'
3068
+ | 'major-retail-services'
3069
+ | 'major-traveller-caravan'
3070
+ | 'mineral-workings'
3071
+ | 'minor-dwellings'
3072
+ | 'minor-industry-storage'
3073
+ | 'minor-offices'
3074
+ | 'minor-retail-services'
3075
+ | 'minor-traveller-caravan'
3076
+ | 'other-major'
3077
+ | 'other-minor'
3078
+ | null;
3079
+ };
3080
+ /**
3081
+ * Schema defining any HAS specific properties for submissions
3082
+ */
3083
+ export type AppellantHASSubmissionProperties = AppellantCommonSubmissionProperties & {
3084
+ /**
3085
+ * Indicates if the site is in a green belt
3086
+ */
3087
+ isGreenBelt?: boolean | null;
3088
+ /**
3089
+ * The site area, in square meters
3090
+ */
3091
+ siteAreaSquareMetres?: number | null;
3092
+ /**
3093
+ * The floor space, in square meters
3094
+ */
3095
+ floorSpaceSquareMetres?: number | null;
3096
+ /**
3097
+ * Indicates if the appellant has complete ownership of the site
3098
+ */
3099
+ ownsAllLand?: boolean | null;
3100
+ /**
3101
+ * Indicates if the appellant has partial ownership of the site
3102
+ */
3103
+ ownsSomeLand?: boolean | null;
3104
+ /**
3105
+ * Indicates if the appellant knows other owners of the site
3106
+ */
3107
+ knowsOtherOwners?: 'Yes' | 'No' | 'Some' | null;
3108
+ /**
3109
+ * Indicates if the appellant knows all owners of the site
3110
+ */
3111
+ knowsAllOwners?: 'Yes' | 'No' | 'Some' | null;
3112
+ /**
3113
+ * Indicates if the appellant has advertised the appeal to the LPA decision
3114
+ */
3115
+ advertisedAppeal?: boolean | null;
3116
+ /**
3117
+ * Indicates if the appellant has informed other owners of the site
3118
+ */
3119
+ ownersInformed?: boolean | null;
3120
+ /**
3121
+ * The original description of the development, as provided by the appellant
3122
+ */
3123
+ originalDevelopmentDescription?: string | null;
3124
+ /**
3125
+ * Indicates that the LPA has changed the development description
3126
+ */
3127
+ changedDevelopmentDescription?: boolean | null;
3128
+ /**
3129
+ * Indicates if the appellant has applied for costs
3130
+ */
3131
+ appellantCostsAppliedFor?: boolean | null;
3132
+ };
3133
+
3134
+ /**
3135
+ * Schema defining any properties common across all appeal types for appeal submissions
3136
+ */
3137
+ export interface AppellantCommonSubmissionProperties {
3138
+ /**
3139
+ * Case submission id - link to draft submission created by appellant
3140
+ */
3141
+ submissionId: string;
3142
+ /**
3143
+ * The type of procedure for the appeal
3144
+ */
3145
+ caseProcedure: 'written' | 'hearing' | 'inquiry';
3146
+ /**
3147
+ * A unique identifier for the Local Planning Authority
3148
+ */
3149
+ lpaCode: string;
3150
+ /**
3151
+ * The date the appeal was submitted by the appellant
3152
+ */
3153
+ caseSubmittedDate: string;
3154
+ /**
3155
+ * Indicates if an enforcement notice is the reason for the appeal
3156
+ */
3157
+ enforcementNotice: boolean | null;
3158
+ /**
3159
+ * The unique identifier of the LPA application
3160
+ */
3161
+ applicationReference: string;
3162
+ /**
3163
+ * The date of the original LPA application
3164
+ */
3165
+ applicationDate: string;
3166
+ /**
3167
+ * The outcome of the original LPA decision
3168
+ */
3169
+ applicationDecision: 'granted' | 'refused' | 'not_received';
3170
+ /**
3171
+ * The date of the original LPA decision
3172
+ */
3173
+ applicationDecisionDate: string | null;
3174
+ /**
3175
+ * The statutory deadline for submitting an appeal from the original LPA decision date
3176
+ */
3177
+ caseSubmissionDueDate: string | null;
3178
+ /**
3179
+ * First line of address for the appeal site
3180
+ */
3181
+ siteAddressLine1: string;
3182
+ /**
3183
+ * Second line of address for the appeal site
3184
+ */
3185
+ siteAddressLine2: string | null;
3186
+ /**
3187
+ * Town / City of the site address
3188
+ */
3189
+ siteAddressTown: string;
3190
+ /**
3191
+ * County of the site address
3192
+ */
3193
+ siteAddressCounty: string | null;
3194
+ /**
3195
+ * Postal code of the site address
3196
+ */
3197
+ siteAddressPostcode: string;
3198
+ /**
3199
+ * Provided information on site accessibility
3200
+ */
3201
+ siteAccessDetails: string[] | null;
3202
+ /**
3203
+ * Provided information on site health and safety
3204
+ */
3205
+ siteSafetyDetails: string[] | null;
3206
+ /**
3207
+ * A list of neighbouring site addresses
3208
+ */
3209
+ neighbouringSiteAddresses:
3210
+ | {
3211
+ /**
3212
+ * First line of address of the site
3213
+ */
3214
+ neighbouringSiteAddressLine1: string;
3215
+ /**
3216
+ * Second line of address of the site
3217
+ */
3218
+ neighbouringSiteAddressLine2: string | null;
3219
+ /**
3220
+ * Town / City of the site address
3221
+ */
3222
+ neighbouringSiteAddressTown: string;
3223
+ /**
3224
+ * County of the site address
3225
+ */
3226
+ neighbouringSiteAddressCounty: string | null;
3227
+ /**
3228
+ * Postal code of the site address
3229
+ */
3230
+ neighbouringSiteAddressPostcode: string;
3231
+ /**
3232
+ * Provided information on site accessibility on this address
3233
+ */
3234
+ neighbouringSiteAccessDetails: string | null;
3235
+ /**
3236
+ * Provided information on site health and safety on this address
3237
+ */
3238
+ neighbouringSiteSafetyDetails: string | null;
3239
+ [k: string]: unknown;
3240
+ }[]
3241
+ | null;
3242
+ /**
3243
+ * A list of related case references known to the appellant and the LPA
3244
+ */
3245
+ nearbyCaseReferences: string[] | null;
3246
+ typeOfPlanningApplication?:
3247
+ | 'full-appeal'
3248
+ | 'householder-planning'
3249
+ | 'outline-planning'
3250
+ | 'prior-approval'
3251
+ | 'reserved-matters'
3252
+ | 'removal-or-variation-of-conditions'
3253
+ | 'listed-building'
3254
+ | 'minor-commercial-development'
3255
+ | null;
3256
+ [k: string]: unknown;
3257
+ }
3258
+
3259
+ /**
3260
+ * Schema defining any HAS specific properties for submissions
3261
+ */
3262
+ export type AppellantHASSubmissionProperties = AppellantCommonSubmissionProperties & {
3263
+ /**
3264
+ * Indicates if the site is in a green belt
3265
+ */
3266
+ isGreenBelt?: boolean | null;
3267
+ /**
3268
+ * The site area, in square meters
3269
+ */
3270
+ siteAreaSquareMetres?: number | null;
3271
+ /**
3272
+ * The floor space, in square meters
3273
+ */
3274
+ floorSpaceSquareMetres?: number | null;
3275
+ /**
3276
+ * Indicates if the appellant has complete ownership of the site
3277
+ */
3278
+ ownsAllLand?: boolean | null;
3279
+ /**
3280
+ * Indicates if the appellant has partial ownership of the site
3281
+ */
3282
+ ownsSomeLand?: boolean | null;
3283
+ /**
3284
+ * Indicates if the appellant knows other owners of the site
3285
+ */
3286
+ knowsOtherOwners?: 'Yes' | 'No' | 'Some' | null;
3287
+ /**
3288
+ * Indicates if the appellant knows all owners of the site
3289
+ */
3290
+ knowsAllOwners?: 'Yes' | 'No' | 'Some' | null;
3291
+ /**
3292
+ * Indicates if the appellant has advertised the appeal to the LPA decision
3293
+ */
3294
+ advertisedAppeal?: boolean | null;
3295
+ /**
3296
+ * Indicates if the appellant has informed other owners of the site
3297
+ */
3298
+ ownersInformed?: boolean | null;
3299
+ /**
3300
+ * The original description of the development, as provided by the appellant
3301
+ */
3302
+ originalDevelopmentDescription?: string | null;
3303
+ /**
3304
+ * Indicates that the LPA has changed the development description
3305
+ */
3306
+ changedDevelopmentDescription?: boolean | null;
3307
+ /**
3308
+ * Indicates if the appellant has applied for costs
3309
+ */
3310
+ appellantCostsAppliedFor?: boolean | null;
3311
+ };
3312
+ /**
3313
+ * Schema defining any S78 specific properties for questionnaire submissions
3314
+ */
3315
+ export type AppellantS78SubmissionProperties = AppellantHASSubmissionProperties & {
3316
+ /**
3317
+ * Indicates if the site is an agricultural holding
3318
+ */
3319
+ agriculturalHolding?: boolean | null;
3320
+ /**
3321
+ * Indicates if the site is a tenant agricultural holding
3322
+ */
3323
+ tenantAgriculturalHolding?: boolean | null;
3324
+ /**
3325
+ * Indicates if the site is an agricultural holding with other tenants
3326
+ */
3327
+ otherTenantsAgriculturalHolding?: boolean | null;
3328
+ /**
3329
+ * If the site is an agricultural holding, indicates tenants are informed
3330
+ */
3331
+ informedTenantsAgriculturalHolding?: boolean | null;
3332
+ /**
3333
+ * The procedure preference indicated by the appellant
3334
+ */
3335
+ appellantProcedurePreference?: 'written' | 'hearing' | 'inquiry' | null;
3336
+ /**
3337
+ * The procedure details preference indicated by the appellant
3338
+ */
3339
+ appellantProcedurePreferenceDetails?: string | null;
3340
+ /**
3341
+ * The duration of the procedure indicated by the appellant
3342
+ */
3343
+ appellantProcedurePreferenceDuration?: number | null;
3344
+ /**
3345
+ * The number of witnesses in inquiries
3346
+ */
3347
+ appellantProcedurePreferenceWitnessCount?: number | null;
3348
+ /**
3349
+ * Indicates the existence of a planning obligation
3350
+ */
3351
+ planningObligation?: boolean | null;
3352
+ /**
3353
+ * The planning obligation information, if available
3354
+ */
3355
+ statusPlanningObligation?: string | null;
3356
+ developmentType?:
3357
+ | 'householder'
3358
+ | 'change-of-use'
3359
+ | 'major-dwellings'
3360
+ | 'major-industry-storage'
3361
+ | 'major-offices'
3362
+ | 'major-retail-services'
3363
+ | 'major-traveller-caravan'
3364
+ | 'mineral-workings'
3365
+ | 'minor-dwellings'
3366
+ | 'minor-industry-storage'
3367
+ | 'minor-offices'
3368
+ | 'minor-retail-services'
3369
+ | 'minor-traveller-caravan'
3370
+ | 'other-major'
3371
+ | 'other-minor'
3372
+ | null;
3373
+ };
3374
+
3375
+ /**
3376
+ * Schema defining the data produced by the Front-Office when an appeal is requested
3377
+ */
3378
+ export interface AppellantSubmissionCommand {
3379
+ casedata:
3380
+ | ({
3381
+ caseType?: 'D';
3382
+ } & AppellantHASSubmissionProperties)
3383
+ | ({
3384
+ caseType?: 'W';
3385
+ } & AppellantS78SubmissionProperties)
3386
+ | ({
3387
+ caseType?: 'Y';
3388
+ } & AppellantS78SubmissionProperties);
3389
+ documents: {
3390
+ /**
3391
+ * The unique identifier for the document
3392
+ */
3393
+ documentId: string;
3394
+ /**
3395
+ * Current stored name of the document
3396
+ */
3397
+ filename: string;
3398
+ /**
3399
+ * Original name of document
3400
+ */
3401
+ originalFilename: string;
3402
+ /**
3403
+ * The file size, in bytes
3404
+ */
3405
+ size: number;
3406
+ /**
3407
+ * The mime type for the current version of the file
3408
+ */
3409
+ mime: string;
3410
+ /**
3411
+ * The internal location of the document
3412
+ */
3413
+ documentURI: string;
3414
+ /**
3415
+ * The creation date for the document
3416
+ */
3417
+ dateCreated: string;
3418
+ /**
3419
+ * The type of document, used for exchange, migrations and consumption from the appeal back-office system
3420
+ */
3421
+ documentType:
3422
+ | 'appellantCaseCorrespondence'
3423
+ | 'appellantCaseWithdrawalLetter'
3424
+ | 'appellantCostsApplication'
3425
+ | 'appellantCostsCorrespondence'
3426
+ | 'appellantCostsWithdrawal'
3427
+ | 'appellantStatement'
3428
+ | 'applicationDecisionLetter'
3429
+ | 'changedDescription'
3430
+ | 'originalApplicationForm'
3431
+ | 'planningObligation'
3432
+ | 'ownershipCertificate'
3433
+ | 'statementCommonGround'
3434
+ | 'designAccessStatement'
3435
+ | 'plansDrawings'
3436
+ | 'newPlansDrawings'
3437
+ | 'otherNewDocuments'
3438
+ | null
3439
+ | 'environmentalAssessment';
3440
+ [k: string]: unknown;
3441
+ }[];
3442
+ /**
3443
+ * @minItems 1
3444
+ */
3445
+ users: [
3446
+ {
3447
+ /**
3448
+ * A formal greeting, e.g., Mr, Mrs, Ms.
3449
+ */
3450
+ salutation: string | null;
3451
+ /**
3452
+ * The first name of the individual.
3453
+ */
3454
+ firstName: string | null;
3455
+ /**
3456
+ * The last name of the individual.
3457
+ */
3458
+ lastName: string | null;
3459
+ /**
3460
+ * The primary email address for contact.
3461
+ */
3462
+ emailAddress: string | null;
3463
+ /**
3464
+ * The primary telephone contact number.
3465
+ */
3466
+ telephoneNumber: string | null;
3467
+ /**
3468
+ * The name of the organisation associated with the individual.
3469
+ */
3470
+ organisation: string | null;
3471
+ /**
3472
+ * Type or category of the service user.
3473
+ */
3474
+ serviceUserType: 'Appellant' | 'Agent';
3475
+ [k: string]: unknown;
3476
+ },
3477
+ ...{
3478
+ /**
3479
+ * A formal greeting, e.g., Mr, Mrs, Ms.
3480
+ */
3481
+ salutation: string | null;
3482
+ /**
3483
+ * The first name of the individual.
3484
+ */
3485
+ firstName: string | null;
3486
+ /**
3487
+ * The last name of the individual.
3488
+ */
3489
+ lastName: string | null;
3490
+ /**
3491
+ * The primary email address for contact.
3492
+ */
3493
+ emailAddress: string | null;
3494
+ /**
3495
+ * The primary telephone contact number.
3496
+ */
3497
+ telephoneNumber: string | null;
3498
+ /**
3499
+ * The name of the organisation associated with the individual.
3500
+ */
3501
+ organisation: string | null;
3502
+ /**
3503
+ * Type or category of the service user.
3504
+ */
3505
+ serviceUserType: 'Appellant' | 'Agent';
3506
+ [k: string]: unknown;
3507
+ }[]
3508
+ ];
3509
+ [k: string]: unknown;
3510
+ }
3511
+ /**
3512
+ * Schema defining any properties common across all appeal types for appeal submissions
3513
+ */
3514
+ export interface AppellantCommonSubmissionProperties {
3515
+ /**
3516
+ * Case submission id - link to draft submission created by appellant
3517
+ */
3518
+ submissionId: string;
3519
+ /**
3520
+ * The type of procedure for the appeal
3521
+ */
3522
+ caseProcedure: 'written' | 'hearing' | 'inquiry';
3523
+ /**
3524
+ * A unique identifier for the Local Planning Authority
3525
+ */
3526
+ lpaCode: string;
3527
+ /**
3528
+ * The date the appeal was submitted by the appellant
3529
+ */
3530
+ caseSubmittedDate: string;
3531
+ /**
3532
+ * Indicates if an enforcement notice is the reason for the appeal
3533
+ */
3534
+ enforcementNotice: boolean | null;
3535
+ /**
3536
+ * The unique identifier of the LPA application
3537
+ */
3538
+ applicationReference: string;
3539
+ /**
3540
+ * The date of the original LPA application
3541
+ */
3542
+ applicationDate: string;
3543
+ /**
3544
+ * The outcome of the original LPA decision
3545
+ */
3546
+ applicationDecision: 'granted' | 'refused' | 'not_received';
3547
+ /**
3548
+ * The date of the original LPA decision
3549
+ */
3550
+ applicationDecisionDate: string | null;
3551
+ /**
3552
+ * The statutory deadline for submitting an appeal from the original LPA decision date
3553
+ */
3554
+ caseSubmissionDueDate: string | null;
3555
+ /**
3556
+ * First line of address for the appeal site
3557
+ */
3558
+ siteAddressLine1: string;
3559
+ /**
3560
+ * Second line of address for the appeal site
3561
+ */
3562
+ siteAddressLine2: string | null;
3563
+ /**
3564
+ * Town / City of the site address
3565
+ */
3566
+ siteAddressTown: string;
3567
+ /**
3568
+ * County of the site address
3569
+ */
3570
+ siteAddressCounty: string | null;
3571
+ /**
3572
+ * Postal code of the site address
3573
+ */
3574
+ siteAddressPostcode: string;
3575
+ /**
3576
+ * Provided information on site accessibility
3577
+ */
3578
+ siteAccessDetails: string[] | null;
3579
+ /**
3580
+ * Provided information on site health and safety
3581
+ */
3582
+ siteSafetyDetails: string[] | null;
3583
+ /**
3584
+ * A list of neighbouring site addresses
3585
+ */
3586
+ neighbouringSiteAddresses:
3587
+ | {
3588
+ /**
3589
+ * First line of address of the site
3590
+ */
3591
+ neighbouringSiteAddressLine1: string;
3592
+ /**
3593
+ * Second line of address of the site
3594
+ */
3595
+ neighbouringSiteAddressLine2: string | null;
3596
+ /**
3597
+ * Town / City of the site address
3598
+ */
3599
+ neighbouringSiteAddressTown: string;
3600
+ /**
3601
+ * County of the site address
3602
+ */
3603
+ neighbouringSiteAddressCounty: string | null;
3604
+ /**
3605
+ * Postal code of the site address
3606
+ */
3607
+ neighbouringSiteAddressPostcode: string;
3608
+ /**
3609
+ * Provided information on site accessibility on this address
3610
+ */
3611
+ neighbouringSiteAccessDetails: string | null;
3612
+ /**
3613
+ * Provided information on site health and safety on this address
3614
+ */
3615
+ neighbouringSiteSafetyDetails: string | null;
3616
+ [k: string]: unknown;
3617
+ }[]
3618
+ | null;
3619
+ /**
3620
+ * A list of related case references known to the appellant and the LPA
3621
+ */
3622
+ nearbyCaseReferences: string[] | null;
3623
+ typeOfPlanningApplication?:
3624
+ | 'full-appeal'
3625
+ | 'householder-planning'
3626
+ | 'outline-planning'
3627
+ | 'prior-approval'
3628
+ | 'reserved-matters'
3629
+ | 'removal-or-variation-of-conditions'
3630
+ | 'listed-building'
3631
+ | 'minor-commercial-development'
3632
+ | null;
3633
+ [k: string]: unknown;
3634
+ }
3635
+
3636
+ export type Name = string;
3637
+
3638
+ /**
3639
+ * Subset of Pins Data Model [Service User]
3640
+ */
3641
+ export interface InterestedParty {
3642
+ id?: number;
3643
+ interestedPartyNumber?: string;
3644
+ firstName?: string;
3645
+ lastName?: string;
3646
+ under18?: boolean;
3647
+ organisationName?: Name;
3648
+ jobTitle?: string;
3649
+ contactMethod?: 'email' | 'post';
3650
+ email?: string;
3651
+ phoneNumber?: string;
3652
+ address?: Address;
3653
+ [k: string]: unknown;
3654
+ }
3655
+ export interface Address {
3656
+ addressLine1: string;
3657
+ addressLine2?: string;
3658
+ town: string;
3659
+ postcode: string;
3660
+ country?: string;
3661
+ }
3662
+
3663
+ /**
3664
+ * Schema defining any properties common across all appeal types for LPAQ submissions
3665
+ */
3666
+ export interface LPAQCommonSubmissionProperties {
3667
+ /**
3668
+ * External case identifier
3669
+ */
3670
+ caseReference: string;
3671
+ /**
3672
+ * The date the LPA provided a response to the case
3673
+ */
3674
+ lpaQuestionnaireSubmittedDate: string | null;
3675
+ /**
3676
+ * Provided information on site accessibility
3677
+ */
3678
+ siteAccessDetails: string[] | null;
3679
+ /**
3680
+ * Provided information on site health and safety
3681
+ */
3682
+ siteSafetyDetails: string[] | null;
3683
+ /**
3684
+ * A list of related case references known to the appellant and the LPA
3685
+ */
3686
+ nearbyCaseReferences: string[] | null;
3687
+ /**
3688
+ * A list of neighbouring site addresses
3689
+ */
3690
+ neighbouringSiteAddresses:
3691
+ | {
3692
+ /**
3693
+ * First line of address of the site
3694
+ */
3695
+ neighbouringSiteAddressLine1: string;
3696
+ /**
3697
+ * Second line of address of the site
3698
+ */
3699
+ neighbouringSiteAddressLine2: string | null;
3700
+ /**
3701
+ * Town / City of the site address
3702
+ */
3703
+ neighbouringSiteAddressTown: string;
3704
+ /**
3705
+ * County of the site address
3706
+ */
3707
+ neighbouringSiteAddressCounty: string | null;
3708
+ /**
3709
+ * Postal code of the site address
3710
+ */
3711
+ neighbouringSiteAddressPostcode: string;
3712
+ /**
3713
+ * Provided information on site accessibility on this address
3714
+ */
3715
+ neighbouringSiteAccessDetails: string | null;
3716
+ /**
3717
+ * Provided information on site health and safety on this address
3718
+ */
3719
+ neighbouringSiteSafetyDetails: string | null;
3720
+ [k: string]: unknown;
3721
+ }[]
3722
+ | null;
3723
+ /**
3724
+ * A general reason given for the need to visit any neighbours
3725
+ */
3726
+ reasonForNeighbourVisits?: string | null;
3727
+ [k: string]: unknown;
3728
+ }
3729
+
3730
+ /**
3731
+ * Schema defining any HAS specific properties for LPAQ submissions
3732
+ */
3733
+ export type LPAQHASSubmissionProperties = LPAQCommonSubmissionProperties & {
3734
+ /**
3735
+ * Indicates if the LPA considers the appeal type appropriate
3736
+ */
3737
+ isCorrectAppealType?: boolean | null;
3738
+ /**
3739
+ * A list of affected listed building IDs from Historic England
3740
+ */
3741
+ affectedListedBuildingNumbers?: string[] | null;
3742
+ /**
3743
+ * Indicates if the site is in a green belt
3744
+ */
3745
+ isGreenBelt?: boolean | null;
3746
+ /**
3747
+ * Indicates if the site is in a conservation area
3748
+ */
3749
+ inConservationArea?: boolean | null;
3750
+ /**
3751
+ * New conditions details provided by the LPA
3752
+ */
3753
+ newConditionDetails?: string | null;
3754
+ /**
3755
+ * The methods used to notify relevant parties
3756
+ */
3757
+ notificationMethod?: string[] | null;
3758
+ /**
3759
+ * Indicates if the LPA has applied for costs
3760
+ */
3761
+ lpaCostsAppliedFor?: boolean | null;
3762
+ /**
3763
+ * A statement provided by the LPA, unused?
3764
+ */
3765
+ lpaStatement?: string | null;
3766
+ };
3767
+
3768
+ /**
3769
+ * Schema defining any properties common across all appeal types for LPAQ submissions
3770
+ */
3771
+ export interface LPAQCommonSubmissionProperties {
3772
+ /**
3773
+ * External case identifier
3774
+ */
3775
+ caseReference: string;
3776
+ /**
3777
+ * The date the LPA provided a response to the case
3778
+ */
3779
+ lpaQuestionnaireSubmittedDate: string | null;
3780
+ /**
3781
+ * Provided information on site accessibility
3782
+ */
3783
+ siteAccessDetails: string[] | null;
3784
+ /**
3785
+ * Provided information on site health and safety
3786
+ */
3787
+ siteSafetyDetails: string[] | null;
3788
+ /**
3789
+ * A list of related case references known to the appellant and the LPA
3790
+ */
3791
+ nearbyCaseReferences: string[] | null;
3792
+ /**
3793
+ * A list of neighbouring site addresses
3794
+ */
3795
+ neighbouringSiteAddresses:
3796
+ | {
3797
+ /**
3798
+ * First line of address of the site
3799
+ */
3800
+ neighbouringSiteAddressLine1: string;
3801
+ /**
3802
+ * Second line of address of the site
3803
+ */
3804
+ neighbouringSiteAddressLine2: string | null;
3805
+ /**
3806
+ * Town / City of the site address
3807
+ */
3808
+ neighbouringSiteAddressTown: string;
3809
+ /**
3810
+ * County of the site address
3811
+ */
3812
+ neighbouringSiteAddressCounty: string | null;
3813
+ /**
3814
+ * Postal code of the site address
3815
+ */
3816
+ neighbouringSiteAddressPostcode: string;
3817
+ /**
3818
+ * Provided information on site accessibility on this address
3819
+ */
3820
+ neighbouringSiteAccessDetails: string | null;
3821
+ /**
3822
+ * Provided information on site health and safety on this address
3823
+ */
3824
+ neighbouringSiteSafetyDetails: string | null;
3825
+ [k: string]: unknown;
3826
+ }[]
3827
+ | null;
3828
+ /**
3829
+ * A general reason given for the need to visit any neighbours
3830
+ */
3831
+ reasonForNeighbourVisits?: string | null;
3832
+ [k: string]: unknown;
3833
+ }
3834
+
3835
+ /**
3836
+ * Schema defining any S78 specific properties for LPAQ submissions
3837
+ */
3838
+ export type LPAQS78SubmissionProperties = LPAQHASSubmissionProperties & {
3839
+ /**
3840
+ * A list of changed listed building IDs from Historic England
3841
+ */
3842
+ changedListedBuildingNumbers?: string[] | null;
3843
+ /**
3844
+ * A grant or loan has been made to preserve the listed building
3845
+ */
3846
+ preserveGrantLoan?: boolean | null;
3847
+ /**
3848
+ * Are Historic England to be consulted?
3849
+ */
3850
+ consultHistoricEngland?: boolean | null;
3851
+ /**
3852
+ * Indicates that a scheduled monument is affected
3853
+ */
3854
+ affectsScheduledMonument?: boolean | null;
3855
+ /**
3856
+ * Indicates the existence of protected species
3857
+ */
3858
+ hasProtectedSpecies?: boolean | null;
3859
+ /**
3860
+ * Indicates an area of outstanding beauty (National Landscape)
3861
+ */
3862
+ isAonbNationalLandscape?: boolean | null;
3863
+ /**
3864
+ * The designated site names
3865
+ */
3866
+ designatedSitesNames?: string[] | null;
3867
+ /**
3868
+ * Indicates a TPO (tree preservation order)
3869
+ */
3870
+ hasTreePreservationOrder?: boolean | null;
3871
+ /**
3872
+ * Indicates a traveller site
3873
+ */
3874
+ isGypsyOrTravellerSite?: boolean | null;
3875
+ /**
3876
+ * Indicates a PROW (public right of way)
3877
+ */
3878
+ isPublicRightOfWay?: boolean | null;
3879
+ /**
3880
+ * The impact schedule from EIA
3881
+ */
3882
+ eiaEnvironmentalImpactSchedule?: 'schedule-1' | 'schedule-2' | null;
3883
+ /**
3884
+ * The development description from EIA
3885
+ */
3886
+ eiaDevelopmentDescription?:
3887
+ | 'agriculture-aquaculture'
3888
+ | 'change-extensions'
3889
+ | 'chemical-industry'
3890
+ | 'energy-industry'
3891
+ | 'extractive-industry'
3892
+ | 'food-industry'
3893
+ | 'infrastructure-projects'
3894
+ | 'mineral-industry'
3895
+ | 'other-projects'
3896
+ | 'production-processing-of-metals'
3897
+ | 'rubber-industry'
3898
+ | 'textile-industries'
3899
+ | 'tourism-leisure'
3900
+ | null;
3901
+ /**
3902
+ * The sensitive area details from EIA
3903
+ */
3904
+ eiaSensitiveAreaDetails?: string | null;
3905
+ /**
3906
+ * EIA specific threshold
3907
+ */
3908
+ eiaColumnTwoThreshold?: boolean | null;
3909
+ /**
3910
+ * EIA screening opinion
3911
+ */
3912
+ eiaScreeningOpinion?: boolean | null;
3913
+ /**
3914
+ * EIA environmental statement required
3915
+ */
3916
+ eiaRequiresEnvironmentalStatement?: boolean | null;
3917
+ /**
3918
+ * EIA completed environmental statement required
3919
+ */
3920
+ eiaCompletedEnvironmentalStatement?: boolean | null;
3921
+ /**
3922
+ * Indicates statutory consultees
3923
+ */
3924
+ hasStatutoryConsultees?: boolean | null;
3925
+ /**
3926
+ * The details of the bodies consulted
3927
+ */
3928
+ consultedBodiesDetails?: string | null;
3929
+ /**
3930
+ * Indicates consultation responses
3931
+ */
3932
+ hasConsultationResponses?: boolean | null;
3933
+ /**
3934
+ * Indicates emerging plans
3935
+ */
3936
+ hasEmergingPlan?: boolean | null;
3937
+ /**
3938
+ * Indicates supplementary planning documents
3939
+ */
3940
+ hasSupplementaryPlanningDocs?: boolean | null;
3941
+ /**
3942
+ * Indicates the existence of an infrastructure levy
3943
+ */
3944
+ hasInfrastructureLevy?: boolean | null;
3945
+ /**
3946
+ * Indicates if the infrastructure levy is formally adopted
3947
+ */
3948
+ isInfrastructureLevyFormallyAdopted?: boolean | null;
3949
+ /**
3950
+ * The date of the infrastructure levy adoption
3951
+ */
3952
+ infrastructureLevyAdoptedDate?: string | null;
3953
+ /**
3954
+ * The expected date of the infrastructure levy
3955
+ */
3956
+ infrastructureLevyExpectedDate?: string | null;
3957
+ /**
3958
+ * The procedure preference indicated by the LPA
3959
+ */
3960
+ lpaProcedurePreference?: 'written' | 'hearing' | 'inquiry' | null;
3961
+ /**
3962
+ * The procedure details preference indicated by the LPA
3963
+ */
3964
+ lpaProcedurePreferenceDetails?: string | null;
3965
+ /**
3966
+ * The duration of enquiry indicated by the LPA
3967
+ */
3968
+ lpaProcedurePreferenceDuration?: number | null;
3969
+ };
3970
+ /**
3971
+ * Schema defining any HAS specific properties for LPAQ submissions
3972
+ */
3973
+ export type LPAQHASSubmissionProperties = LPAQCommonSubmissionProperties & {
3974
+ /**
3975
+ * Indicates if the LPA considers the appeal type appropriate
3976
+ */
3977
+ isCorrectAppealType?: boolean | null;
3978
+ /**
3979
+ * A list of affected listed building IDs from Historic England
3980
+ */
3981
+ affectedListedBuildingNumbers?: string[] | null;
3982
+ /**
3983
+ * Indicates if the site is in a green belt
3984
+ */
3985
+ isGreenBelt?: boolean | null;
3986
+ /**
3987
+ * Indicates if the site is in a conservation area
3988
+ */
3989
+ inConservationArea?: boolean | null;
3990
+ /**
3991
+ * New conditions details provided by the LPA
3992
+ */
3993
+ newConditionDetails?: string | null;
3994
+ /**
3995
+ * The methods used to notify relevant parties
3996
+ */
3997
+ notificationMethod?: string[] | null;
3998
+ /**
3999
+ * Indicates if the LPA has applied for costs
4000
+ */
4001
+ lpaCostsAppliedFor?: boolean | null;
4002
+ /**
4003
+ * A statement provided by the LPA, unused?
4004
+ */
4005
+ lpaStatement?: string | null;
4006
+ };
4007
+
4008
+ /**
4009
+ * Schema defining any properties common across all appeal types for LPAQ submissions
4010
+ */
4011
+ export interface LPAQCommonSubmissionProperties {
4012
+ /**
4013
+ * External case identifier
4014
+ */
4015
+ caseReference: string;
4016
+ /**
4017
+ * The date the LPA provided a response to the case
4018
+ */
4019
+ lpaQuestionnaireSubmittedDate: string | null;
4020
+ /**
4021
+ * Provided information on site accessibility
4022
+ */
4023
+ siteAccessDetails: string[] | null;
4024
+ /**
4025
+ * Provided information on site health and safety
4026
+ */
4027
+ siteSafetyDetails: string[] | null;
4028
+ /**
4029
+ * A list of related case references known to the appellant and the LPA
4030
+ */
4031
+ nearbyCaseReferences: string[] | null;
4032
+ /**
4033
+ * A list of neighbouring site addresses
4034
+ */
4035
+ neighbouringSiteAddresses:
4036
+ | {
4037
+ /**
4038
+ * First line of address of the site
4039
+ */
4040
+ neighbouringSiteAddressLine1: string;
4041
+ /**
4042
+ * Second line of address of the site
4043
+ */
4044
+ neighbouringSiteAddressLine2: string | null;
4045
+ /**
4046
+ * Town / City of the site address
4047
+ */
4048
+ neighbouringSiteAddressTown: string;
4049
+ /**
4050
+ * County of the site address
4051
+ */
4052
+ neighbouringSiteAddressCounty: string | null;
4053
+ /**
4054
+ * Postal code of the site address
4055
+ */
4056
+ neighbouringSiteAddressPostcode: string;
4057
+ /**
4058
+ * Provided information on site accessibility on this address
4059
+ */
4060
+ neighbouringSiteAccessDetails: string | null;
4061
+ /**
4062
+ * Provided information on site health and safety on this address
4063
+ */
4064
+ neighbouringSiteSafetyDetails: string | null;
4065
+ [k: string]: unknown;
4066
+ }[]
4067
+ | null;
4068
+ /**
4069
+ * A general reason given for the need to visit any neighbours
4070
+ */
4071
+ reasonForNeighbourVisits?: string | null;
4072
+ [k: string]: unknown;
4073
+ }
4074
+
4075
+ /**
4076
+ * Schema defining any HAS specific properties for LPAQ submissions
4077
+ */
4078
+ export type LPAQHASSubmissionProperties = LPAQCommonSubmissionProperties & {
4079
+ /**
4080
+ * Indicates if the LPA considers the appeal type appropriate
4081
+ */
4082
+ isCorrectAppealType?: boolean | null;
4083
+ /**
4084
+ * A list of affected listed building IDs from Historic England
4085
+ */
4086
+ affectedListedBuildingNumbers?: string[] | null;
4087
+ /**
4088
+ * Indicates if the site is in a green belt
4089
+ */
4090
+ isGreenBelt?: boolean | null;
4091
+ /**
4092
+ * Indicates if the site is in a conservation area
4093
+ */
4094
+ inConservationArea?: boolean | null;
4095
+ /**
4096
+ * New conditions details provided by the LPA
4097
+ */
4098
+ newConditionDetails?: string | null;
4099
+ /**
4100
+ * The methods used to notify relevant parties
4101
+ */
4102
+ notificationMethod?: string[] | null;
4103
+ /**
4104
+ * Indicates if the LPA has applied for costs
4105
+ */
4106
+ lpaCostsAppliedFor?: boolean | null;
4107
+ /**
4108
+ * A statement provided by the LPA, unused?
4109
+ */
4110
+ lpaStatement?: string | null;
4111
+ };
4112
+ /**
4113
+ * Schema defining any S78 specific properties for LPAQ submissions
4114
+ */
4115
+ export type LPAQS78SubmissionProperties = LPAQHASSubmissionProperties & {
4116
+ /**
4117
+ * A list of changed listed building IDs from Historic England
4118
+ */
4119
+ changedListedBuildingNumbers?: string[] | null;
4120
+ /**
4121
+ * A grant or loan has been made to preserve the listed building
4122
+ */
4123
+ preserveGrantLoan?: boolean | null;
4124
+ /**
4125
+ * Are Historic England to be consulted?
4126
+ */
4127
+ consultHistoricEngland?: boolean | null;
4128
+ /**
4129
+ * Indicates that a scheduled monument is affected
4130
+ */
4131
+ affectsScheduledMonument?: boolean | null;
4132
+ /**
4133
+ * Indicates the existence of protected species
4134
+ */
4135
+ hasProtectedSpecies?: boolean | null;
4136
+ /**
4137
+ * Indicates an area of outstanding beauty (National Landscape)
4138
+ */
4139
+ isAonbNationalLandscape?: boolean | null;
4140
+ /**
4141
+ * The designated site names
4142
+ */
4143
+ designatedSitesNames?: string[] | null;
4144
+ /**
4145
+ * Indicates a TPO (tree preservation order)
4146
+ */
4147
+ hasTreePreservationOrder?: boolean | null;
4148
+ /**
4149
+ * Indicates a traveller site
4150
+ */
4151
+ isGypsyOrTravellerSite?: boolean | null;
4152
+ /**
4153
+ * Indicates a PROW (public right of way)
4154
+ */
4155
+ isPublicRightOfWay?: boolean | null;
4156
+ /**
4157
+ * The impact schedule from EIA
4158
+ */
4159
+ eiaEnvironmentalImpactSchedule?: 'schedule-1' | 'schedule-2' | null;
4160
+ /**
4161
+ * The development description from EIA
4162
+ */
4163
+ eiaDevelopmentDescription?:
4164
+ | 'agriculture-aquaculture'
4165
+ | 'change-extensions'
4166
+ | 'chemical-industry'
4167
+ | 'energy-industry'
4168
+ | 'extractive-industry'
4169
+ | 'food-industry'
4170
+ | 'infrastructure-projects'
4171
+ | 'mineral-industry'
4172
+ | 'other-projects'
4173
+ | 'production-processing-of-metals'
4174
+ | 'rubber-industry'
4175
+ | 'textile-industries'
4176
+ | 'tourism-leisure'
4177
+ | null;
4178
+ /**
4179
+ * The sensitive area details from EIA
4180
+ */
4181
+ eiaSensitiveAreaDetails?: string | null;
4182
+ /**
4183
+ * EIA specific threshold
4184
+ */
4185
+ eiaColumnTwoThreshold?: boolean | null;
4186
+ /**
4187
+ * EIA screening opinion
4188
+ */
4189
+ eiaScreeningOpinion?: boolean | null;
4190
+ /**
4191
+ * EIA environmental statement required
4192
+ */
4193
+ eiaRequiresEnvironmentalStatement?: boolean | null;
4194
+ /**
4195
+ * EIA completed environmental statement required
4196
+ */
4197
+ eiaCompletedEnvironmentalStatement?: boolean | null;
4198
+ /**
4199
+ * Indicates statutory consultees
4200
+ */
4201
+ hasStatutoryConsultees?: boolean | null;
4202
+ /**
4203
+ * The details of the bodies consulted
4204
+ */
4205
+ consultedBodiesDetails?: string | null;
4206
+ /**
4207
+ * Indicates consultation responses
4208
+ */
4209
+ hasConsultationResponses?: boolean | null;
4210
+ /**
4211
+ * Indicates emerging plans
4212
+ */
4213
+ hasEmergingPlan?: boolean | null;
4214
+ /**
4215
+ * Indicates supplementary planning documents
4216
+ */
4217
+ hasSupplementaryPlanningDocs?: boolean | null;
4218
+ /**
4219
+ * Indicates the existence of an infrastructure levy
4220
+ */
4221
+ hasInfrastructureLevy?: boolean | null;
4222
+ /**
4223
+ * Indicates if the infrastructure levy is formally adopted
4224
+ */
4225
+ isInfrastructureLevyFormallyAdopted?: boolean | null;
4226
+ /**
4227
+ * The date of the infrastructure levy adoption
4228
+ */
4229
+ infrastructureLevyAdoptedDate?: string | null;
4230
+ /**
4231
+ * The expected date of the infrastructure levy
4232
+ */
4233
+ infrastructureLevyExpectedDate?: string | null;
4234
+ /**
4235
+ * The procedure preference indicated by the LPA
4236
+ */
4237
+ lpaProcedurePreference?: 'written' | 'hearing' | 'inquiry' | null;
4238
+ /**
4239
+ * The procedure details preference indicated by the LPA
4240
+ */
4241
+ lpaProcedurePreferenceDetails?: string | null;
4242
+ /**
4243
+ * The duration of enquiry indicated by the LPA
4244
+ */
4245
+ lpaProcedurePreferenceDuration?: number | null;
4246
+ };
4247
+
4248
+ /**
4249
+ * Schema defining the data produced by the Front-Office when an LPA Questionnaire is submitted
4250
+ */
4251
+ export interface LPAQuestionnaireCommand {
4252
+ casedata:
4253
+ | ({
4254
+ [k: string]: unknown;
4255
+ } & LPAQHASSubmissionProperties)
4256
+ | ({
4257
+ caseType?: 'W';
4258
+ } & LPAQS78SubmissionProperties)
4259
+ | ({
4260
+ caseType?: 'Y';
4261
+ } & LPAQS78SubmissionProperties)
4262
+ | ({
4263
+ caseType?: 'D';
4264
+ } & LPAQHASSubmissionProperties);
4265
+ documents: {
4266
+ /**
4267
+ * The unique identifier for the document
4268
+ */
4269
+ documentId: string;
4270
+ /**
4271
+ * Current stored name of the document
4272
+ */
4273
+ filename: string;
4274
+ /**
4275
+ * Original name of document
4276
+ */
4277
+ originalFilename: string;
4278
+ /**
4279
+ * The file size, in bytes
4280
+ */
4281
+ size: number;
4282
+ /**
4283
+ * The mime type for the current version of the file
4284
+ */
4285
+ mime: string;
4286
+ /**
4287
+ * The internal location of the document
4288
+ */
4289
+ documentURI: string;
4290
+ /**
4291
+ * The creation date for the document
4292
+ */
4293
+ dateCreated: string;
4294
+ /**
4295
+ * The type of document, used for exchange, migrations and consumption from the appeal back-office system
4296
+ */
4297
+ documentType:
4298
+ | 'whoNotified'
4299
+ | 'whoNotifiedSiteNotice'
4300
+ | 'whoNotifiedLetterToNeighbours'
4301
+ | 'whoNotifiedPressAdvert'
4302
+ | 'conservationMap'
4303
+ | 'lpaCaseCorrespondence'
4304
+ | 'lpaCostsApplication'
4305
+ | 'lpaCostsCorrespondence'
4306
+ | 'lpaCostsWithdrawal'
4307
+ | 'otherPartyRepresentations'
4308
+ | 'planningOfficerReport'
4309
+ | 'plansDrawings'
4310
+ | 'developmentPlanPolicies'
4311
+ | 'supplementaryPlanning'
4312
+ | 'emergingPlan'
4313
+ | 'appealNotification'
4314
+ | null
4315
+ | 'otherRelevantPolicies'
4316
+ | 'treePreservationPlan'
4317
+ | 'consultationResponses'
4318
+ | 'eiaEnvironmentalStatement'
4319
+ | 'eiaScreeningDirection'
4320
+ | 'eiaScreeningOpinion'
4321
+ | 'eiaScopingOpinion'
4322
+ | 'communityInfrastructureLevy'
4323
+ | 'definitiveMapStatement'
4324
+ | 'historicEnglandConsultation';
4325
+ [k: string]: unknown;
4326
+ }[];
4327
+ [k: string]: unknown;
4328
+ }
4329
+ /**
4330
+ * Schema defining any properties common across all appeal types for LPAQ submissions
4331
+ */
4332
+ export interface LPAQCommonSubmissionProperties {
4333
+ /**
4334
+ * External case identifier
4335
+ */
4336
+ caseReference: string;
4337
+ /**
4338
+ * The date the LPA provided a response to the case
4339
+ */
4340
+ lpaQuestionnaireSubmittedDate: string | null;
4341
+ /**
4342
+ * Provided information on site accessibility
4343
+ */
4344
+ siteAccessDetails: string[] | null;
4345
+ /**
4346
+ * Provided information on site health and safety
4347
+ */
4348
+ siteSafetyDetails: string[] | null;
4349
+ /**
4350
+ * A list of related case references known to the appellant and the LPA
4351
+ */
4352
+ nearbyCaseReferences: string[] | null;
4353
+ /**
4354
+ * A list of neighbouring site addresses
4355
+ */
4356
+ neighbouringSiteAddresses:
4357
+ | {
4358
+ /**
4359
+ * First line of address of the site
4360
+ */
4361
+ neighbouringSiteAddressLine1: string;
4362
+ /**
4363
+ * Second line of address of the site
4364
+ */
4365
+ neighbouringSiteAddressLine2: string | null;
4366
+ /**
4367
+ * Town / City of the site address
4368
+ */
4369
+ neighbouringSiteAddressTown: string;
4370
+ /**
4371
+ * County of the site address
4372
+ */
4373
+ neighbouringSiteAddressCounty: string | null;
4374
+ /**
4375
+ * Postal code of the site address
4376
+ */
4377
+ neighbouringSiteAddressPostcode: string;
4378
+ /**
4379
+ * Provided information on site accessibility on this address
4380
+ */
4381
+ neighbouringSiteAccessDetails: string | null;
4382
+ /**
4383
+ * Provided information on site health and safety on this address
4384
+ */
4385
+ neighbouringSiteSafetyDetails: string | null;
4386
+ [k: string]: unknown;
4387
+ }[]
4388
+ | null;
4389
+ /**
4390
+ * A general reason given for the need to visit any neighbours
4391
+ */
4392
+ reasonForNeighbourVisits?: string | null;
4393
+ [k: string]: unknown;
4394
+ }
4395
+
4396
+ /**
4397
+ * A command to deliver metadata about a new document submission added to a deadline
4398
+ */
4399
+ export interface NewDeadlineSubmission {
4400
+ /**
4401
+ * The unique reference of the case
4402
+ */
4403
+ caseReference: string;
4404
+ /**
4405
+ * The name of the FO user who made the submission
4406
+ */
4407
+ name: string;
4408
+ /**
4409
+ * The email address of the FO user who made the submission
4410
+ */
4411
+ email: string;
4412
+ /**
4413
+ * Was the submission made by an interested party on behalf of someone else?
4414
+ */
4415
+ interestedParty?: boolean;
4416
+ /**
4417
+ * Only necessary if `interestedParty` is true
4418
+ */
4419
+ interestedPartyReference?: string;
4420
+ /**
4421
+ * The name of the deadline which the submission was made against
4422
+ */
4423
+ deadline: string;
4424
+ /**
4425
+ * The name of the deadline line item the submission was made against
4426
+ */
4427
+ submissionType: string;
4428
+ /**
4429
+ * Does the submission contain sensitive data?
4430
+ */
4431
+ sensitiveData?: boolean;
4432
+ lateSubmission?: boolean;
4433
+ /**
4434
+ * ID of the submission in the database
4435
+ */
4436
+ submissionId?: string;
4437
+ /**
4438
+ * The GUID of the blob in storage
4439
+ */
4440
+ blobGuid: string;
4441
+ /**
4442
+ * The file name of the document in blob storage
4443
+ */
4444
+ documentName: string;
4445
+ [k: string]: unknown;
4446
+ }
4447
+
4448
+ /**
4449
+ * Result of processing a new exam timetable submission
4450
+ */
4451
+ export interface NsipExamTimetableSubmission {
4452
+ status: 'SUCCESS' | 'VIRUS_DETECTED' | 'FAILURE';
4453
+ deadline: string;
4454
+ submissionType: string;
4455
+ blobGuid: string;
4456
+ documentName: string;
4457
+ [k: string]: unknown;
4458
+ }
4459
+
4460
+ /**
4461
+ * A command to register an NSIP subscription with the back office
4462
+ */
4463
+ export interface RegisterNsipSubscription {
4464
+ /**
4465
+ * Properties in additionalProperties in the Service Bus message. Not present in the message body.
4466
+ */
4467
+ __additionalProperties__?: {
4468
+ type?: 'Create' | 'Delete';
4469
+ };
4470
+ nsipSubscription?: NsipSubscription;
4471
+ /**
4472
+ * Which update(s) does the subscriber want to get notified of. Note nsipSubscription.subscriptionType is ignored.
4473
+ */
4474
+ subscriptionTypes?: ('allUpdates' | 'applicationSubmitted' | 'applicationDecided' | 'registrationOpen')[];
4475
+ [k: string]: unknown;
4476
+ }
4477
+ /**
4478
+ * Subscribers are a subset of Service Users, part of the PINS Data Model
4479
+ */
4480
+ export interface NsipSubscription {
4481
+ /**
4482
+ * The unique identifier within the Back Office. Ignored as part of register-nsip-subscription.
4483
+ */
4484
+ subscriptionId: number | null;
4485
+ /**
4486
+ * the case reference the subscription relates to
4487
+ */
4488
+ caseReference: string;
4489
+ emailAddress: string;
4490
+ /**
4491
+ * which update does the subscriber want to get notified of. For multiple types, use multiple messages.
4492
+ */
4493
+ subscriptionType: 'allUpdates' | 'applicationSubmitted' | 'applicationDecided' | 'registrationOpen';
4494
+ /**
4495
+ * The date to start getting updates
4496
+ */
4497
+ startDate: string | null;
4498
+ /**
4499
+ * The date to stop getting updates
4500
+ */
4501
+ endDate: string | null;
4502
+ language: 'English' | 'Welsh' | null;
4503
+ [k: string]: unknown;
4504
+ }
4505
+
4506
+ export type Name = string;
4507
+
4508
+ export interface RegisterRepresentation {
4509
+ /**
4510
+ * registration identification number
4511
+ */
4512
+ referenceId: string;
4513
+ /**
4514
+ * The unique reference of the case
4515
+ */
4516
+ caseReference: string;
4517
+ /**
4518
+ * Type of representation
4519
+ */
4520
+ representationType?: string;
4521
+ originalRepresentation: string;
4522
+ representationFrom: 'PERSON' | 'ORGANISATION' | 'AGENT';
4523
+ registerFor: 'PERSON' | 'ORGANISATION' | 'FAMILY_GROUP';
4524
+ represented: InterestedParty;
4525
+ representative?: InterestedParty1;
4526
+ dateReceived?: string;
4527
+ [k: string]: unknown;
4528
+ }
4529
+ /**
4530
+ * Person or organisation being represented
4531
+ */
4532
+ export interface InterestedParty {
4533
+ id?: number;
4534
+ interestedPartyNumber?: string;
4535
+ firstName?: string;
4536
+ lastName?: string;
4537
+ under18?: boolean;
4538
+ organisationName?: Name;
4539
+ jobTitle?: string;
4540
+ contactMethod?: 'email' | 'post';
4541
+ email?: string;
4542
+ phoneNumber?: string;
4543
+ address?: Address;
4544
+ [k: string]: unknown;
4545
+ }
4546
+ export interface Address {
4547
+ addressLine1: string;
4548
+ addressLine2?: string;
4549
+ town: string;
4550
+ postcode: string;
4551
+ country?: string;
4552
+ }
4553
+ /**
4554
+ * Person or organisation submitting representation in the case of Agent representationFrom
4555
+ */
4556
+ export interface InterestedParty1 {
4557
+ id?: number;
4558
+ interestedPartyNumber?: string;
4559
+ firstName?: string;
4560
+ lastName?: string;
4561
+ under18?: boolean;
4562
+ organisationName?: Name;
4563
+ jobTitle?: string;
4564
+ contactMethod?: 'email' | 'post';
4565
+ email?: string;
4566
+ phoneNumber?: string;
4567
+ address?: Address;
4568
+ [k: string]: unknown;
4569
+ }
4570
+