@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.
@@ -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
@@ -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
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.46.0",
3
+ "version": "2.48.0",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -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"
@@ -709,6 +709,7 @@
709
709
  "minor-commercial-development",
710
710
  "advertisement",
711
711
  "lawful-development-certificate",
712
+ "permission-in-principle",
712
713
  null
713
714
  ]
714
715
  },
@@ -1046,6 +1046,7 @@
1046
1046
  "advertisement",
1047
1047
  "lawful-development-certificate",
1048
1048
  "discontinuance-notice",
1049
+ "permission-in-principle",
1049
1050
  null
1050
1051
  ]
1051
1052
  },
@@ -140,6 +140,7 @@
140
140
  "minor-commercial-development",
141
141
  "advertisement",
142
142
  "lawful-development-certificate",
143
+ "permission-in-principle",
143
144
  null
144
145
  ]
145
146
  },
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' },