@planning-inspectorate/data-model 2.46.0 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/appeal-document.md +4 -0
- package/docs/appeal-has.md +1 -0
- package/docs/appeal-s78.md +1 -0
- package/package.json +1 -1
- package/pins_data_model/models/model_appeal_document.py +4 -0
- package/pins_data_model/models/model_appeal_has.py +1 -0
- package/pins_data_model/models/model_appeal_s78.py +1 -0
- package/schemas/appeal-document.schema.json +4 -0
- package/schemas/appeal-has.schema.json +1 -0
- package/schemas/appeal-s78.schema.json +1 -0
- package/schemas/commands/appeals-components/appeal-common-submission.schema.json +1 -0
- package/src/enums.cjs +6 -0
- package/src/enums.d.ts +6 -0
- package/src/enums.js +6 -0
- package/src/index.cjs +6 -0
- package/src/schemas.d.ts +7 -0
- package/tests/appeals/appeal-has.test.js +7 -0
- package/tests/appeals/appeal-s78.test.js +7 -0
- package/tests/appeals/commands/has-submission.test.js +9 -0
- package/tests/appeals/commands/s78-submission.test.js +7 -0
package/docs/appeal-document.md
CHANGED
|
@@ -632,6 +632,10 @@ The type of document, used for exchange, migrations and consumption from the app
|
|
|
632
632
|
| `"designAccessStatementLPA"` | |
|
|
633
633
|
| `"plansDrawingsLPA"` | |
|
|
634
634
|
| `"additionalDocumentsLPA"` | |
|
|
635
|
+
| `"generalSupporting"` | |
|
|
636
|
+
| `"hearingProcess"` | |
|
|
637
|
+
| `"inquiryCore"` | |
|
|
638
|
+
| `"inquiryPostEvent"` | |
|
|
635
639
|
| `null` | |
|
|
636
640
|
|
|
637
641
|
## sourceSystem
|
package/docs/appeal-has.md
CHANGED
|
@@ -2514,6 +2514,7 @@ Indicates if the appellant has applied for costs
|
|
|
2514
2514
|
| `"minor-commercial-development"` | |
|
|
2515
2515
|
| `"advertisement"` | |
|
|
2516
2516
|
| `"lawful-development-certificate"` | |
|
|
2517
|
+
| `"permission-in-principle"` | |
|
|
2517
2518
|
| `null` | |
|
|
2518
2519
|
|
|
2519
2520
|
## siteGridReferenceEasting
|
package/docs/appeal-s78.md
CHANGED
|
@@ -3692,6 +3692,7 @@ The net gain in residences of the proposed development
|
|
|
3692
3692
|
| `"advertisement"` | |
|
|
3693
3693
|
| `"lawful-development-certificate"` | |
|
|
3694
3694
|
| `"discontinuance-notice"` | |
|
|
3695
|
+
| `"permission-in-principle"` | |
|
|
3695
3696
|
| `null` | |
|
|
3696
3697
|
|
|
3697
3698
|
## developmentType
|
package/package.json
CHANGED
|
@@ -153,6 +153,10 @@ class DocumentType(Enum):
|
|
|
153
153
|
designAccessStatementLPA = "designAccessStatementLPA"
|
|
154
154
|
plansDrawingsLPA = "plansDrawingsLPA"
|
|
155
155
|
additionalDocumentsLPA = "additionalDocumentsLPA"
|
|
156
|
+
generalSupporting = "generalSupporting"
|
|
157
|
+
hearingProcess = "hearingProcess"
|
|
158
|
+
inquiryCore = "inquiryCore"
|
|
159
|
+
inquiryPostEvent = "inquiryPostEvent"
|
|
156
160
|
NoneType_None = None
|
|
157
161
|
|
|
158
162
|
|
|
@@ -230,6 +230,7 @@ class TypeOfPlanningApplication(Enum):
|
|
|
230
230
|
minor_commercial_development = "minor-commercial-development"
|
|
231
231
|
advertisement = "advertisement"
|
|
232
232
|
lawful_development_certificate = "lawful-development-certificate"
|
|
233
|
+
permission_in_principle = "permission-in-principle"
|
|
233
234
|
NoneType_None = None
|
|
234
235
|
|
|
235
236
|
|
|
@@ -285,6 +285,7 @@ class TypeOfPlanningApplication(Enum):
|
|
|
285
285
|
advertisement = "advertisement"
|
|
286
286
|
lawful_development_certificate = "lawful-development-certificate"
|
|
287
287
|
discontinuance_notice = "discontinuance-notice"
|
|
288
|
+
permission_in_principle = "permission-in-principle"
|
|
288
289
|
NoneType_None = None
|
|
289
290
|
|
|
290
291
|
|
|
@@ -232,6 +232,10 @@
|
|
|
232
232
|
"designAccessStatementLPA",
|
|
233
233
|
"plansDrawingsLPA",
|
|
234
234
|
"additionalDocumentsLPA",
|
|
235
|
+
"generalSupporting",
|
|
236
|
+
"hearingProcess",
|
|
237
|
+
"inquiryCore",
|
|
238
|
+
"inquiryPostEvent",
|
|
235
239
|
null
|
|
236
240
|
],
|
|
237
241
|
"description": "The type of document, used for exchange, migrations and consumption from the appeal back-office system"
|
package/src/enums.cjs
CHANGED
|
@@ -37,6 +37,7 @@ const APPEAL_HAS_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
37
37
|
LISTED_BUILDING: 'listed-building',
|
|
38
38
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
39
39
|
OUTLINE_PLANNING: 'outline-planning',
|
|
40
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
40
41
|
PRIOR_APPROVAL: 'prior-approval',
|
|
41
42
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
42
43
|
RESERVED_MATTERS: 'reserved-matters',
|
|
@@ -222,6 +223,7 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
222
223
|
ENFORCEMENT_NOTICE: 'enforcementNotice',
|
|
223
224
|
ENFORCEMENT_NOTICE_PLAN: 'enforcementNoticePlan',
|
|
224
225
|
ENVIRONMENTAL_ASSESSMENT: 'environmentalAssessment',
|
|
226
|
+
GENERAL_SUPPORTING: 'generalSupporting',
|
|
225
227
|
GROUND_A_FEE_RECEIPT: 'groundAFeeReceipt',
|
|
226
228
|
GROUND_A_SUPPORTING: 'groundASupporting',
|
|
227
229
|
GROUND_B_SUPPORTING: 'groundBSupporting',
|
|
@@ -234,7 +236,10 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
234
236
|
GROUND_I_SUPPORTING: 'groundISupporting',
|
|
235
237
|
GROUND_J_SUPPORTING: 'groundJSupporting',
|
|
236
238
|
GROUND_K_SUPPORTING: 'groundKSupporting',
|
|
239
|
+
HEARING_PROCESS: 'hearingProcess',
|
|
237
240
|
HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
|
|
241
|
+
INQUIRY_CORE: 'inquiryCore',
|
|
242
|
+
INQUIRY_POST_EVENT: 'inquiryPostEvent',
|
|
238
243
|
INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
|
|
239
244
|
INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
|
|
240
245
|
LOCAL_DEVELOPMENT_ORDER: 'localDevelopmentOrder',
|
|
@@ -426,6 +431,7 @@ const APPEAL_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
426
431
|
LISTED_BUILDING: 'listed-building',
|
|
427
432
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
428
433
|
OUTLINE_PLANNING: 'outline-planning',
|
|
434
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
429
435
|
PRIOR_APPROVAL: 'prior-approval',
|
|
430
436
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
431
437
|
RESERVED_MATTERS: 'reserved-matters',
|
package/src/enums.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export const APPEAL_HAS_TYPE_OF_PLANNING_APPLICATION = {
|
|
|
35
35
|
LISTED_BUILDING: 'listed-building',
|
|
36
36
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
37
37
|
OUTLINE_PLANNING: 'outline-planning',
|
|
38
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
38
39
|
PRIOR_APPROVAL: 'prior-approval',
|
|
39
40
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
40
41
|
RESERVED_MATTERS: 'reserved-matters',
|
|
@@ -220,6 +221,7 @@ export const APPEAL_DOCUMENT_TYPE = {
|
|
|
220
221
|
ENFORCEMENT_NOTICE: 'enforcementNotice',
|
|
221
222
|
ENFORCEMENT_NOTICE_PLAN: 'enforcementNoticePlan',
|
|
222
223
|
ENVIRONMENTAL_ASSESSMENT: 'environmentalAssessment',
|
|
224
|
+
GENERAL_SUPPORTING: 'generalSupporting',
|
|
223
225
|
GROUND_A_FEE_RECEIPT: 'groundAFeeReceipt',
|
|
224
226
|
GROUND_A_SUPPORTING: 'groundASupporting',
|
|
225
227
|
GROUND_B_SUPPORTING: 'groundBSupporting',
|
|
@@ -232,7 +234,10 @@ export const APPEAL_DOCUMENT_TYPE = {
|
|
|
232
234
|
GROUND_I_SUPPORTING: 'groundISupporting',
|
|
233
235
|
GROUND_J_SUPPORTING: 'groundJSupporting',
|
|
234
236
|
GROUND_K_SUPPORTING: 'groundKSupporting',
|
|
237
|
+
HEARING_PROCESS: 'hearingProcess',
|
|
235
238
|
HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
|
|
239
|
+
INQUIRY_CORE: 'inquiryCore',
|
|
240
|
+
INQUIRY_POST_EVENT: 'inquiryPostEvent',
|
|
236
241
|
INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
|
|
237
242
|
INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
|
|
238
243
|
LOCAL_DEVELOPMENT_ORDER: 'localDevelopmentOrder',
|
|
@@ -424,6 +429,7 @@ export const APPEAL_TYPE_OF_PLANNING_APPLICATION = {
|
|
|
424
429
|
LISTED_BUILDING: 'listed-building',
|
|
425
430
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
426
431
|
OUTLINE_PLANNING: 'outline-planning',
|
|
432
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
427
433
|
PRIOR_APPROVAL: 'prior-approval',
|
|
428
434
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
429
435
|
RESERVED_MATTERS: 'reserved-matters',
|
package/src/enums.js
CHANGED
|
@@ -35,6 +35,7 @@ export const APPEAL_HAS_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
35
35
|
LISTED_BUILDING: 'listed-building',
|
|
36
36
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
37
37
|
OUTLINE_PLANNING: 'outline-planning',
|
|
38
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
38
39
|
PRIOR_APPROVAL: 'prior-approval',
|
|
39
40
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
40
41
|
RESERVED_MATTERS: 'reserved-matters',
|
|
@@ -220,6 +221,7 @@ export const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
220
221
|
ENFORCEMENT_NOTICE: 'enforcementNotice',
|
|
221
222
|
ENFORCEMENT_NOTICE_PLAN: 'enforcementNoticePlan',
|
|
222
223
|
ENVIRONMENTAL_ASSESSMENT: 'environmentalAssessment',
|
|
224
|
+
GENERAL_SUPPORTING: 'generalSupporting',
|
|
223
225
|
GROUND_A_FEE_RECEIPT: 'groundAFeeReceipt',
|
|
224
226
|
GROUND_A_SUPPORTING: 'groundASupporting',
|
|
225
227
|
GROUND_B_SUPPORTING: 'groundBSupporting',
|
|
@@ -232,7 +234,10 @@ export const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
232
234
|
GROUND_I_SUPPORTING: 'groundISupporting',
|
|
233
235
|
GROUND_J_SUPPORTING: 'groundJSupporting',
|
|
234
236
|
GROUND_K_SUPPORTING: 'groundKSupporting',
|
|
237
|
+
HEARING_PROCESS: 'hearingProcess',
|
|
235
238
|
HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
|
|
239
|
+
INQUIRY_CORE: 'inquiryCore',
|
|
240
|
+
INQUIRY_POST_EVENT: 'inquiryPostEvent',
|
|
236
241
|
INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
|
|
237
242
|
INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
|
|
238
243
|
LOCAL_DEVELOPMENT_ORDER: 'localDevelopmentOrder',
|
|
@@ -424,6 +429,7 @@ export const APPEAL_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
424
429
|
LISTED_BUILDING: 'listed-building',
|
|
425
430
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
426
431
|
OUTLINE_PLANNING: 'outline-planning',
|
|
432
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
427
433
|
PRIOR_APPROVAL: 'prior-approval',
|
|
428
434
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
429
435
|
RESERVED_MATTERS: 'reserved-matters',
|
package/src/index.cjs
CHANGED
|
@@ -118,6 +118,7 @@ const APPEAL_HAS_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
118
118
|
LISTED_BUILDING: 'listed-building',
|
|
119
119
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
120
120
|
OUTLINE_PLANNING: 'outline-planning',
|
|
121
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
121
122
|
PRIOR_APPROVAL: 'prior-approval',
|
|
122
123
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
123
124
|
RESERVED_MATTERS: 'reserved-matters',
|
|
@@ -303,6 +304,7 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
303
304
|
ENFORCEMENT_NOTICE: 'enforcementNotice',
|
|
304
305
|
ENFORCEMENT_NOTICE_PLAN: 'enforcementNoticePlan',
|
|
305
306
|
ENVIRONMENTAL_ASSESSMENT: 'environmentalAssessment',
|
|
307
|
+
GENERAL_SUPPORTING: 'generalSupporting',
|
|
306
308
|
GROUND_A_FEE_RECEIPT: 'groundAFeeReceipt',
|
|
307
309
|
GROUND_A_SUPPORTING: 'groundASupporting',
|
|
308
310
|
GROUND_B_SUPPORTING: 'groundBSupporting',
|
|
@@ -315,7 +317,10 @@ const APPEAL_DOCUMENT_TYPE = Object.freeze({
|
|
|
315
317
|
GROUND_I_SUPPORTING: 'groundISupporting',
|
|
316
318
|
GROUND_J_SUPPORTING: 'groundJSupporting',
|
|
317
319
|
GROUND_K_SUPPORTING: 'groundKSupporting',
|
|
320
|
+
HEARING_PROCESS: 'hearingProcess',
|
|
318
321
|
HISTORIC_ENGLAND_CONSULTATION: 'historicEnglandConsultation',
|
|
322
|
+
INQUIRY_CORE: 'inquiryCore',
|
|
323
|
+
INQUIRY_POST_EVENT: 'inquiryPostEvent',
|
|
319
324
|
INSPECTOR_CORRESPONDENCE: 'inspectorCorrespondence',
|
|
320
325
|
INTERESTED_PARTY_COMMENT: 'interestedPartyComment',
|
|
321
326
|
LOCAL_DEVELOPMENT_ORDER: 'localDevelopmentOrder',
|
|
@@ -507,6 +512,7 @@ const APPEAL_TYPE_OF_PLANNING_APPLICATION = Object.freeze({
|
|
|
507
512
|
LISTED_BUILDING: 'listed-building',
|
|
508
513
|
MINOR_COMMERCIAL_DEVELOPMENT: 'minor-commercial-development',
|
|
509
514
|
OUTLINE_PLANNING: 'outline-planning',
|
|
515
|
+
PERMISSION_IN_PRINCIPLE: 'permission-in-principle',
|
|
510
516
|
PRIOR_APPROVAL: 'prior-approval',
|
|
511
517
|
REMOVAL_OR_VARIATION_OF_CONDITIONS: 'removal-or-variation-of-conditions',
|
|
512
518
|
RESERVED_MATTERS: 'reserved-matters',
|
package/src/schemas.d.ts
CHANGED
|
@@ -180,6 +180,10 @@ export interface AppealDocument {
|
|
|
180
180
|
| 'designAccessStatementLPA'
|
|
181
181
|
| 'plansDrawingsLPA'
|
|
182
182
|
| 'additionalDocumentsLPA'
|
|
183
|
+
| 'generalSupporting'
|
|
184
|
+
| 'hearingProcess'
|
|
185
|
+
| 'inquiryCore'
|
|
186
|
+
| 'inquiryPostEvent'
|
|
183
187
|
| null;
|
|
184
188
|
/**
|
|
185
189
|
* The system mastering the metadata for the current document
|
|
@@ -785,6 +789,7 @@ export type AppealHASCase = (GridReference | SiteAddress) & {
|
|
|
785
789
|
| 'minor-commercial-development'
|
|
786
790
|
| 'advertisement'
|
|
787
791
|
| 'lawful-development-certificate'
|
|
792
|
+
| 'permission-in-principle'
|
|
788
793
|
| null;
|
|
789
794
|
siteGridReferenceEasting?: string | null;
|
|
790
795
|
siteGridReferenceNorthing?: string | null;
|
|
@@ -1528,6 +1533,7 @@ export type AppealS78Case = (GridReference | SiteAddress) & {
|
|
|
1528
1533
|
| 'advertisement'
|
|
1529
1534
|
| 'lawful-development-certificate'
|
|
1530
1535
|
| 'discontinuance-notice'
|
|
1536
|
+
| 'permission-in-principle'
|
|
1531
1537
|
| null;
|
|
1532
1538
|
developmentType:
|
|
1533
1539
|
| 'householder'
|
|
@@ -3733,6 +3739,7 @@ export type AppellantCommonSubmissionProperties = (
|
|
|
3733
3739
|
| 'minor-commercial-development'
|
|
3734
3740
|
| 'advertisement'
|
|
3735
3741
|
| 'lawful-development-certificate'
|
|
3742
|
+
| 'permission-in-principle'
|
|
3736
3743
|
| null;
|
|
3737
3744
|
/**
|
|
3738
3745
|
* Indicates if the appellant has applied for costs
|
|
@@ -322,4 +322,11 @@ describe(schema, () => {
|
|
|
322
322
|
const validationResult = ajv.validate(schema, test);
|
|
323
323
|
assert.strictEqual(validationResult, true);
|
|
324
324
|
});
|
|
325
|
+
|
|
326
|
+
it('should allow permission-in-principle for typeOfPlanningApplication', () => {
|
|
327
|
+
const test = structuredClone(appealHas);
|
|
328
|
+
test.typeOfPlanningApplication = 'permission-in-principle';
|
|
329
|
+
const validationResult = ajv.validate(schema, test);
|
|
330
|
+
assert.strictEqual(validationResult, true);
|
|
331
|
+
});
|
|
325
332
|
});
|
|
@@ -276,4 +276,11 @@ describe(schema, () => {
|
|
|
276
276
|
assert.strictEqual(validationResult, true);
|
|
277
277
|
});
|
|
278
278
|
});
|
|
279
|
+
|
|
280
|
+
it('should allow permission-in-principle for typeOfPlanningApplication', () => {
|
|
281
|
+
const test = structuredClone(appealS78);
|
|
282
|
+
test.typeOfPlanningApplication = 'permission-in-principle';
|
|
283
|
+
const validationResult = ajv.validate(schema, test);
|
|
284
|
+
assert.strictEqual(validationResult, true);
|
|
285
|
+
});
|
|
279
286
|
});
|
|
@@ -93,6 +93,15 @@ describe('HAS submission command schema', () => {
|
|
|
93
93
|
assert.strictEqual(validationResult, true);
|
|
94
94
|
});
|
|
95
95
|
|
|
96
|
+
it('should allow permission-in-principle for typeOfPlanningApplication', () => {
|
|
97
|
+
const test = structuredClone(exampleHasSubmissionSchema);
|
|
98
|
+
test.casedata.typeOfPlanningApplication = 'permission-in-principle';
|
|
99
|
+
|
|
100
|
+
const validationResult = ajv.validate(schema, test);
|
|
101
|
+
|
|
102
|
+
assert.strictEqual(validationResult, true);
|
|
103
|
+
});
|
|
104
|
+
|
|
96
105
|
it('should enforce eastings-northings pattern', () => {
|
|
97
106
|
const invalidPatterns = [
|
|
98
107
|
{ easting: 'abc123', northing: '400534', description: 'easting with letters' },
|
|
@@ -97,6 +97,13 @@ describe('S78 submission command schema', () => {
|
|
|
97
97
|
assert.strictEqual(validationResult, true);
|
|
98
98
|
});
|
|
99
99
|
|
|
100
|
+
it('should allow permission-in-principle for typeOfPlanningApplication', () => {
|
|
101
|
+
const test = structuredClone(exampleS78SubmissionSchema);
|
|
102
|
+
test.casedata.typeOfPlanningApplication = 'permission-in-principle';
|
|
103
|
+
const validationResult = ajv.validate(schema, test);
|
|
104
|
+
assert.strictEqual(validationResult, true);
|
|
105
|
+
});
|
|
106
|
+
|
|
100
107
|
it('should enforce eastings-northings pattern', () => {
|
|
101
108
|
const invalidPatterns = [
|
|
102
109
|
{ easting: 'abc123', northing: '400534', description: 'easting with letters' },
|