@planning-inspectorate/data-model 2.1.0 → 2.2.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/README.md CHANGED
@@ -30,6 +30,10 @@
30
30
 
31
31
  * [NSIP Document](./nsip-document.md "NSIP document schema") – `nsip-document.schema.json`
32
32
 
33
+ * [NSIP Invoice](./nsip-invoice.md "NSIP Standalone Invoice Schema for ODW Curated layer") – `nsip-invoice.schema.json`
34
+
35
+ * [NSIP Meeting](./nsip-meeting.md "NSIP Standalone Meeting Schema for ODW Curated layer") – `nsip-meeting.schema.json`
36
+
33
37
  * [NSIP Project](./nsip-project.md "Subset of Pins Data Model \[Case]") – `nsip-project.schema.json`
34
38
 
35
39
  * [NSIP Project Update](./nsip-project-update.md "NSIP Project Update (formerly known as Banners)") – `nsip-project-update.schema.json`
@@ -0,0 +1,317 @@
1
+ ## NSIP Invoice Type
2
+
3
+ `object` ([NSIP Invoice](nsip-invoice.md))
4
+
5
+ # NSIP Invoice Properties
6
+
7
+ | Property | Type | Required | Nullable | Defined by |
8
+ | :------------------------------------------------ | :-------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------ |
9
+ | [caseId](#caseid) | `integer` | Required | cannot be null | [NSIP Invoice](nsip-invoice-properties-caseid.md "nsip-invoice.schema.json#/properties/caseId") |
10
+ | [caseReference](#casereference) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-casereference.md "nsip-invoice.schema.json#/properties/caseReference") |
11
+ | [invoiceStage](#invoicestage) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-invoicestage.md "nsip-invoice.schema.json#/properties/invoiceStage") |
12
+ | [invoiceNumber](#invoicenumber) | `string` | Required | cannot be null | [NSIP Invoice](nsip-invoice-properties-invoicenumber.md "nsip-invoice.schema.json#/properties/invoiceNumber") |
13
+ | [amountDue](#amountdue) | `number` | Required | cannot be null | [NSIP Invoice](nsip-invoice-properties-amountdue.md "nsip-invoice.schema.json#/properties/amountDue") |
14
+ | [paymentDueDate](#paymentduedate) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-paymentduedate.md "nsip-invoice.schema.json#/properties/paymentDueDate") |
15
+ | [invoicedDate](#invoiceddate) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-invoiceddate.md "nsip-invoice.schema.json#/properties/invoicedDate") |
16
+ | [paymentDate](#paymentdate) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-paymentdate.md "nsip-invoice.schema.json#/properties/paymentDate") |
17
+ | [refundCreditNoteNumber](#refundcreditnotenumber) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-refundcreditnotenumber.md "nsip-invoice.schema.json#/properties/refundCreditNoteNumber") |
18
+ | [refundAmount](#refundamount) | `number` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-refundamount.md "nsip-invoice.schema.json#/properties/refundAmount") |
19
+ | [refundIssueDate](#refundissuedate) | `string` | Required | can be null | [NSIP Invoice](nsip-invoice-properties-refundissuedate.md "nsip-invoice.schema.json#/properties/refundIssueDate") |
20
+ | Additional Properties | Any | Optional | can be null | |
21
+
22
+ ## caseId
23
+
24
+ The unique identifier within the Back Office. This is not the same as the case reference
25
+
26
+ `caseId`
27
+
28
+ * is required
29
+
30
+ * Type: `integer`
31
+
32
+ * cannot be null
33
+
34
+ * defined in: [NSIP Invoice](nsip-invoice-properties-caseid.md "nsip-invoice.schema.json#/properties/caseId")
35
+
36
+ ### caseId Type
37
+
38
+ `integer`
39
+
40
+ ### caseId Examples
41
+
42
+ ```json
43
+ 1242
44
+ ```
45
+
46
+ ## caseReference
47
+
48
+
49
+
50
+ `caseReference`
51
+
52
+ * is required
53
+
54
+ * Type: `string`
55
+
56
+ * can be null
57
+
58
+ * defined in: [NSIP Invoice](nsip-invoice-properties-casereference.md "nsip-invoice.schema.json#/properties/caseReference")
59
+
60
+ ### caseReference Type
61
+
62
+ `string`
63
+
64
+ ### caseReference Examples
65
+
66
+ ```json
67
+ "BC0510001"
68
+ ```
69
+
70
+ ## invoiceStage
71
+
72
+ Invoice stage
73
+
74
+ `invoiceStage`
75
+
76
+ * is required
77
+
78
+ * Type: `string`
79
+
80
+ * can be null
81
+
82
+ * defined in: [NSIP Invoice](nsip-invoice-properties-invoicestage.md "nsip-invoice.schema.json#/properties/invoiceStage")
83
+
84
+ ### invoiceStage Type
85
+
86
+ `string`
87
+
88
+ ### invoiceStage Constraints
89
+
90
+ **enum**: the value of this property must be equal to one of the following values:
91
+
92
+ | Value | Explanation |
93
+ | :---------------------- | :---------- |
94
+ | `"pre_acceptance"` | |
95
+ | `"acceptance"` | |
96
+ | `"pre_examination"` | |
97
+ | `"initial_examination"` | |
98
+ | `"final_examination"` | |
99
+ | `null` | |
100
+
101
+ ### invoiceStage Examples
102
+
103
+ ```json
104
+ "pre_acceptance"
105
+ ```
106
+
107
+ ## invoiceNumber
108
+
109
+ Invoice number
110
+
111
+ `invoiceNumber`
112
+
113
+ * is required
114
+
115
+ * Type: `string`
116
+
117
+ * cannot be null
118
+
119
+ * defined in: [NSIP Invoice](nsip-invoice-properties-invoicenumber.md "nsip-invoice.schema.json#/properties/invoiceNumber")
120
+
121
+ ### invoiceNumber Type
122
+
123
+ `string`
124
+
125
+ ### invoiceNumber Examples
126
+
127
+ ```json
128
+ "1800004419"
129
+ ```
130
+
131
+ ## amountDue
132
+
133
+ Amount due
134
+
135
+ `amountDue`
136
+
137
+ * is required
138
+
139
+ * Type: `number`
140
+
141
+ * cannot be null
142
+
143
+ * defined in: [NSIP Invoice](nsip-invoice-properties-amountdue.md "nsip-invoice.schema.json#/properties/amountDue")
144
+
145
+ ### amountDue Type
146
+
147
+ `number`
148
+
149
+ ### amountDue Examples
150
+
151
+ ```json
152
+ 500
153
+ ```
154
+
155
+ ## paymentDueDate
156
+
157
+ Payment due date
158
+
159
+ `paymentDueDate`
160
+
161
+ * is required
162
+
163
+ * Type: `string`
164
+
165
+ * can be null
166
+
167
+ * defined in: [NSIP Invoice](nsip-invoice-properties-paymentduedate.md "nsip-invoice.schema.json#/properties/paymentDueDate")
168
+
169
+ ### paymentDueDate Type
170
+
171
+ `string`
172
+
173
+ ### paymentDueDate Constraints
174
+
175
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
176
+
177
+ ### paymentDueDate Examples
178
+
179
+ ```json
180
+ "2023-07-27T20:30:00.000Z"
181
+ ```
182
+
183
+ ## invoicedDate
184
+
185
+ Invoiced date
186
+
187
+ `invoicedDate`
188
+
189
+ * is required
190
+
191
+ * Type: `string`
192
+
193
+ * can be null
194
+
195
+ * defined in: [NSIP Invoice](nsip-invoice-properties-invoiceddate.md "nsip-invoice.schema.json#/properties/invoicedDate")
196
+
197
+ ### invoicedDate Type
198
+
199
+ `string`
200
+
201
+ ### invoicedDate Constraints
202
+
203
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
204
+
205
+ ### invoicedDate Examples
206
+
207
+ ```json
208
+ "2023-07-27T20:30:00.000Z"
209
+ ```
210
+
211
+ ## paymentDate
212
+
213
+ Date of payment
214
+
215
+ `paymentDate`
216
+
217
+ * is required
218
+
219
+ * Type: `string`
220
+
221
+ * can be null
222
+
223
+ * defined in: [NSIP Invoice](nsip-invoice-properties-paymentdate.md "nsip-invoice.schema.json#/properties/paymentDate")
224
+
225
+ ### paymentDate Type
226
+
227
+ `string`
228
+
229
+ ### paymentDate Constraints
230
+
231
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
232
+
233
+ ### paymentDate Examples
234
+
235
+ ```json
236
+ "2023-07-27T20:30:00.000Z"
237
+ ```
238
+
239
+ ## refundCreditNoteNumber
240
+
241
+ Refund credit note number
242
+
243
+ `refundCreditNoteNumber`
244
+
245
+ * is required
246
+
247
+ * Type: `string`
248
+
249
+ * can be null
250
+
251
+ * defined in: [NSIP Invoice](nsip-invoice-properties-refundcreditnotenumber.md "nsip-invoice.schema.json#/properties/refundCreditNoteNumber")
252
+
253
+ ### refundCreditNoteNumber Type
254
+
255
+ `string`
256
+
257
+ ### refundCreditNoteNumber Examples
258
+
259
+ ```json
260
+ "1800004419"
261
+ ```
262
+
263
+ ## refundAmount
264
+
265
+ Amount refunded
266
+
267
+ `refundAmount`
268
+
269
+ * is required
270
+
271
+ * Type: `number`
272
+
273
+ * can be null
274
+
275
+ * defined in: [NSIP Invoice](nsip-invoice-properties-refundamount.md "nsip-invoice.schema.json#/properties/refundAmount")
276
+
277
+ ### refundAmount Type
278
+
279
+ `number`
280
+
281
+ ### refundAmount Examples
282
+
283
+ ```json
284
+ 200
285
+ ```
286
+
287
+ ## refundIssueDate
288
+
289
+ Refund issue date
290
+
291
+ `refundIssueDate`
292
+
293
+ * is required
294
+
295
+ * Type: `string`
296
+
297
+ * can be null
298
+
299
+ * defined in: [NSIP Invoice](nsip-invoice-properties-refundissuedate.md "nsip-invoice.schema.json#/properties/refundIssueDate")
300
+
301
+ ### refundIssueDate Type
302
+
303
+ `string`
304
+
305
+ ### refundIssueDate Constraints
306
+
307
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
308
+
309
+ ### refundIssueDate Examples
310
+
311
+ ```json
312
+ "2023-07-27T20:30:00.000Z"
313
+ ```
314
+
315
+ ## Additional Properties
316
+
317
+ Additional properties are allowed and do not have to follow a specific schema
@@ -0,0 +1,197 @@
1
+ ## NSIP Meeting Type
2
+
3
+ `object` ([NSIP Meeting](nsip-meeting.md))
4
+
5
+ # NSIP Meeting Properties
6
+
7
+ | Property | Type | Required | Nullable | Defined by |
8
+ | :---------------------------------------------------- | :-------- | :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------- |
9
+ | [meetingID](#meetingid) | `integer` | Required | cannot be null | [NSIP Meeting](nsip-meeting-properties-meetingid.md "nsip-meeting.schema.json#/properties/meetingID") |
10
+ | [caseId](#caseid) | `integer` | Required | cannot be null | [NSIP Meeting](nsip-meeting-properties-caseid.md "nsip-meeting.schema.json#/properties/caseId") |
11
+ | [caseReference](#casereference) | `string` | Required | can be null | [NSIP Meeting](nsip-meeting-properties-casereference.md "nsip-meeting.schema.json#/properties/caseReference") |
12
+ | [meetingAgenda](#meetingagenda) | `string` | Required | can be null | [NSIP Meeting](nsip-meeting-properties-meetingagenda.md "nsip-meeting.schema.json#/properties/meetingAgenda") |
13
+ | [planningInspectorateRole](#planninginspectoraterole) | `string` | Required | can be null | [NSIP Meeting](nsip-meeting-properties-planninginspectoraterole.md "nsip-meeting.schema.json#/properties/planningInspectorateRole") |
14
+ | [meetingDate](#meetingdate) | `string` | Required | can be null | [NSIP Meeting](nsip-meeting-properties-meetingdate.md "nsip-meeting.schema.json#/properties/meetingDate") |
15
+ | [meetingType](#meetingtype) | `string` | Required | can be null | [NSIP Meeting](nsip-meeting-properties-meetingtype.md "nsip-meeting.schema.json#/properties/meetingType") |
16
+ | Additional Properties | Any | Optional | can be null | |
17
+
18
+ ## meetingID
19
+
20
+ The unique identifier for an NSIP Meeting.
21
+
22
+ `meetingID`
23
+
24
+ * is required
25
+
26
+ * Type: `integer`
27
+
28
+ * cannot be null
29
+
30
+ * defined in: [NSIP Meeting](nsip-meeting-properties-meetingid.md "nsip-meeting.schema.json#/properties/meetingID")
31
+
32
+ ### meetingID Type
33
+
34
+ `integer`
35
+
36
+ ### meetingID Examples
37
+
38
+ ```json
39
+ 1234
40
+ ```
41
+
42
+ ## caseId
43
+
44
+ The unique identifier for the case within the Back Office. This is not the same as the case reference
45
+
46
+ `caseId`
47
+
48
+ * is required
49
+
50
+ * Type: `integer`
51
+
52
+ * cannot be null
53
+
54
+ * defined in: [NSIP Meeting](nsip-meeting-properties-caseid.md "nsip-meeting.schema.json#/properties/caseId")
55
+
56
+ ### caseId Type
57
+
58
+ `integer`
59
+
60
+ ### caseId Examples
61
+
62
+ ```json
63
+ 1242
64
+ ```
65
+
66
+ ## caseReference
67
+
68
+
69
+
70
+ `caseReference`
71
+
72
+ * is required
73
+
74
+ * Type: `string`
75
+
76
+ * can be null
77
+
78
+ * defined in: [NSIP Meeting](nsip-meeting-properties-casereference.md "nsip-meeting.schema.json#/properties/caseReference")
79
+
80
+ ### caseReference Type
81
+
82
+ `string`
83
+
84
+ ### caseReference Examples
85
+
86
+ ```json
87
+ "BC0510001"
88
+ ```
89
+
90
+ ## meetingAgenda
91
+
92
+ Meeting agenda
93
+
94
+ `meetingAgenda`
95
+
96
+ * is required
97
+
98
+ * Type: `string`
99
+
100
+ * can be null
101
+
102
+ * defined in: [NSIP Meeting](nsip-meeting-properties-meetingagenda.md "nsip-meeting.schema.json#/properties/meetingAgenda")
103
+
104
+ ### meetingAgenda Type
105
+
106
+ `string`
107
+
108
+ ### meetingAgenda Examples
109
+
110
+ ```json
111
+ "Flood Risk Assessment (FRA)"
112
+ ```
113
+
114
+ ## planningInspectorateRole
115
+
116
+ Planning Inspectorate role
117
+
118
+ `planningInspectorateRole`
119
+
120
+ * is required
121
+
122
+ * Type: `string`
123
+
124
+ * can be null
125
+
126
+ * defined in: [NSIP Meeting](nsip-meeting-properties-planninginspectoraterole.md "nsip-meeting.schema.json#/properties/planningInspectorateRole")
127
+
128
+ ### planningInspectorateRole Type
129
+
130
+ `string`
131
+
132
+ ### planningInspectorateRole Constraints
133
+
134
+ **enum**: the value of this property must be equal to one of the following values:
135
+
136
+ | Value | Explanation |
137
+ | :-------------- | :---------- |
138
+ | `"facilitator"` | |
139
+ | `"advisor"` | |
140
+ | `"observer"` | |
141
+ | `null` | |
142
+
143
+ ### planningInspectorateRole Examples
144
+
145
+ ```json
146
+ "facilitator"
147
+ ```
148
+
149
+ ## meetingDate
150
+
151
+ Meeting date
152
+
153
+ `meetingDate`
154
+
155
+ * is required
156
+
157
+ * Type: `string`
158
+
159
+ * can be null
160
+
161
+ * defined in: [NSIP Meeting](nsip-meeting-properties-meetingdate.md "nsip-meeting.schema.json#/properties/meetingDate")
162
+
163
+ ### meetingDate Type
164
+
165
+ `string`
166
+
167
+ ### meetingDate Constraints
168
+
169
+ **date time**: the string must be a date time string, according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339 "check the specification")
170
+
171
+ ### meetingDate Examples
172
+
173
+ ```json
174
+ "2023-07-27T20:30:00.000Z"
175
+ ```
176
+
177
+ ## meetingType
178
+
179
+ Type of Meeting
180
+
181
+ `meetingType`
182
+
183
+ * is required
184
+
185
+ * Type: `string`
186
+
187
+ * can be null
188
+
189
+ * defined in: [NSIP Meeting](nsip-meeting-properties-meetingtype.md "nsip-meeting.schema.json#/properties/meetingType")
190
+
191
+ ### meetingType Type
192
+
193
+ `string`
194
+
195
+ ## Additional Properties
196
+
197
+ Additional properties are allowed and do not have to follow a specific schema
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planning-inspectorate/data-model",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "JSON Schemas for the Planning Inspectorate's Data Model",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -0,0 +1,81 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: nsip-invoice.schema.json
3
+ # timestamp: 2025-11-12T16:26:57+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 | None = 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-11-12T16:26:57+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 | None = 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
+ """
@@ -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;
package/src/schemas.d.ts CHANGED
@@ -2088,6 +2088,92 @@ export interface LineItem {
2088
2088
  [k: string]: unknown;
2089
2089
  }
2090
2090
 
2091
+ /**
2092
+ * NSIP Standalone Invoice Schema for ODW Curated layer
2093
+ */
2094
+ export interface NSIPInvoice {
2095
+ /**
2096
+ * The unique identifier within the Back Office. This is not the same as the case reference
2097
+ */
2098
+ caseId: number;
2099
+ caseReference: string | null;
2100
+ /**
2101
+ * Invoice stage
2102
+ */
2103
+ invoiceStage:
2104
+ | 'pre_acceptance'
2105
+ | 'acceptance'
2106
+ | 'pre_examination'
2107
+ | 'initial_examination'
2108
+ | 'final_examination'
2109
+ | null;
2110
+ /**
2111
+ * Invoice number
2112
+ */
2113
+ invoiceNumber: string;
2114
+ /**
2115
+ * Amount due
2116
+ */
2117
+ amountDue: number;
2118
+ /**
2119
+ * Payment due date
2120
+ */
2121
+ paymentDueDate: string | null;
2122
+ /**
2123
+ * Invoiced date
2124
+ */
2125
+ invoicedDate: string | null;
2126
+ /**
2127
+ * Date of payment
2128
+ */
2129
+ paymentDate: string | null;
2130
+ /**
2131
+ * Refund credit note number
2132
+ */
2133
+ refundCreditNoteNumber: string | null;
2134
+ /**
2135
+ * Amount refunded
2136
+ */
2137
+ refundAmount: number | null;
2138
+ /**
2139
+ * Refund issue date
2140
+ */
2141
+ refundIssueDate: string | null;
2142
+ [k: string]: unknown;
2143
+ }
2144
+
2145
+ /**
2146
+ * NSIP Standalone Meeting Schema for ODW Curated layer
2147
+ */
2148
+ export interface NSIPMeeting {
2149
+ /**
2150
+ * The unique identifier for an NSIP Meeting.
2151
+ */
2152
+ meetingID: number;
2153
+ /**
2154
+ * The unique identifier for the case within the Back Office. This is not the same as the case reference
2155
+ */
2156
+ caseId: number;
2157
+ caseReference: string | null;
2158
+ /**
2159
+ * Meeting agenda
2160
+ */
2161
+ meetingAgenda: string | null;
2162
+ /**
2163
+ * Planning Inspectorate role
2164
+ */
2165
+ planningInspectorateRole: 'facilitator' | 'advisor' | 'observer' | null;
2166
+ /**
2167
+ * Meeting date
2168
+ */
2169
+ meetingDate: string | null;
2170
+ /**
2171
+ * Type of Meeting
2172
+ */
2173
+ meetingType: string | null;
2174
+ [k: string]: unknown;
2175
+ }
2176
+
2091
2177
  /**
2092
2178
  * NSIP Project Update (formerly known as Banners)
2093
2179
  */