@planning-inspectorate/data-model 2.49.0 → 2.51.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 (55) hide show
  1. package/docs/README.md +23 -1
  2. package/docs/address.md +366 -0
  3. package/docs/applications-application-defs-address.md +108 -0
  4. package/docs/applications-application-defs-contact.md +98 -0
  5. package/docs/applications-application-defs-organisation.md +117 -0
  6. package/docs/applications-application-defs.md +3 -0
  7. package/docs/{application-update.md → applications-application-update.md} +22 -22
  8. package/docs/applications-application.md +2250 -0
  9. package/docs/applications-notify-email-defs-contact.md +93 -0
  10. package/docs/applications-notify-email-defs.md +3 -0
  11. package/docs/applications-notify-email.md +458 -0
  12. package/docs/applications-representation-definitions-contact.md +93 -0
  13. package/docs/applications-representation-definitions-representationdocument.md +152 -0
  14. package/docs/applications-representation-definitions.md +3 -0
  15. package/docs/applications-representation.md +834 -0
  16. package/docs/nsip-exam-timetable-defs-event.md +1 -0
  17. package/docs/nsip-exam-timetable.md +1 -0
  18. package/package.json +1 -1
  19. package/pins_data_model/gen_models.py +2 -1
  20. package/pins_data_model/models/model_address.py +69 -0
  21. package/pins_data_model/models/model_appeal_document.py +11 -11
  22. package/pins_data_model/models/model_appeal_event.py +4 -4
  23. package/pins_data_model/models/model_appeal_event_estimate.py +3 -3
  24. package/pins_data_model/models/model_appeal_has.py +111 -93
  25. package/pins_data_model/models/model_appeal_representation.py +12 -12
  26. package/pins_data_model/models/model_appeal_s78.py +246 -228
  27. package/pins_data_model/models/model_application_update.py +2 -2
  28. package/pins_data_model/models/model_applications_application.py +518 -0
  29. package/pins_data_model/models/model_applications_application_update.py +55 -0
  30. package/pins_data_model/models/model_applications_notify_email.py +124 -0
  31. package/pins_data_model/models/model_applications_representation.py +207 -0
  32. package/pins_data_model/models/model_dart_response.py +1 -1
  33. package/pins_data_model/models/model_folder.py +3 -3
  34. package/pins_data_model/models/model_nsip_document.py +12 -12
  35. package/pins_data_model/models/model_nsip_exam_timetable.py +3 -2
  36. package/pins_data_model/models/model_nsip_invoice.py +2 -2
  37. package/pins_data_model/models/model_nsip_project.py +19 -19
  38. package/pins_data_model/models/model_nsip_project_update.py +5 -5
  39. package/pins_data_model/models/model_nsip_representation.py +7 -7
  40. package/pins_data_model/models/model_nsip_subscription.py +6 -6
  41. package/pins_data_model/models/model_pins_inspector.py +5 -5
  42. package/pins_data_model/models/model_s51_advice.py +7 -7
  43. package/pins_data_model/models/model_service_user.py +2 -2
  44. package/requirements.txt +1 -1
  45. package/schemas/address.schema.json +87 -0
  46. package/schemas/{application-update.schema.json → applications-application-update.schema.json} +1 -1
  47. package/schemas/applications-application.schema.json +539 -0
  48. package/schemas/applications-notify-email.schema.json +118 -0
  49. package/schemas/applications-representation.schema.json +202 -0
  50. package/schemas/nsip-exam-timetable.schema.json +2 -1
  51. package/src/enums.cjs +147 -0
  52. package/src/enums.d.ts +131 -0
  53. package/src/enums.js +131 -0
  54. package/src/index.cjs +147 -0
  55. package/src/schemas.d.ts +680 -2
@@ -10,11 +10,11 @@ class Address(BaseModel):
10
10
  model_config = ConfigDict(
11
11
  extra="allow",
12
12
  )
13
- addressLine1: str | None = None
14
- addressLine2: str | None = None
15
- townCity: str | None = None
16
- county: str | None = None
17
- postcode: str | None = None
13
+ addressLine1: str | None
14
+ addressLine2: str | None
15
+ townCity: str | None
16
+ county: str | None
17
+ postcode: str | None
18
18
 
19
19
 
20
20
  class Specialism(BaseModel):
@@ -65,11 +65,11 @@ class S51Advice(BaseModel):
65
65
  """
66
66
  Who the enquiry is from
67
67
  """
68
- agent: str | None = None
68
+ agent: str | None
69
69
  """
70
70
  Who the enquiry is on behalf of
71
71
  """
72
- method: Method
72
+ method: Method | None
73
73
  """
74
74
  How the enquiry was made
75
75
  """
@@ -79,7 +79,7 @@ class S51Advice(BaseModel):
79
79
  """
80
80
  Date the enquiry was made
81
81
  """
82
- enquiryDetails: str | None = None
82
+ enquiryDetails: str | None
83
83
  """
84
84
  Details of the enquiry
85
85
  """
@@ -87,7 +87,7 @@ class S51Advice(BaseModel):
87
87
  """
88
88
  Details of the enquiry in Welsh
89
89
  """
90
- adviceGivenBy: str | None = None
90
+ adviceGivenBy: str | None
91
91
  """
92
92
  Who issued the advice
93
93
  """
@@ -95,7 +95,7 @@ class S51Advice(BaseModel):
95
95
  """
96
96
  Date the advice was given
97
97
  """
98
- adviceDetails: str | None = None
98
+ adviceDetails: str | None
99
99
  """
100
100
  Details of the advice
101
101
  """
@@ -103,6 +103,6 @@ class S51Advice(BaseModel):
103
103
  """
104
104
  Details of the advice in Welsh
105
105
  """
106
- status: Status
107
- redactionStatus: RedactionStatus
106
+ status: Status | None
107
+ redactionStatus: RedactionStatus | None
108
108
  attachmentIds: list[str]
@@ -3,12 +3,12 @@
3
3
 
4
4
  from __future__ import annotations
5
5
 
6
- from enum import Enum
6
+ from enum import StrEnum
7
7
 
8
8
  from pydantic import BaseModel, ConfigDict, Field
9
9
 
10
10
 
11
- class ServiceUserType(Enum):
11
+ class ServiceUserType(StrEnum):
12
12
  """
13
13
  Type or category of the service user.
14
14
  """
package/requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- datamodel-code-generator==0.25.2
1
+ datamodel-code-generator==0.64.0
2
2
  jsonc-parser==1.1.0
@@ -0,0 +1,87 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "address.schema.json",
4
+ "title": "PINS Address Schema",
5
+ "description": "A schema to define the structure of an Address object in PINS.",
6
+ "type": "object",
7
+ "additionalProperties": true,
8
+ "required": ["addressDimKey", "caseReference", "caseId", "caseType"],
9
+ "properties": {
10
+ "addressDimKey": {
11
+ "type": "number",
12
+ "description": "Primary Key for an Address.",
13
+ "example": 12345
14
+ },
15
+ "addressType": {
16
+ "type": "string",
17
+ "description": "The type of thing this address is for.",
18
+ "example": "site",
19
+ "enum": ["site", "neighbouring", "organisation", "contact"]
20
+ },
21
+ "caseReference": {
22
+ "type": "string",
23
+ "description": "Business Key for the related case",
24
+ "example": "CROWN/2025/12345"
25
+ },
26
+ "caseId": {
27
+ "type": "string",
28
+ "description": "The unique ID for the case this representation belongs to.",
29
+ "example": "AAAAAAAA-1234-1234-1234-AAAAAAAAAAAA"
30
+ },
31
+ "caseType": {
32
+ "type": "string",
33
+ "description": "The type of case this representation is for.",
34
+ "example": "Crown Development Application"
35
+ },
36
+ "description": {
37
+ "type": ["string", "null"],
38
+ "description": "Some sites may have a postcode, but do not have postal addresses.",
39
+ "example": "The field behind the crown pub"
40
+ },
41
+ "line1": {
42
+ "type": ["string", "null"]
43
+ },
44
+ "line2": {
45
+ "type": ["string", "null"]
46
+ },
47
+ "townCity": {
48
+ "type": ["string", "null"]
49
+ },
50
+ "county": {
51
+ "type": ["string", "null"]
52
+ },
53
+ "postcode": {
54
+ "type": ["string", "null"]
55
+ },
56
+ "country": {
57
+ "type": ["string", "null"]
58
+ },
59
+ "easting": {
60
+ "type": ["string", "null"],
61
+ "example": "358267"
62
+ },
63
+ "northing": {
64
+ "type": ["string", "null"],
65
+ "example": "172797"
66
+ },
67
+ "latitudeWGS84": {
68
+ "type": ["number", "null"],
69
+ "example": 51.452608
70
+ },
71
+ "longitudeWGS84": {
72
+ "type": ["number", "null"],
73
+ "example": -2.6019821
74
+ },
75
+ "UPRN": {
76
+ "type": ["string", "null"],
77
+ "example": 100023336956,
78
+ "description": "The Unique Property Reference Number (UPRN) is a unique number (a geocode) for every addressable location—e.g., a building, a bus stop, a post box, a feature in the landscape, or a defibrillator—in Great Britain."
79
+ },
80
+ "dependentRequired": {
81
+ "easting": ["northing"],
82
+ "northing": ["easting"],
83
+ "latitudeWGS84": ["longitudeWGS84"],
84
+ "longitudeWGS84": ["latitudeWGS84"]
85
+ }
86
+ }
87
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "application-update.schema.json",
3
+ "$id": "applications-application-update.schema.json",
4
4
  "title": "Application Update Schema",
5
5
  "description": "Application Update for Casework Project",
6
6
  "type": "object",