@planning-inspectorate/data-model 2.1.0 → 2.3.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 (42) hide show
  1. package/.azure/ci.yml +3 -0
  2. package/docs/README.md +4 -0
  3. package/docs/appeal-has.md +19 -0
  4. package/docs/appeal-s78.md +19 -0
  5. package/docs/nsip-invoice.md +317 -0
  6. package/docs/nsip-meeting.md +197 -0
  7. package/package.json +2 -2
  8. package/pins_data_model/models/model_appeal_document.py +1 -1
  9. package/pins_data_model/models/model_appeal_event.py +1 -1
  10. package/pins_data_model/models/model_appeal_event_estimate.py +1 -1
  11. package/pins_data_model/models/model_appeal_has.py +9 -1
  12. package/pins_data_model/models/model_appeal_representation.py +1 -1
  13. package/pins_data_model/models/model_appeal_s78.py +9 -1
  14. package/pins_data_model/models/model_dart_response.py +1 -1
  15. package/pins_data_model/models/model_entraid.py +1 -1
  16. package/pins_data_model/models/model_folder.py +1 -1
  17. package/pins_data_model/models/model_gettimesheets_response.py +1 -1
  18. package/pins_data_model/models/model_listed_building.py +1 -1
  19. package/pins_data_model/models/model_listed_buildings.py +1 -1
  20. package/pins_data_model/models/model_nsip_document.py +1 -1
  21. package/pins_data_model/models/model_nsip_exam_timetable.py +1 -1
  22. package/pins_data_model/models/model_nsip_invoice.py +81 -0
  23. package/pins_data_model/models/model_nsip_meeting.py +59 -0
  24. package/pins_data_model/models/model_nsip_project.py +1 -1
  25. package/pins_data_model/models/model_nsip_project_update.py +1 -1
  26. package/pins_data_model/models/model_nsip_representation.py +1 -1
  27. package/pins_data_model/models/model_nsip_subscription.py +1 -1
  28. package/pins_data_model/models/model_pins_inspector.py +1 -1
  29. package/pins_data_model/models/model_pins_lpa.py +1 -1
  30. package/pins_data_model/models/model_s51_advice.py +1 -1
  31. package/pins_data_model/models/model_service_user.py +1 -1
  32. package/schemas/appeal-has.schema.json +6 -1
  33. package/schemas/appeal-s78.schema.json +6 -1
  34. package/schemas/nsip-invoice.schema.json +82 -0
  35. package/schemas/nsip-meeting.schema.json +55 -0
  36. package/src/enums.cjs +16 -0
  37. package/src/enums.d.ts +14 -0
  38. package/src/enums.js +14 -0
  39. package/src/index.cjs +16 -0
  40. package/src/schemas.d.ts +94 -0
  41. package/tests/appeals/appeal-has.test.js +2 -1
  42. package/tests/appeals/appeal-s78.test.js +2 -1
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: appeal-s78.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -916,6 +916,10 @@ class AppealS78Case1(BaseModel):
916
916
  """
917
917
  A list of advertisements for the appeal
918
918
  """
919
+ padsSapId: str | None = None
920
+ """
921
+ padsSapId for PADS inspectors
922
+ """
919
923
 
920
924
 
921
925
  class AdvertDetail1(BaseModel):
@@ -1519,6 +1523,10 @@ class AppealS78Case2(BaseModel):
1519
1523
  """
1520
1524
  A list of advertisements for the appeal
1521
1525
  """
1526
+ padsSapId: str | None = None
1527
+ """
1528
+ padsSapId for PADS inspectors
1529
+ """
1522
1530
 
1523
1531
 
1524
1532
  class AppealS78Case(RootModel[AppealS78Case1 | AppealS78Case2]):
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: dart-response.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: entraid.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: folder.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: gettimesheets-response.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-building.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: listed-buildings.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-document.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-exam-timetable.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -0,0 +1,81 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: nsip-invoice.schema.json
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+ from pydantic import AwareDatetime, BaseModel, ConfigDict, Field
10
+
11
+
12
+ class InvoiceStage(Enum):
13
+ """
14
+ Invoice stage
15
+ """
16
+
17
+ pre_acceptance = "pre_acceptance"
18
+ acceptance = "acceptance"
19
+ pre_examination = "pre_examination"
20
+ initial_examination = "initial_examination"
21
+ final_examination = "final_examination"
22
+ NoneType_None = None
23
+
24
+
25
+ class NsipInvoice(BaseModel):
26
+ """
27
+ NSIP Standalone Invoice Schema for ODW Curated layer
28
+ """
29
+
30
+ model_config = ConfigDict(
31
+ extra="allow",
32
+ )
33
+ caseId: int = Field(..., examples=[1242])
34
+ """
35
+ The unique identifier within the Back Office. This is not the same as the case reference
36
+ """
37
+ caseReference: str | None = Field(..., examples=["BC0510001"])
38
+ invoiceStage: InvoiceStage = Field(..., examples=["pre_acceptance"])
39
+ """
40
+ Invoice stage
41
+ """
42
+ invoiceNumber: str = Field(..., examples=["1800004419"])
43
+ """
44
+ Invoice number
45
+ """
46
+ amountDue: float = Field(..., examples=[500])
47
+ """
48
+ Amount due
49
+ """
50
+ paymentDueDate: AwareDatetime | None = Field(
51
+ ..., examples=["2023-07-27T20:30:00.000Z"]
52
+ )
53
+ """
54
+ Payment due date
55
+ """
56
+ invoicedDate: AwareDatetime | None = Field(
57
+ ..., examples=["2023-07-27T20:30:00.000Z"]
58
+ )
59
+ """
60
+ Invoiced date
61
+ """
62
+ paymentDate: AwareDatetime | None = Field(
63
+ ..., examples=["2023-07-27T20:30:00.000Z"]
64
+ )
65
+ """
66
+ Date of payment
67
+ """
68
+ refundCreditNoteNumber: str | None = Field(..., examples=["1800004419"])
69
+ """
70
+ Refund credit note number
71
+ """
72
+ refundAmount: float | None = Field(..., examples=[200])
73
+ """
74
+ Amount refunded
75
+ """
76
+ refundIssueDate: AwareDatetime | None = Field(
77
+ ..., examples=["2023-07-27T20:30:00.000Z"]
78
+ )
79
+ """
80
+ Refund issue date
81
+ """
@@ -0,0 +1,59 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: nsip-meeting.schema.json
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+ from pydantic import AwareDatetime, BaseModel, ConfigDict, Field
10
+
11
+
12
+ class PlanningInspectorateRole(Enum):
13
+ """
14
+ Planning Inspectorate role
15
+ """
16
+
17
+ facilitator = "facilitator"
18
+ advisor = "advisor"
19
+ observer = "observer"
20
+ NoneType_None = None
21
+
22
+
23
+ class NsipMeeting(BaseModel):
24
+ """
25
+ NSIP Standalone Meeting Schema for ODW Curated layer
26
+ """
27
+
28
+ model_config = ConfigDict(
29
+ extra="allow",
30
+ )
31
+ meetingID: int = Field(..., examples=[1234])
32
+ """
33
+ The unique identifier for an NSIP Meeting.
34
+ """
35
+ caseId: int = Field(..., examples=[1242])
36
+ """
37
+ The unique identifier for the case within the Back Office. This is not the same as the case reference
38
+ """
39
+ caseReference: str | None = Field(..., examples=["BC0510001"])
40
+ meetingAgenda: str | None = Field(..., examples=["Flood Risk Assessment (FRA)"])
41
+ """
42
+ Meeting agenda
43
+ """
44
+ planningInspectorateRole: PlanningInspectorateRole = Field(
45
+ ..., examples=["facilitator"]
46
+ )
47
+ """
48
+ Planning Inspectorate role
49
+ """
50
+ meetingDate: AwareDatetime | None = Field(
51
+ ..., examples=["2023-07-27T20:30:00.000Z"]
52
+ )
53
+ """
54
+ Meeting date
55
+ """
56
+ meetingType: str | None = None
57
+ """
58
+ Type of Meeting
59
+ """
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-project-update.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-representation.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: nsip-subscription.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-inspector.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: pins-lpa.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: s51-advice.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: service-user.schema.json
3
- # timestamp: 2025-11-12T14:58:31+00:00
3
+ # timestamp: 2025-12-02T17:41:26+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -72,7 +72,8 @@
72
72
  "neighbouringSiteAddresses",
73
73
  "affectedListedBuildingNumbers",
74
74
  "appellantCostsAppliedFor",
75
- "lpaCostsAppliedFor"
75
+ "lpaCostsAppliedFor",
76
+ "padsSapId"
76
77
  ],
77
78
  "anyOf": [
78
79
  {
@@ -763,6 +764,10 @@
763
764
  },
764
765
  "description": "A list of advertisements for the appeal",
765
766
  "$comment": "Also available on CAS Adverts (ZA) cases"
767
+ },
768
+ "padsSapId": {
769
+ "type": ["string", "null"],
770
+ "description": "padsSapId for PADS inspectors"
766
771
  }
767
772
  }
768
773
  }
@@ -130,7 +130,8 @@
130
130
  "numberOfResidencesNetChange",
131
131
  "siteViewableFromRoad",
132
132
  "siteWithinSSSI",
133
- "typeOfPlanningApplication"
133
+ "typeOfPlanningApplication",
134
+ "padsSapId"
134
135
  ],
135
136
  "anyOf": [
136
137
  {
@@ -1087,6 +1088,10 @@
1087
1088
  },
1088
1089
  "description": "A list of advertisements for the appeal",
1089
1090
  "$comment": "Also available on CAS Adverts (ZA) cases"
1091
+ },
1092
+ "padsSapId": {
1093
+ "type": ["string", "null"],
1094
+ "description": "padsSapId for PADS inspectors"
1090
1095
  }
1091
1096
  }
1092
1097
  }
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "nsip-invoice.schema.json",
4
+ "title": "NSIP Invoice",
5
+ "description": "NSIP Standalone Invoice Schema for ODW Curated layer",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": [
9
+ "caseId",
10
+ "caseReference",
11
+ "invoiceStage",
12
+ "invoiceNumber",
13
+ "amountDue",
14
+ "paymentDueDate",
15
+ "invoicedDate",
16
+ "paymentDate",
17
+ "refundCreditNoteNumber",
18
+ "refundAmount",
19
+ "refundIssueDate"
20
+ ],
21
+ "properties": {
22
+ "caseId": {
23
+ "type": "integer",
24
+ "examples": [1242],
25
+ "description": "The unique identifier within the Back Office. This is not the same as the case reference"
26
+ },
27
+ "caseReference": {
28
+ "type": ["string", "null"],
29
+ "examples": ["BC0510001"]
30
+ },
31
+ "invoiceStage": {
32
+ "type": ["string", "null"],
33
+ "description": "Invoice stage",
34
+ "enum": ["pre_acceptance", "acceptance", "pre_examination", "initial_examination", "final_examination", null],
35
+ "examples": ["pre_acceptance"]
36
+ },
37
+ "invoiceNumber": {
38
+ "type": "string",
39
+ "description": "Invoice number",
40
+ "examples": ["1800004419"]
41
+ },
42
+ "amountDue": {
43
+ "type": "number",
44
+ "description": "Amount due",
45
+ "examples": [500]
46
+ },
47
+ "paymentDueDate": {
48
+ "type": ["string", "null"],
49
+ "description": "Payment due date",
50
+ "format": "date-time",
51
+ "examples": ["2023-07-27T20:30:00.000Z"]
52
+ },
53
+ "invoicedDate": {
54
+ "type": ["string", "null"],
55
+ "description": "Invoiced date",
56
+ "format": "date-time",
57
+ "examples": ["2023-07-27T20:30:00.000Z"]
58
+ },
59
+ "paymentDate": {
60
+ "type": ["string", "null"],
61
+ "description": "Date of payment",
62
+ "format": "date-time",
63
+ "examples": ["2023-07-27T20:30:00.000Z"]
64
+ },
65
+ "refundCreditNoteNumber": {
66
+ "type": ["string", "null"],
67
+ "description": "Refund credit note number",
68
+ "examples": ["1800004419"]
69
+ },
70
+ "refundAmount": {
71
+ "type": ["number", "null"],
72
+ "description": "Amount refunded",
73
+ "examples": [200]
74
+ },
75
+ "refundIssueDate": {
76
+ "type": ["string", "null"],
77
+ "description": "Refund issue date",
78
+ "format": "date-time",
79
+ "examples": ["2023-07-27T20:30:00.000Z"]
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "nsip-meeting.schema.json",
4
+ "title": "NSIP Meeting",
5
+ "description": "NSIP Standalone Meeting Schema for ODW Curated layer",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+
9
+ "required": [
10
+ "meetingID",
11
+ "caseId",
12
+ "caseReference",
13
+ "meetingAgenda",
14
+ "planningInspectorateRole",
15
+ "meetingDate",
16
+ "meetingType"
17
+ ],
18
+ "properties": {
19
+ "meetingID": {
20
+ "type": "integer",
21
+ "examples": [1234],
22
+ "description": "The unique identifier for an NSIP Meeting."
23
+ },
24
+ "caseId": {
25
+ "type": "integer",
26
+ "examples": [1242],
27
+ "description": "The unique identifier for the case within the Back Office. This is not the same as the case reference"
28
+ },
29
+ "caseReference": {
30
+ "type": ["string", "null"],
31
+ "examples": ["BC0510001"]
32
+ },
33
+ "meetingAgenda": {
34
+ "type": ["string", "null"],
35
+ "description": "Meeting agenda",
36
+ "examples": ["Flood Risk Assessment (FRA)"]
37
+ },
38
+ "planningInspectorateRole": {
39
+ "type": ["string", "null"],
40
+ "description": "Planning Inspectorate role",
41
+ "enum": ["facilitator", "advisor", "observer", null],
42
+ "examples": ["facilitator"]
43
+ },
44
+ "meetingDate": {
45
+ "type": ["string", "null"],
46
+ "description": "Meeting date",
47
+ "format": "date-time",
48
+ "examples": ["2023-07-27T20:30:00.000Z"]
49
+ },
50
+ "meetingType": {
51
+ "type": ["string", "null"],
52
+ "description": "Type of Meeting"
53
+ }
54
+ }
55
+ }
package/src/enums.cjs CHANGED
@@ -406,6 +406,14 @@ const NSIP_FAST_TRACK_ADMISSION_DOCUMENT = Object.freeze({
406
406
  SUBMITTED_BY_APPLICANT: 'submitted_by_applicant',
407
407
  });
408
408
 
409
+ const NSIP_INVOICE_STAGE = Object.freeze({
410
+ ACCEPTANCE: 'acceptance',
411
+ FINAL_EXAMINATION: 'final_examination',
412
+ INITIAL_EXAMINATION: 'initial_examination',
413
+ PRE_ACCEPTANCE: 'pre_acceptance',
414
+ PRE_EXAMINATION: 'pre_examination',
415
+ });
416
+
409
417
  const NSIP_LANGUAGE = Object.freeze({
410
418
  ENGLISH: 'English',
411
419
  WELSH: 'Welsh',
@@ -452,6 +460,12 @@ const NSIP_ORIGIN = Object.freeze({
452
460
  PINS: 'pins',
453
461
  });
454
462
 
463
+ const NSIP_PLANNING_INSPECTORATE_ROLE = Object.freeze({
464
+ ADVISOR: 'advisor',
465
+ FACILITATOR: 'facilitator',
466
+ OBSERVER: 'observer',
467
+ });
468
+
455
469
  const NSIP_POLICY_COMPLIANCE_DOCUMENT = Object.freeze({
456
470
  AWAITING_SUBMISSION: 'awaiting_submission',
457
471
  NOT_APPLICABLE: 'not_applicable',
@@ -707,12 +721,14 @@ exports.NSIP_DECISION = NSIP_DECISION;
707
721
  exports.NSIP_DESIGN_APPROACH_DOCUMENT = NSIP_DESIGN_APPROACH_DOCUMENT;
708
722
  exports.NSIP_DOCUMENT_CASE_STAGE = NSIP_DOCUMENT_CASE_STAGE;
709
723
  exports.NSIP_FAST_TRACK_ADMISSION_DOCUMENT = NSIP_FAST_TRACK_ADMISSION_DOCUMENT;
724
+ exports.NSIP_INVOICE_STAGE = NSIP_INVOICE_STAGE;
710
725
  exports.NSIP_LANGUAGE = NSIP_LANGUAGE;
711
726
  exports.NSIP_MAP_ZOOM_LEVEL = NSIP_MAP_ZOOM_LEVEL;
712
727
  exports.NSIP_MATURE_OUTLINE_CONTROL_DOCUMENT = NSIP_MATURE_OUTLINE_CONTROL_DOCUMENT;
713
728
  exports.NSIP_MULTIPARTY_APPLICATION_CHECK_DOCUMENT = NSIP_MULTIPARTY_APPLICATION_CHECK_DOCUMENT;
714
729
  exports.NSIP_NEW_MATURITY = NSIP_NEW_MATURITY;
715
730
  exports.NSIP_ORIGIN = NSIP_ORIGIN;
731
+ exports.NSIP_PLANNING_INSPECTORATE_ROLE = NSIP_PLANNING_INSPECTORATE_ROLE;
716
732
  exports.NSIP_POLICY_COMPLIANCE_DOCUMENT = NSIP_POLICY_COMPLIANCE_DOCUMENT;
717
733
  exports.NSIP_PRINCIPAL_AREA_DISAGREEMENT_SUMMARY_STMT = NSIP_PRINCIPAL_AREA_DISAGREEMENT_SUMMARY_STMT;
718
734
  exports.NSIP_PROJECT_TYPE = NSIP_PROJECT_TYPE;
package/src/enums.d.ts CHANGED
@@ -404,6 +404,14 @@ export const NSIP_FAST_TRACK_ADMISSION_DOCUMENT = {
404
404
  SUBMITTED_BY_APPLICANT: 'submitted_by_applicant',
405
405
  } as const;
406
406
 
407
+ export const NSIP_INVOICE_STAGE = {
408
+ ACCEPTANCE: 'acceptance',
409
+ FINAL_EXAMINATION: 'final_examination',
410
+ INITIAL_EXAMINATION: 'initial_examination',
411
+ PRE_ACCEPTANCE: 'pre_acceptance',
412
+ PRE_EXAMINATION: 'pre_examination',
413
+ } as const;
414
+
407
415
  export const NSIP_LANGUAGE = {
408
416
  ENGLISH: 'English',
409
417
  WELSH: 'Welsh',
@@ -450,6 +458,12 @@ export const NSIP_ORIGIN = {
450
458
  PINS: 'pins',
451
459
  } as const;
452
460
 
461
+ export const NSIP_PLANNING_INSPECTORATE_ROLE = {
462
+ ADVISOR: 'advisor',
463
+ FACILITATOR: 'facilitator',
464
+ OBSERVER: 'observer',
465
+ } as const;
466
+
453
467
  export const NSIP_POLICY_COMPLIANCE_DOCUMENT = {
454
468
  AWAITING_SUBMISSION: 'awaiting_submission',
455
469
  NOT_APPLICABLE: 'not_applicable',
package/src/enums.js CHANGED
@@ -404,6 +404,14 @@ export const NSIP_FAST_TRACK_ADMISSION_DOCUMENT = Object.freeze({
404
404
  SUBMITTED_BY_APPLICANT: 'submitted_by_applicant',
405
405
  });
406
406
 
407
+ export const NSIP_INVOICE_STAGE = Object.freeze({
408
+ ACCEPTANCE: 'acceptance',
409
+ FINAL_EXAMINATION: 'final_examination',
410
+ INITIAL_EXAMINATION: 'initial_examination',
411
+ PRE_ACCEPTANCE: 'pre_acceptance',
412
+ PRE_EXAMINATION: 'pre_examination',
413
+ });
414
+
407
415
  export const NSIP_LANGUAGE = Object.freeze({
408
416
  ENGLISH: 'English',
409
417
  WELSH: 'Welsh',
@@ -450,6 +458,12 @@ export const NSIP_ORIGIN = Object.freeze({
450
458
  PINS: 'pins',
451
459
  });
452
460
 
461
+ export const NSIP_PLANNING_INSPECTORATE_ROLE = Object.freeze({
462
+ ADVISOR: 'advisor',
463
+ FACILITATOR: 'facilitator',
464
+ OBSERVER: 'observer',
465
+ });
466
+
453
467
  export const NSIP_POLICY_COMPLIANCE_DOCUMENT = Object.freeze({
454
468
  AWAITING_SUBMISSION: 'awaiting_submission',
455
469
  NOT_APPLICABLE: 'not_applicable',
package/src/index.cjs CHANGED
@@ -487,6 +487,14 @@ const NSIP_FAST_TRACK_ADMISSION_DOCUMENT = Object.freeze({
487
487
  SUBMITTED_BY_APPLICANT: 'submitted_by_applicant',
488
488
  });
489
489
 
490
+ const NSIP_INVOICE_STAGE = Object.freeze({
491
+ ACCEPTANCE: 'acceptance',
492
+ FINAL_EXAMINATION: 'final_examination',
493
+ INITIAL_EXAMINATION: 'initial_examination',
494
+ PRE_ACCEPTANCE: 'pre_acceptance',
495
+ PRE_EXAMINATION: 'pre_examination',
496
+ });
497
+
490
498
  const NSIP_LANGUAGE = Object.freeze({
491
499
  ENGLISH: 'English',
492
500
  WELSH: 'Welsh',
@@ -533,6 +541,12 @@ const NSIP_ORIGIN = Object.freeze({
533
541
  PINS: 'pins',
534
542
  });
535
543
 
544
+ const NSIP_PLANNING_INSPECTORATE_ROLE = Object.freeze({
545
+ ADVISOR: 'advisor',
546
+ FACILITATOR: 'facilitator',
547
+ OBSERVER: 'observer',
548
+ });
549
+
536
550
  const NSIP_POLICY_COMPLIANCE_DOCUMENT = Object.freeze({
537
551
  AWAITING_SUBMISSION: 'awaiting_submission',
538
552
  NOT_APPLICABLE: 'not_applicable',
@@ -820,12 +834,14 @@ exports.NSIP_DECISION = NSIP_DECISION;
820
834
  exports.NSIP_DESIGN_APPROACH_DOCUMENT = NSIP_DESIGN_APPROACH_DOCUMENT;
821
835
  exports.NSIP_DOCUMENT_CASE_STAGE = NSIP_DOCUMENT_CASE_STAGE;
822
836
  exports.NSIP_FAST_TRACK_ADMISSION_DOCUMENT = NSIP_FAST_TRACK_ADMISSION_DOCUMENT;
837
+ exports.NSIP_INVOICE_STAGE = NSIP_INVOICE_STAGE;
823
838
  exports.NSIP_LANGUAGE = NSIP_LANGUAGE;
824
839
  exports.NSIP_MAP_ZOOM_LEVEL = NSIP_MAP_ZOOM_LEVEL;
825
840
  exports.NSIP_MATURE_OUTLINE_CONTROL_DOCUMENT = NSIP_MATURE_OUTLINE_CONTROL_DOCUMENT;
826
841
  exports.NSIP_MULTIPARTY_APPLICATION_CHECK_DOCUMENT = NSIP_MULTIPARTY_APPLICATION_CHECK_DOCUMENT;
827
842
  exports.NSIP_NEW_MATURITY = NSIP_NEW_MATURITY;
828
843
  exports.NSIP_ORIGIN = NSIP_ORIGIN;
844
+ exports.NSIP_PLANNING_INSPECTORATE_ROLE = NSIP_PLANNING_INSPECTORATE_ROLE;
829
845
  exports.NSIP_POLICY_COMPLIANCE_DOCUMENT = NSIP_POLICY_COMPLIANCE_DOCUMENT;
830
846
  exports.NSIP_PRINCIPAL_AREA_DISAGREEMENT_SUMMARY_STMT = NSIP_PRINCIPAL_AREA_DISAGREEMENT_SUMMARY_STMT;
831
847
  exports.NSIP_PROJECT_TYPE = NSIP_PROJECT_TYPE;