@planning-inspectorate/data-model 2.50.0 → 2.51.1
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/commitlint.config.js +3 -8
- package/docs/address.md +1 -1
- package/docs/nsip-exam-timetable-defs-event.md +1 -0
- package/docs/nsip-exam-timetable.md +1 -0
- package/eslint.config.js +3 -20
- package/load-test/appeals/generate-appeals-messages.js +1 -1
- package/load-test/appeals/run-load-script.js +2 -2
- package/load-test/service-bus-client.js +1 -1
- package/package.json +5 -2
- package/pins_data_model/gen_models.py +2 -1
- package/pins_data_model/models/model_address.py +3 -3
- package/pins_data_model/models/model_appeal_document.py +11 -11
- package/pins_data_model/models/model_appeal_event.py +4 -4
- package/pins_data_model/models/model_appeal_event_estimate.py +3 -3
- package/pins_data_model/models/model_appeal_has.py +111 -93
- package/pins_data_model/models/model_appeal_representation.py +12 -12
- package/pins_data_model/models/model_appeal_s78.py +246 -228
- package/pins_data_model/models/model_application_update.py +2 -2
- package/pins_data_model/models/model_applications_application.py +4 -4
- package/pins_data_model/models/model_applications_application_update.py +2 -2
- package/pins_data_model/models/model_applications_notify_email.py +2 -2
- package/pins_data_model/models/model_applications_representation.py +4 -4
- package/pins_data_model/models/model_dart_response.py +1 -1
- package/pins_data_model/models/model_folder.py +3 -3
- package/pins_data_model/models/model_nsip_document.py +12 -12
- package/pins_data_model/models/model_nsip_exam_timetable.py +3 -2
- package/pins_data_model/models/model_nsip_invoice.py +2 -2
- package/pins_data_model/models/model_nsip_project.py +19 -19
- package/pins_data_model/models/model_nsip_project_update.py +5 -5
- package/pins_data_model/models/model_nsip_representation.py +7 -7
- package/pins_data_model/models/model_nsip_subscription.py +6 -6
- package/pins_data_model/models/model_pins_inspector.py +5 -5
- package/pins_data_model/models/model_s51_advice.py +7 -7
- package/pins_data_model/models/model_service_user.py +2 -2
- package/prettier.config.js +13 -0
- package/requirements.txt +1 -1
- package/schemas/address.schema.json +1 -1
- package/schemas/nsip-exam-timetable.schema.json +2 -1
- package/src/index.cjs +1 -1
- package/src/lib/gen-docs.js +1 -1
- package/src/lib/gen-enum-impl.test.js +1 -1
- package/src/lib/gen-enums.js +1 -1
- package/src/lib/gen-types.js +2 -2
- package/src/lib/load.js +1 -1
- package/src/schemas.d.ts +30 -2
- package/tests/appeals/appeal-event.test.js +2 -2
- package/tests/appeals/appeal-has.test.js +2 -2
- package/tests/appeals/appeal-s78.test.js +2 -2
- package/tests/appeals/commands/adverts-questionnaire.test.js +2 -2
- package/tests/appeals/commands/adverts-submission.test.js +2 -2
- package/tests/appeals/commands/appeal-representation-submission.test.js +2 -2
- package/tests/appeals/commands/cas-adverts-questionnaire.test.js +2 -2
- package/tests/appeals/commands/cas-adverts-submission.test.js +2 -2
- package/tests/appeals/commands/enforcement-listed-questionnaire.test.js +2 -2
- package/tests/appeals/commands/enforcement-listed-submission.test.js +2 -2
- package/tests/appeals/commands/enforcement-notice-submission.test.js +2 -2
- package/tests/appeals/commands/enforcement-questionnaire.test.js +2 -2
- package/tests/appeals/commands/has-questionnaire.test.js +2 -2
- package/tests/appeals/commands/has-submission.test.js +2 -2
- package/tests/appeals/commands/ldc-questionnaire.test.js +2 -2
- package/tests/appeals/commands/ldc-submission.test.js +2 -2
- package/tests/appeals/commands/s20-questionnaire.test.js +2 -2
- package/tests/appeals/commands/s78-questionnaire.test.js +2 -2
- package/tests/appeals/commands/s78-submission.test.js +2 -2
- package/tests/appeals/expedited-appeals.test.js +2 -2
- package/tests/schemas.test.js +1 -1
- package/.prettierrc +0 -19
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
from __future__ import annotations
|
|
5
5
|
|
|
6
|
-
from enum import Enum
|
|
6
|
+
from enum import Enum, StrEnum
|
|
7
7
|
from uuid import UUID
|
|
8
8
|
|
|
9
9
|
from pydantic import AwareDatetime, BaseModel, ConfigDict, Field, RootModel, constr
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
class CaseStatus(
|
|
12
|
+
class CaseStatus(StrEnum):
|
|
13
13
|
"""
|
|
14
14
|
The processing status for the appeal
|
|
15
15
|
"""
|
|
@@ -33,7 +33,7 @@ class CaseStatus(Enum):
|
|
|
33
33
|
awaiting_event = "awaiting_event"
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
class CaseType(
|
|
36
|
+
class CaseType(StrEnum):
|
|
37
37
|
"""
|
|
38
38
|
The internal code for an appeal type, e.g. D (Householder)
|
|
39
39
|
"""
|
|
@@ -175,7 +175,7 @@ class KnowsAllOwners(Enum):
|
|
|
175
175
|
NoneType_None = None
|
|
176
176
|
|
|
177
177
|
|
|
178
|
-
class NotificationMethodEnum(
|
|
178
|
+
class NotificationMethodEnum(StrEnum):
|
|
179
179
|
notice = "notice"
|
|
180
180
|
letter = "letter"
|
|
181
181
|
advert = "advert"
|
|
@@ -190,7 +190,7 @@ class NeighbouringSiteAddress(BaseModel):
|
|
|
190
190
|
"""
|
|
191
191
|
First line of address of the site
|
|
192
192
|
"""
|
|
193
|
-
neighbouringSiteAddressLine2: str | None
|
|
193
|
+
neighbouringSiteAddressLine2: str | None
|
|
194
194
|
"""
|
|
195
195
|
Second line of address of the site
|
|
196
196
|
"""
|
|
@@ -329,12 +329,12 @@ class AdvertDetail(BaseModel):
|
|
|
329
329
|
model_config = ConfigDict(
|
|
330
330
|
extra="allow",
|
|
331
331
|
)
|
|
332
|
-
advertType: AdvertType
|
|
333
|
-
isAdvertInPosition: bool | None
|
|
332
|
+
advertType: AdvertType | None
|
|
333
|
+
isAdvertInPosition: bool | None
|
|
334
334
|
"""
|
|
335
335
|
Is the advertisement in position?
|
|
336
336
|
"""
|
|
337
|
-
isSiteOnHighwayLand: bool | None
|
|
337
|
+
isSiteOnHighwayLand: bool | None
|
|
338
338
|
"""
|
|
339
339
|
Is the site on highway land?
|
|
340
340
|
"""
|
|
@@ -427,76 +427,7 @@ class DiscontinuanceNoticeServedReason(Enum):
|
|
|
427
427
|
NoneType_None = None
|
|
428
428
|
|
|
429
429
|
|
|
430
|
-
class
|
|
431
|
-
model_config = ConfigDict(
|
|
432
|
-
extra="allow",
|
|
433
|
-
)
|
|
434
|
-
advertType: AdvertType
|
|
435
|
-
isAdvertInPosition: bool | None = None
|
|
436
|
-
"""
|
|
437
|
-
Is the advertisement in position?
|
|
438
|
-
"""
|
|
439
|
-
isSiteOnHighwayLand: bool | None = None
|
|
440
|
-
"""
|
|
441
|
-
Is the site on highway land?
|
|
442
|
-
"""
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
class AppealGroundLetter2(Enum):
|
|
446
|
-
a = "a"
|
|
447
|
-
b = "b"
|
|
448
|
-
c = "c"
|
|
449
|
-
d = "d"
|
|
450
|
-
e = "e"
|
|
451
|
-
f = "f"
|
|
452
|
-
g = "g"
|
|
453
|
-
NoneType_None = None
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
class EnforcementAppealGroundsDetail1(BaseModel):
|
|
457
|
-
model_config = ConfigDict(
|
|
458
|
-
extra="allow",
|
|
459
|
-
)
|
|
460
|
-
appealGroundLetter: AppealGroundLetter2 | None = None
|
|
461
|
-
groundForAppealStartDate: AwareDatetime | None = Field(
|
|
462
|
-
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
463
|
-
)
|
|
464
|
-
groundFacts: str | None = None
|
|
465
|
-
"""
|
|
466
|
-
Facts supporting the appeal ground
|
|
467
|
-
"""
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
class AppealGroundLetter3(Enum):
|
|
471
|
-
a = "a"
|
|
472
|
-
b = "b"
|
|
473
|
-
c = "c"
|
|
474
|
-
d = "d"
|
|
475
|
-
e = "e"
|
|
476
|
-
f = "f"
|
|
477
|
-
g = "g"
|
|
478
|
-
h = "h"
|
|
479
|
-
i = "i"
|
|
480
|
-
j = "j"
|
|
481
|
-
k = "k"
|
|
482
|
-
NoneType_None = None
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
class ApplicationElbAppealGroundsDetail1(BaseModel):
|
|
486
|
-
model_config = ConfigDict(
|
|
487
|
-
extra="allow",
|
|
488
|
-
)
|
|
489
|
-
appealGroundLetter: AppealGroundLetter3 | None = None
|
|
490
|
-
groundForAppealStartDate: AwareDatetime | None = Field(
|
|
491
|
-
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
492
|
-
)
|
|
493
|
-
groundFacts: str | None = None
|
|
494
|
-
"""
|
|
495
|
-
Facts supporting the appeal ground
|
|
496
|
-
"""
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
class SignificantChangesAffectingApplication(Enum):
|
|
430
|
+
class Value(Enum):
|
|
500
431
|
adopted_a_new_local_plan = "adopted-a-new-local-plan"
|
|
501
432
|
national_policy_change = "national-policy-change"
|
|
502
433
|
court_judgement = "court-judgement"
|
|
@@ -505,12 +436,12 @@ class SignificantChangesAffectingApplication(Enum):
|
|
|
505
436
|
|
|
506
437
|
|
|
507
438
|
class SignificantChangesAffectingApplicationAppellantItem(BaseModel):
|
|
508
|
-
value:
|
|
439
|
+
value: Value | None
|
|
509
440
|
comment: str | None = None
|
|
510
441
|
|
|
511
442
|
|
|
512
443
|
class SignificantChangesAffectingApplicationLpaItem(BaseModel):
|
|
513
|
-
value:
|
|
444
|
+
value: Value | None
|
|
514
445
|
comment: str | None = None
|
|
515
446
|
|
|
516
447
|
|
|
@@ -544,7 +475,7 @@ class AppealS78Case1(BaseModel):
|
|
|
544
475
|
"""
|
|
545
476
|
The internal code for an appeal type, e.g. D (Householder)
|
|
546
477
|
"""
|
|
547
|
-
caseProcedure: CaseProcedure
|
|
478
|
+
caseProcedure: CaseProcedure | None
|
|
548
479
|
"""
|
|
549
480
|
The type of procedure for the appeal
|
|
550
481
|
"""
|
|
@@ -552,23 +483,23 @@ class AppealS78Case1(BaseModel):
|
|
|
552
483
|
"""
|
|
553
484
|
A unique identifier for the Local Planning Authority
|
|
554
485
|
"""
|
|
555
|
-
caseOfficerId: str | None
|
|
486
|
+
caseOfficerId: str | None
|
|
556
487
|
"""
|
|
557
488
|
Unique identifier for the case officer assigned to the case
|
|
558
489
|
"""
|
|
559
|
-
inspectorId: str | None
|
|
490
|
+
inspectorId: str | None
|
|
560
491
|
"""
|
|
561
492
|
Unique identifier for the inspector assigned to the case
|
|
562
493
|
"""
|
|
563
|
-
allocationLevel: AllocationLevel
|
|
494
|
+
allocationLevel: AllocationLevel | None
|
|
564
495
|
"""
|
|
565
496
|
A level used for allocation purposes
|
|
566
497
|
"""
|
|
567
|
-
allocationBand: AllocationBand
|
|
498
|
+
allocationBand: AllocationBand | None
|
|
568
499
|
"""
|
|
569
500
|
A band used for allocation purposes
|
|
570
501
|
"""
|
|
571
|
-
caseSpecialisms: list[str] = Field(
|
|
502
|
+
caseSpecialisms: list[str] | None = Field(
|
|
572
503
|
..., examples=[["Access", "Listed building and enforcement"], ["Schedule 1"]]
|
|
573
504
|
)
|
|
574
505
|
"""
|
|
@@ -598,15 +529,15 @@ class AppealS78Case1(BaseModel):
|
|
|
598
529
|
"""
|
|
599
530
|
The date the appeal was validated in the back-office
|
|
600
531
|
"""
|
|
601
|
-
caseValidationOutcome: CaseValidationOutcome
|
|
532
|
+
caseValidationOutcome: CaseValidationOutcome | None
|
|
602
533
|
"""
|
|
603
534
|
The outcome of the validation action
|
|
604
535
|
"""
|
|
605
|
-
caseValidationInvalidDetails: list[str]
|
|
536
|
+
caseValidationInvalidDetails: list[str] | None
|
|
606
537
|
"""
|
|
607
538
|
A list of reasons why the appeal is invalid
|
|
608
539
|
"""
|
|
609
|
-
caseValidationIncompleteDetails: list[str]
|
|
540
|
+
caseValidationIncompleteDetails: list[str] | None
|
|
610
541
|
"""
|
|
611
542
|
A list of reasons why the appeal is incomplete
|
|
612
543
|
"""
|
|
@@ -628,7 +559,7 @@ class AppealS78Case1(BaseModel):
|
|
|
628
559
|
"""
|
|
629
560
|
A date indicating when the case was published
|
|
630
561
|
"""
|
|
631
|
-
linkedCaseStatus: LinkedCaseStatus
|
|
562
|
+
linkedCaseStatus: LinkedCaseStatus | None
|
|
632
563
|
"""
|
|
633
564
|
Indicates if the case is linked, and the type of relationship
|
|
634
565
|
"""
|
|
@@ -660,7 +591,7 @@ class AppealS78Case1(BaseModel):
|
|
|
660
591
|
"""
|
|
661
592
|
The date indicating when the questionnaire review was completed and the questionnaire published
|
|
662
593
|
"""
|
|
663
|
-
lpaQuestionnaireValidationOutcome: LpaQuestionnaireValidationOutcome
|
|
594
|
+
lpaQuestionnaireValidationOutcome: LpaQuestionnaireValidationOutcome | None
|
|
664
595
|
"""
|
|
665
596
|
The outcome of the validation action
|
|
666
597
|
"""
|
|
@@ -670,7 +601,7 @@ class AppealS78Case1(BaseModel):
|
|
|
670
601
|
"""
|
|
671
602
|
The date the LPA response was validated
|
|
672
603
|
"""
|
|
673
|
-
lpaQuestionnaireValidationDetails: list[str]
|
|
604
|
+
lpaQuestionnaireValidationDetails: list[str] | None
|
|
674
605
|
"""
|
|
675
606
|
A list of reasons why the questionnaire is incomplete
|
|
676
607
|
"""
|
|
@@ -714,7 +645,7 @@ class AppealS78Case1(BaseModel):
|
|
|
714
645
|
"""
|
|
715
646
|
The date the appeal decision was published
|
|
716
647
|
"""
|
|
717
|
-
caseDecisionOutcome: CaseDecisionOutcome
|
|
648
|
+
caseDecisionOutcome: CaseDecisionOutcome | None
|
|
718
649
|
"""
|
|
719
650
|
The final outcome for the decision
|
|
720
651
|
"""
|
|
@@ -724,7 +655,7 @@ class AppealS78Case1(BaseModel):
|
|
|
724
655
|
"""
|
|
725
656
|
The date the appeal decision letter
|
|
726
657
|
"""
|
|
727
|
-
enforcementNotice: bool | None
|
|
658
|
+
enforcementNotice: bool | None
|
|
728
659
|
"""
|
|
729
660
|
Indicates if an enforcement notice is the reason for the appeal
|
|
730
661
|
"""
|
|
@@ -738,7 +669,7 @@ class AppealS78Case1(BaseModel):
|
|
|
738
669
|
"""
|
|
739
670
|
The date of the original LPA application
|
|
740
671
|
"""
|
|
741
|
-
applicationDecision: ApplicationDecision
|
|
672
|
+
applicationDecision: ApplicationDecision | None
|
|
742
673
|
"""
|
|
743
674
|
The outcome of the original LPA decision
|
|
744
675
|
"""
|
|
@@ -780,11 +711,11 @@ class AppealS78Case1(BaseModel):
|
|
|
780
711
|
"""
|
|
781
712
|
Postal code of the site address
|
|
782
713
|
"""
|
|
783
|
-
siteAccessDetails: list[str]
|
|
714
|
+
siteAccessDetails: list[str] | None
|
|
784
715
|
"""
|
|
785
716
|
Provided information on site accessibility
|
|
786
717
|
"""
|
|
787
|
-
siteSafetyDetails: list[str]
|
|
718
|
+
siteSafetyDetails: list[str] | None
|
|
788
719
|
"""
|
|
789
720
|
Provided information on site health and safety
|
|
790
721
|
"""
|
|
@@ -796,45 +727,45 @@ class AppealS78Case1(BaseModel):
|
|
|
796
727
|
"""
|
|
797
728
|
The floor space, in square meters
|
|
798
729
|
"""
|
|
799
|
-
isCorrectAppealType: bool | None
|
|
730
|
+
isCorrectAppealType: bool | None
|
|
800
731
|
"""
|
|
801
732
|
Indicates if the LPA considers the appeal type appropriate
|
|
802
733
|
"""
|
|
803
|
-
isGreenBelt: bool | None
|
|
734
|
+
isGreenBelt: bool | None
|
|
804
735
|
"""
|
|
805
736
|
Indicates if the site is in a green belt
|
|
806
737
|
"""
|
|
807
|
-
inConservationArea: bool | None
|
|
738
|
+
inConservationArea: bool | None
|
|
808
739
|
"""
|
|
809
740
|
Indicates if the site is in a conservation area
|
|
810
741
|
"""
|
|
811
|
-
ownsAllLand: bool | None
|
|
742
|
+
ownsAllLand: bool | None
|
|
812
743
|
"""
|
|
813
744
|
Indicates if the appellant has complete ownership of the site
|
|
814
745
|
"""
|
|
815
|
-
ownsSomeLand: bool | None
|
|
746
|
+
ownsSomeLand: bool | None
|
|
816
747
|
"""
|
|
817
748
|
Indicates if the appellant has partial ownership of the site
|
|
818
749
|
"""
|
|
819
|
-
knowsOtherOwners: KnowsOtherOwners
|
|
750
|
+
knowsOtherOwners: KnowsOtherOwners | None
|
|
820
751
|
"""
|
|
821
752
|
Indicates if the appellant knows other owners of the site
|
|
822
753
|
"""
|
|
823
|
-
knowsAllOwners: KnowsAllOwners
|
|
754
|
+
knowsAllOwners: KnowsAllOwners | None
|
|
824
755
|
"""
|
|
825
756
|
Indicates if the appellant knows all owners of the site
|
|
826
757
|
"""
|
|
827
|
-
advertisedAppeal: bool | None
|
|
758
|
+
advertisedAppeal: bool | None
|
|
828
759
|
"""
|
|
829
760
|
Indicates if the appellant has advertised the appeal to the LPA decision
|
|
830
761
|
"""
|
|
831
|
-
notificationMethod: list[NotificationMethodEnum] = Field(
|
|
762
|
+
notificationMethod: list[NotificationMethodEnum] | None = Field(
|
|
832
763
|
..., examples=[["notice", "letter"], ["advert"]]
|
|
833
764
|
)
|
|
834
765
|
"""
|
|
835
766
|
The methods used to notify relevant parties
|
|
836
767
|
"""
|
|
837
|
-
ownersInformed: bool | None
|
|
768
|
+
ownersInformed: bool | None
|
|
838
769
|
"""
|
|
839
770
|
Indicates if the appellant has informed other owners of the site
|
|
840
771
|
"""
|
|
@@ -844,7 +775,7 @@ class AppealS78Case1(BaseModel):
|
|
|
844
775
|
"""
|
|
845
776
|
The original description of the development, as provided by the appellant
|
|
846
777
|
"""
|
|
847
|
-
changedDevelopmentDescription: bool | None
|
|
778
|
+
changedDevelopmentDescription: bool | None
|
|
848
779
|
"""
|
|
849
780
|
Indicates that the LPA has changed the development description
|
|
850
781
|
"""
|
|
@@ -862,23 +793,23 @@ class AppealS78Case1(BaseModel):
|
|
|
862
793
|
"""
|
|
863
794
|
extra conditions details provided by the LPA
|
|
864
795
|
"""
|
|
865
|
-
nearbyCaseReferences: list[str]
|
|
796
|
+
nearbyCaseReferences: list[str] | None
|
|
866
797
|
"""
|
|
867
798
|
A list of related case references known to the appellant and the LPA
|
|
868
799
|
"""
|
|
869
|
-
neighbouringSiteAddresses: list[NeighbouringSiteAddress]
|
|
800
|
+
neighbouringSiteAddresses: list[NeighbouringSiteAddress] | None
|
|
870
801
|
"""
|
|
871
802
|
A list of neighbouring site addresses
|
|
872
803
|
"""
|
|
873
|
-
reasonForNeighbourVisits: str | None
|
|
804
|
+
reasonForNeighbourVisits: str | None
|
|
874
805
|
"""
|
|
875
806
|
A general reason given for the need to visit any neighbours
|
|
876
807
|
"""
|
|
877
|
-
affectedListedBuildingNumbers: list[str]
|
|
808
|
+
affectedListedBuildingNumbers: list[str] | None
|
|
878
809
|
"""
|
|
879
810
|
A list of affected listed building IDs from Historic England
|
|
880
811
|
"""
|
|
881
|
-
changedListedBuildingNumbers: list[str]
|
|
812
|
+
changedListedBuildingNumbers: list[str] | None
|
|
882
813
|
"""
|
|
883
814
|
A list of changed listed building IDs from Historic England
|
|
884
815
|
"""
|
|
@@ -890,115 +821,115 @@ class AppealS78Case1(BaseModel):
|
|
|
890
821
|
"""
|
|
891
822
|
Are Historic England to be consulted?
|
|
892
823
|
"""
|
|
893
|
-
appellantCostsAppliedFor: bool | None
|
|
824
|
+
appellantCostsAppliedFor: bool | None
|
|
894
825
|
"""
|
|
895
826
|
Indicates if the appellant has applied for costs
|
|
896
827
|
"""
|
|
897
|
-
lpaCostsAppliedFor: bool | None
|
|
828
|
+
lpaCostsAppliedFor: bool | None
|
|
898
829
|
"""
|
|
899
830
|
Indicates if the appellant has applied for costs
|
|
900
831
|
"""
|
|
901
|
-
agriculturalHolding: bool | None
|
|
832
|
+
agriculturalHolding: bool | None
|
|
902
833
|
"""
|
|
903
834
|
Indicates if the site is an agricultural holding
|
|
904
835
|
"""
|
|
905
|
-
tenantAgriculturalHolding: bool | None
|
|
836
|
+
tenantAgriculturalHolding: bool | None
|
|
906
837
|
"""
|
|
907
838
|
Indicates if the site is a tenant agricultural holding
|
|
908
839
|
"""
|
|
909
|
-
otherTenantsAgriculturalHolding: bool | None
|
|
840
|
+
otherTenantsAgriculturalHolding: bool | None
|
|
910
841
|
"""
|
|
911
842
|
Indicates if the site is an agricultural holding with other tenants
|
|
912
843
|
"""
|
|
913
|
-
informedTenantsAgriculturalHolding: bool | None
|
|
844
|
+
informedTenantsAgriculturalHolding: bool | None
|
|
914
845
|
"""
|
|
915
846
|
If the site is an agricultural holding, indicates tenants are informed
|
|
916
847
|
"""
|
|
917
|
-
appellantProcedurePreference: AppellantProcedurePreference
|
|
848
|
+
appellantProcedurePreference: AppellantProcedurePreference | None
|
|
918
849
|
"""
|
|
919
850
|
The procedure preference indicated by the appellant
|
|
920
851
|
"""
|
|
921
|
-
appellantProcedurePreferenceDetails: str | None
|
|
852
|
+
appellantProcedurePreferenceDetails: str | None
|
|
922
853
|
"""
|
|
923
854
|
The procedure details preference indicated by the appellant
|
|
924
855
|
"""
|
|
925
|
-
appellantProcedurePreferenceDuration: float | None
|
|
856
|
+
appellantProcedurePreferenceDuration: float | None
|
|
926
857
|
"""
|
|
927
858
|
The duration of the procedure indicated by the appellant
|
|
928
859
|
"""
|
|
929
|
-
appellantProcedurePreferenceWitnessCount: float | None
|
|
860
|
+
appellantProcedurePreferenceWitnessCount: float | None
|
|
930
861
|
"""
|
|
931
862
|
The number of witnesses appellant has suggested for inquiries preference
|
|
932
863
|
"""
|
|
933
|
-
statusPlanningObligation: str | None
|
|
864
|
+
statusPlanningObligation: str | None
|
|
934
865
|
"""
|
|
935
866
|
The planning obligation information, if available
|
|
936
867
|
"""
|
|
937
|
-
affectsScheduledMonument: bool | None
|
|
868
|
+
affectsScheduledMonument: bool | None
|
|
938
869
|
"""
|
|
939
870
|
Indicates that a scheduled monument is affected
|
|
940
871
|
"""
|
|
941
|
-
hasProtectedSpecies: bool | None
|
|
872
|
+
hasProtectedSpecies: bool | None
|
|
942
873
|
"""
|
|
943
874
|
Indicates the existence of protected species
|
|
944
875
|
"""
|
|
945
|
-
isAonbNationalLandscape: bool | None
|
|
876
|
+
isAonbNationalLandscape: bool | None
|
|
946
877
|
"""
|
|
947
878
|
Indicates an area of outstanding beauty (National Landscape)
|
|
948
879
|
"""
|
|
949
|
-
designatedSitesNames: list[str]
|
|
880
|
+
designatedSitesNames: list[str] | None
|
|
950
881
|
"""
|
|
951
882
|
The designated site names
|
|
952
883
|
"""
|
|
953
|
-
isGypsyOrTravellerSite: bool | None
|
|
884
|
+
isGypsyOrTravellerSite: bool | None
|
|
954
885
|
"""
|
|
955
886
|
Indicates a traveller site
|
|
956
887
|
"""
|
|
957
|
-
isPublicRightOfWay: bool | None
|
|
888
|
+
isPublicRightOfWay: bool | None
|
|
958
889
|
"""
|
|
959
890
|
Indicates a PROW (public right of way)
|
|
960
891
|
"""
|
|
961
|
-
eiaEnvironmentalImpactSchedule: EiaEnvironmentalImpactSchedule
|
|
892
|
+
eiaEnvironmentalImpactSchedule: EiaEnvironmentalImpactSchedule | None
|
|
962
893
|
"""
|
|
963
894
|
The impact schedule from EIA
|
|
964
895
|
"""
|
|
965
|
-
eiaDevelopmentDescription: EiaDevelopmentDescription
|
|
896
|
+
eiaDevelopmentDescription: EiaDevelopmentDescription | None
|
|
966
897
|
"""
|
|
967
898
|
The development description from EIA
|
|
968
899
|
"""
|
|
969
|
-
eiaSensitiveAreaDetails: str | None
|
|
900
|
+
eiaSensitiveAreaDetails: str | None
|
|
970
901
|
"""
|
|
971
902
|
The sensitive area details from EIA
|
|
972
903
|
"""
|
|
973
|
-
eiaColumnTwoThreshold: bool | None
|
|
904
|
+
eiaColumnTwoThreshold: bool | None
|
|
974
905
|
"""
|
|
975
906
|
EIA specific threshold
|
|
976
907
|
"""
|
|
977
|
-
eiaScreeningOpinion: bool | None
|
|
908
|
+
eiaScreeningOpinion: bool | None
|
|
978
909
|
"""
|
|
979
910
|
EIA screening opinion
|
|
980
911
|
"""
|
|
981
|
-
eiaRequiresEnvironmentalStatement: bool | None
|
|
912
|
+
eiaRequiresEnvironmentalStatement: bool | None
|
|
982
913
|
"""
|
|
983
914
|
EIA environmental statement required
|
|
984
915
|
"""
|
|
985
|
-
eiaCompletedEnvironmentalStatement: bool | None
|
|
916
|
+
eiaCompletedEnvironmentalStatement: bool | None
|
|
986
917
|
"""
|
|
987
918
|
EIA completed environmental statement required
|
|
988
919
|
"""
|
|
989
|
-
hasStatutoryConsultees: bool | None
|
|
920
|
+
hasStatutoryConsultees: bool | None
|
|
990
921
|
"""
|
|
991
922
|
Indicates statutory consultees
|
|
992
923
|
"""
|
|
993
|
-
consultedBodiesDetails: str | None
|
|
924
|
+
consultedBodiesDetails: str | None
|
|
994
925
|
"""
|
|
995
926
|
The details of the bodies consulted
|
|
996
927
|
"""
|
|
997
|
-
hasInfrastructureLevy: bool | None
|
|
928
|
+
hasInfrastructureLevy: bool | None
|
|
998
929
|
"""
|
|
999
930
|
Indicates the existence of an infrastructure levy
|
|
1000
931
|
"""
|
|
1001
|
-
isInfrastructureLevyFormallyAdopted: bool | None
|
|
932
|
+
isInfrastructureLevyFormallyAdopted: bool | None
|
|
1002
933
|
"""
|
|
1003
934
|
Indicates if the infrastructure levy is formally adopted
|
|
1004
935
|
"""
|
|
@@ -1014,22 +945,22 @@ class AppealS78Case1(BaseModel):
|
|
|
1014
945
|
"""
|
|
1015
946
|
The expected date of the infrastructure levy
|
|
1016
947
|
"""
|
|
1017
|
-
lpaProcedurePreference: LpaProcedurePreference
|
|
948
|
+
lpaProcedurePreference: LpaProcedurePreference | None
|
|
1018
949
|
"""
|
|
1019
950
|
The procedure preference indicated by the LPA
|
|
1020
951
|
"""
|
|
1021
|
-
lpaProcedurePreferenceDetails: str | None
|
|
952
|
+
lpaProcedurePreferenceDetails: str | None
|
|
1022
953
|
"""
|
|
1023
954
|
The procedure details preference indicated by the LPA
|
|
1024
955
|
"""
|
|
1025
|
-
lpaProcedurePreferenceDuration: float | None
|
|
956
|
+
lpaProcedurePreferenceDuration: float | None
|
|
1026
957
|
"""
|
|
1027
958
|
The duration of enquiry indicated by the LPA
|
|
1028
959
|
"""
|
|
1029
|
-
caseworkReason: str | None
|
|
1030
|
-
importantInformation: str | None
|
|
1031
|
-
jurisdiction: str | None
|
|
1032
|
-
redeterminedIndicator: str | None
|
|
960
|
+
caseworkReason: str | None
|
|
961
|
+
importantInformation: str | None
|
|
962
|
+
jurisdiction: str | None
|
|
963
|
+
redeterminedIndicator: str | None
|
|
1033
964
|
dateCostsReportDespatched: AwareDatetime | None = Field(
|
|
1034
965
|
..., examples=["2023-07-27T20:30:00.000Z"]
|
|
1035
966
|
)
|
|
@@ -1088,7 +1019,7 @@ class AppealS78Case1(BaseModel):
|
|
|
1088
1019
|
"""
|
|
1089
1020
|
The date of the Case Management Conference (CMC)
|
|
1090
1021
|
"""
|
|
1091
|
-
numberOfResidencesNetChange: float | None
|
|
1022
|
+
numberOfResidencesNetChange: float | None
|
|
1092
1023
|
"""
|
|
1093
1024
|
The net gain in residences of the proposed development
|
|
1094
1025
|
"""
|
|
@@ -1098,10 +1029,10 @@ class AppealS78Case1(BaseModel):
|
|
|
1098
1029
|
siteGridReferenceNorthing: constr(pattern=r"^\d{6,7}$") = Field(
|
|
1099
1030
|
..., examples=["400534"]
|
|
1100
1031
|
)
|
|
1101
|
-
siteViewableFromRoad: bool | None
|
|
1102
|
-
siteWithinSSSI: bool | None
|
|
1103
|
-
typeOfPlanningApplication: TypeOfPlanningApplication
|
|
1104
|
-
developmentType: DevelopmentType
|
|
1032
|
+
siteViewableFromRoad: bool | None
|
|
1033
|
+
siteWithinSSSI: bool | None
|
|
1034
|
+
typeOfPlanningApplication: TypeOfPlanningApplication | None
|
|
1035
|
+
developmentType: DevelopmentType | None
|
|
1105
1036
|
statementOfCommonGroundDueDate: AwareDatetime | None = Field(
|
|
1106
1037
|
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
1107
1038
|
)
|
|
@@ -1277,6 +1208,85 @@ class AppealS78Case1(BaseModel):
|
|
|
1277
1208
|
"""
|
|
1278
1209
|
|
|
1279
1210
|
|
|
1211
|
+
class AdvertDetail1(BaseModel):
|
|
1212
|
+
model_config = ConfigDict(
|
|
1213
|
+
extra="allow",
|
|
1214
|
+
)
|
|
1215
|
+
advertType: AdvertType | None
|
|
1216
|
+
isAdvertInPosition: bool | None
|
|
1217
|
+
"""
|
|
1218
|
+
Is the advertisement in position?
|
|
1219
|
+
"""
|
|
1220
|
+
isSiteOnHighwayLand: bool | None
|
|
1221
|
+
"""
|
|
1222
|
+
Is the site on highway land?
|
|
1223
|
+
"""
|
|
1224
|
+
|
|
1225
|
+
|
|
1226
|
+
class AppealGroundLetter2(Enum):
|
|
1227
|
+
a = "a"
|
|
1228
|
+
b = "b"
|
|
1229
|
+
c = "c"
|
|
1230
|
+
d = "d"
|
|
1231
|
+
e = "e"
|
|
1232
|
+
f = "f"
|
|
1233
|
+
g = "g"
|
|
1234
|
+
NoneType_None = None
|
|
1235
|
+
|
|
1236
|
+
|
|
1237
|
+
class EnforcementAppealGroundsDetail1(BaseModel):
|
|
1238
|
+
model_config = ConfigDict(
|
|
1239
|
+
extra="allow",
|
|
1240
|
+
)
|
|
1241
|
+
appealGroundLetter: AppealGroundLetter2 | None = None
|
|
1242
|
+
groundForAppealStartDate: AwareDatetime | None = Field(
|
|
1243
|
+
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
1244
|
+
)
|
|
1245
|
+
groundFacts: str | None = None
|
|
1246
|
+
"""
|
|
1247
|
+
Facts supporting the appeal ground
|
|
1248
|
+
"""
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
class AppealGroundLetter3(Enum):
|
|
1252
|
+
a = "a"
|
|
1253
|
+
b = "b"
|
|
1254
|
+
c = "c"
|
|
1255
|
+
d = "d"
|
|
1256
|
+
e = "e"
|
|
1257
|
+
f = "f"
|
|
1258
|
+
g = "g"
|
|
1259
|
+
h = "h"
|
|
1260
|
+
i = "i"
|
|
1261
|
+
j = "j"
|
|
1262
|
+
k = "k"
|
|
1263
|
+
NoneType_None = None
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
class ApplicationElbAppealGroundsDetail1(BaseModel):
|
|
1267
|
+
model_config = ConfigDict(
|
|
1268
|
+
extra="allow",
|
|
1269
|
+
)
|
|
1270
|
+
appealGroundLetter: AppealGroundLetter3 | None = None
|
|
1271
|
+
groundForAppealStartDate: AwareDatetime | None = Field(
|
|
1272
|
+
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
1273
|
+
)
|
|
1274
|
+
groundFacts: str | None = None
|
|
1275
|
+
"""
|
|
1276
|
+
Facts supporting the appeal ground
|
|
1277
|
+
"""
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
class SignificantChangesAffectingApplicationAppellantItem1(BaseModel):
|
|
1281
|
+
value: Value | None
|
|
1282
|
+
comment: str | None = None
|
|
1283
|
+
|
|
1284
|
+
|
|
1285
|
+
class SignificantChangesAffectingApplicationLpaItem1(BaseModel):
|
|
1286
|
+
value: Value | None
|
|
1287
|
+
comment: str | None = None
|
|
1288
|
+
|
|
1289
|
+
|
|
1280
1290
|
class AppealS78Case2(BaseModel):
|
|
1281
1291
|
"""
|
|
1282
1292
|
Group B - Schema defining the metadata for an appeal
|
|
@@ -1307,7 +1317,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1307
1317
|
"""
|
|
1308
1318
|
The internal code for an appeal type, e.g. D (Householder)
|
|
1309
1319
|
"""
|
|
1310
|
-
caseProcedure: CaseProcedure
|
|
1320
|
+
caseProcedure: CaseProcedure | None
|
|
1311
1321
|
"""
|
|
1312
1322
|
The type of procedure for the appeal
|
|
1313
1323
|
"""
|
|
@@ -1315,23 +1325,23 @@ class AppealS78Case2(BaseModel):
|
|
|
1315
1325
|
"""
|
|
1316
1326
|
A unique identifier for the Local Planning Authority
|
|
1317
1327
|
"""
|
|
1318
|
-
caseOfficerId: str | None
|
|
1328
|
+
caseOfficerId: str | None
|
|
1319
1329
|
"""
|
|
1320
1330
|
Unique identifier for the case officer assigned to the case
|
|
1321
1331
|
"""
|
|
1322
|
-
inspectorId: str | None
|
|
1332
|
+
inspectorId: str | None
|
|
1323
1333
|
"""
|
|
1324
1334
|
Unique identifier for the inspector assigned to the case
|
|
1325
1335
|
"""
|
|
1326
|
-
allocationLevel: AllocationLevel
|
|
1336
|
+
allocationLevel: AllocationLevel | None
|
|
1327
1337
|
"""
|
|
1328
1338
|
A level used for allocation purposes
|
|
1329
1339
|
"""
|
|
1330
|
-
allocationBand: AllocationBand
|
|
1340
|
+
allocationBand: AllocationBand | None
|
|
1331
1341
|
"""
|
|
1332
1342
|
A band used for allocation purposes
|
|
1333
1343
|
"""
|
|
1334
|
-
caseSpecialisms: list[str] = Field(
|
|
1344
|
+
caseSpecialisms: list[str] | None = Field(
|
|
1335
1345
|
..., examples=[["Access", "Listed building and enforcement"], ["Schedule 1"]]
|
|
1336
1346
|
)
|
|
1337
1347
|
"""
|
|
@@ -1361,15 +1371,15 @@ class AppealS78Case2(BaseModel):
|
|
|
1361
1371
|
"""
|
|
1362
1372
|
The date the appeal was validated in the back-office
|
|
1363
1373
|
"""
|
|
1364
|
-
caseValidationOutcome: CaseValidationOutcome
|
|
1374
|
+
caseValidationOutcome: CaseValidationOutcome | None
|
|
1365
1375
|
"""
|
|
1366
1376
|
The outcome of the validation action
|
|
1367
1377
|
"""
|
|
1368
|
-
caseValidationInvalidDetails: list[str]
|
|
1378
|
+
caseValidationInvalidDetails: list[str] | None
|
|
1369
1379
|
"""
|
|
1370
1380
|
A list of reasons why the appeal is invalid
|
|
1371
1381
|
"""
|
|
1372
|
-
caseValidationIncompleteDetails: list[str]
|
|
1382
|
+
caseValidationIncompleteDetails: list[str] | None
|
|
1373
1383
|
"""
|
|
1374
1384
|
A list of reasons why the appeal is incomplete
|
|
1375
1385
|
"""
|
|
@@ -1391,7 +1401,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1391
1401
|
"""
|
|
1392
1402
|
A date indicating when the case was published
|
|
1393
1403
|
"""
|
|
1394
|
-
linkedCaseStatus: LinkedCaseStatus
|
|
1404
|
+
linkedCaseStatus: LinkedCaseStatus | None
|
|
1395
1405
|
"""
|
|
1396
1406
|
Indicates if the case is linked, and the type of relationship
|
|
1397
1407
|
"""
|
|
@@ -1423,7 +1433,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1423
1433
|
"""
|
|
1424
1434
|
The date indicating when the questionnaire review was completed and the questionnaire published
|
|
1425
1435
|
"""
|
|
1426
|
-
lpaQuestionnaireValidationOutcome: LpaQuestionnaireValidationOutcome
|
|
1436
|
+
lpaQuestionnaireValidationOutcome: LpaQuestionnaireValidationOutcome | None
|
|
1427
1437
|
"""
|
|
1428
1438
|
The outcome of the validation action
|
|
1429
1439
|
"""
|
|
@@ -1433,7 +1443,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1433
1443
|
"""
|
|
1434
1444
|
The date the LPA response was validated
|
|
1435
1445
|
"""
|
|
1436
|
-
lpaQuestionnaireValidationDetails: list[str]
|
|
1446
|
+
lpaQuestionnaireValidationDetails: list[str] | None
|
|
1437
1447
|
"""
|
|
1438
1448
|
A list of reasons why the questionnaire is incomplete
|
|
1439
1449
|
"""
|
|
@@ -1477,7 +1487,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1477
1487
|
"""
|
|
1478
1488
|
The date the appeal decision was published
|
|
1479
1489
|
"""
|
|
1480
|
-
caseDecisionOutcome: CaseDecisionOutcome
|
|
1490
|
+
caseDecisionOutcome: CaseDecisionOutcome | None
|
|
1481
1491
|
"""
|
|
1482
1492
|
The final outcome for the decision
|
|
1483
1493
|
"""
|
|
@@ -1487,7 +1497,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1487
1497
|
"""
|
|
1488
1498
|
The date the appeal decision letter
|
|
1489
1499
|
"""
|
|
1490
|
-
enforcementNotice: bool | None
|
|
1500
|
+
enforcementNotice: bool | None
|
|
1491
1501
|
"""
|
|
1492
1502
|
Indicates if an enforcement notice is the reason for the appeal
|
|
1493
1503
|
"""
|
|
@@ -1501,7 +1511,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1501
1511
|
"""
|
|
1502
1512
|
The date of the original LPA application
|
|
1503
1513
|
"""
|
|
1504
|
-
applicationDecision: ApplicationDecision
|
|
1514
|
+
applicationDecision: ApplicationDecision | None
|
|
1505
1515
|
"""
|
|
1506
1516
|
The outcome of the original LPA decision
|
|
1507
1517
|
"""
|
|
@@ -1543,11 +1553,11 @@ class AppealS78Case2(BaseModel):
|
|
|
1543
1553
|
"""
|
|
1544
1554
|
Postal code of the site address
|
|
1545
1555
|
"""
|
|
1546
|
-
siteAccessDetails: list[str]
|
|
1556
|
+
siteAccessDetails: list[str] | None
|
|
1547
1557
|
"""
|
|
1548
1558
|
Provided information on site accessibility
|
|
1549
1559
|
"""
|
|
1550
|
-
siteSafetyDetails: list[str]
|
|
1560
|
+
siteSafetyDetails: list[str] | None
|
|
1551
1561
|
"""
|
|
1552
1562
|
Provided information on site health and safety
|
|
1553
1563
|
"""
|
|
@@ -1559,45 +1569,45 @@ class AppealS78Case2(BaseModel):
|
|
|
1559
1569
|
"""
|
|
1560
1570
|
The floor space, in square meters
|
|
1561
1571
|
"""
|
|
1562
|
-
isCorrectAppealType: bool | None
|
|
1572
|
+
isCorrectAppealType: bool | None
|
|
1563
1573
|
"""
|
|
1564
1574
|
Indicates if the LPA considers the appeal type appropriate
|
|
1565
1575
|
"""
|
|
1566
|
-
isGreenBelt: bool | None
|
|
1576
|
+
isGreenBelt: bool | None
|
|
1567
1577
|
"""
|
|
1568
1578
|
Indicates if the site is in a green belt
|
|
1569
1579
|
"""
|
|
1570
|
-
inConservationArea: bool | None
|
|
1580
|
+
inConservationArea: bool | None
|
|
1571
1581
|
"""
|
|
1572
1582
|
Indicates if the site is in a conservation area
|
|
1573
1583
|
"""
|
|
1574
|
-
ownsAllLand: bool | None
|
|
1584
|
+
ownsAllLand: bool | None
|
|
1575
1585
|
"""
|
|
1576
1586
|
Indicates if the appellant has complete ownership of the site
|
|
1577
1587
|
"""
|
|
1578
|
-
ownsSomeLand: bool | None
|
|
1588
|
+
ownsSomeLand: bool | None
|
|
1579
1589
|
"""
|
|
1580
1590
|
Indicates if the appellant has partial ownership of the site
|
|
1581
1591
|
"""
|
|
1582
|
-
knowsOtherOwners: KnowsOtherOwners
|
|
1592
|
+
knowsOtherOwners: KnowsOtherOwners | None
|
|
1583
1593
|
"""
|
|
1584
1594
|
Indicates if the appellant knows other owners of the site
|
|
1585
1595
|
"""
|
|
1586
|
-
knowsAllOwners: KnowsAllOwners
|
|
1596
|
+
knowsAllOwners: KnowsAllOwners | None
|
|
1587
1597
|
"""
|
|
1588
1598
|
Indicates if the appellant knows all owners of the site
|
|
1589
1599
|
"""
|
|
1590
|
-
advertisedAppeal: bool | None
|
|
1600
|
+
advertisedAppeal: bool | None
|
|
1591
1601
|
"""
|
|
1592
1602
|
Indicates if the appellant has advertised the appeal to the LPA decision
|
|
1593
1603
|
"""
|
|
1594
|
-
notificationMethod: list[NotificationMethodEnum] = Field(
|
|
1604
|
+
notificationMethod: list[NotificationMethodEnum] | None = Field(
|
|
1595
1605
|
..., examples=[["notice", "letter"], ["advert"]]
|
|
1596
1606
|
)
|
|
1597
1607
|
"""
|
|
1598
1608
|
The methods used to notify relevant parties
|
|
1599
1609
|
"""
|
|
1600
|
-
ownersInformed: bool | None
|
|
1610
|
+
ownersInformed: bool | None
|
|
1601
1611
|
"""
|
|
1602
1612
|
Indicates if the appellant has informed other owners of the site
|
|
1603
1613
|
"""
|
|
@@ -1607,7 +1617,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1607
1617
|
"""
|
|
1608
1618
|
The original description of the development, as provided by the appellant
|
|
1609
1619
|
"""
|
|
1610
|
-
changedDevelopmentDescription: bool | None
|
|
1620
|
+
changedDevelopmentDescription: bool | None
|
|
1611
1621
|
"""
|
|
1612
1622
|
Indicates that the LPA has changed the development description
|
|
1613
1623
|
"""
|
|
@@ -1625,23 +1635,23 @@ class AppealS78Case2(BaseModel):
|
|
|
1625
1635
|
"""
|
|
1626
1636
|
extra conditions details provided by the LPA
|
|
1627
1637
|
"""
|
|
1628
|
-
nearbyCaseReferences: list[str]
|
|
1638
|
+
nearbyCaseReferences: list[str] | None
|
|
1629
1639
|
"""
|
|
1630
1640
|
A list of related case references known to the appellant and the LPA
|
|
1631
1641
|
"""
|
|
1632
|
-
neighbouringSiteAddresses: list[NeighbouringSiteAddress]
|
|
1642
|
+
neighbouringSiteAddresses: list[NeighbouringSiteAddress] | None
|
|
1633
1643
|
"""
|
|
1634
1644
|
A list of neighbouring site addresses
|
|
1635
1645
|
"""
|
|
1636
|
-
reasonForNeighbourVisits: str | None
|
|
1646
|
+
reasonForNeighbourVisits: str | None
|
|
1637
1647
|
"""
|
|
1638
1648
|
A general reason given for the need to visit any neighbours
|
|
1639
1649
|
"""
|
|
1640
|
-
affectedListedBuildingNumbers: list[str]
|
|
1650
|
+
affectedListedBuildingNumbers: list[str] | None
|
|
1641
1651
|
"""
|
|
1642
1652
|
A list of affected listed building IDs from Historic England
|
|
1643
1653
|
"""
|
|
1644
|
-
changedListedBuildingNumbers: list[str]
|
|
1654
|
+
changedListedBuildingNumbers: list[str] | None
|
|
1645
1655
|
"""
|
|
1646
1656
|
A list of changed listed building IDs from Historic England
|
|
1647
1657
|
"""
|
|
@@ -1653,115 +1663,115 @@ class AppealS78Case2(BaseModel):
|
|
|
1653
1663
|
"""
|
|
1654
1664
|
Are Historic England to be consulted?
|
|
1655
1665
|
"""
|
|
1656
|
-
appellantCostsAppliedFor: bool | None
|
|
1666
|
+
appellantCostsAppliedFor: bool | None
|
|
1657
1667
|
"""
|
|
1658
1668
|
Indicates if the appellant has applied for costs
|
|
1659
1669
|
"""
|
|
1660
|
-
lpaCostsAppliedFor: bool | None
|
|
1670
|
+
lpaCostsAppliedFor: bool | None
|
|
1661
1671
|
"""
|
|
1662
1672
|
Indicates if the appellant has applied for costs
|
|
1663
1673
|
"""
|
|
1664
|
-
agriculturalHolding: bool | None
|
|
1674
|
+
agriculturalHolding: bool | None
|
|
1665
1675
|
"""
|
|
1666
1676
|
Indicates if the site is an agricultural holding
|
|
1667
1677
|
"""
|
|
1668
|
-
tenantAgriculturalHolding: bool | None
|
|
1678
|
+
tenantAgriculturalHolding: bool | None
|
|
1669
1679
|
"""
|
|
1670
1680
|
Indicates if the site is a tenant agricultural holding
|
|
1671
1681
|
"""
|
|
1672
|
-
otherTenantsAgriculturalHolding: bool | None
|
|
1682
|
+
otherTenantsAgriculturalHolding: bool | None
|
|
1673
1683
|
"""
|
|
1674
1684
|
Indicates if the site is an agricultural holding with other tenants
|
|
1675
1685
|
"""
|
|
1676
|
-
informedTenantsAgriculturalHolding: bool | None
|
|
1686
|
+
informedTenantsAgriculturalHolding: bool | None
|
|
1677
1687
|
"""
|
|
1678
1688
|
If the site is an agricultural holding, indicates tenants are informed
|
|
1679
1689
|
"""
|
|
1680
|
-
appellantProcedurePreference: AppellantProcedurePreference
|
|
1690
|
+
appellantProcedurePreference: AppellantProcedurePreference | None
|
|
1681
1691
|
"""
|
|
1682
1692
|
The procedure preference indicated by the appellant
|
|
1683
1693
|
"""
|
|
1684
|
-
appellantProcedurePreferenceDetails: str | None
|
|
1694
|
+
appellantProcedurePreferenceDetails: str | None
|
|
1685
1695
|
"""
|
|
1686
1696
|
The procedure details preference indicated by the appellant
|
|
1687
1697
|
"""
|
|
1688
|
-
appellantProcedurePreferenceDuration: float | None
|
|
1698
|
+
appellantProcedurePreferenceDuration: float | None
|
|
1689
1699
|
"""
|
|
1690
1700
|
The duration of the procedure indicated by the appellant
|
|
1691
1701
|
"""
|
|
1692
|
-
appellantProcedurePreferenceWitnessCount: float | None
|
|
1702
|
+
appellantProcedurePreferenceWitnessCount: float | None
|
|
1693
1703
|
"""
|
|
1694
1704
|
The number of witnesses appellant has suggested for inquiries preference
|
|
1695
1705
|
"""
|
|
1696
|
-
statusPlanningObligation: str | None
|
|
1706
|
+
statusPlanningObligation: str | None
|
|
1697
1707
|
"""
|
|
1698
1708
|
The planning obligation information, if available
|
|
1699
1709
|
"""
|
|
1700
|
-
affectsScheduledMonument: bool | None
|
|
1710
|
+
affectsScheduledMonument: bool | None
|
|
1701
1711
|
"""
|
|
1702
1712
|
Indicates that a scheduled monument is affected
|
|
1703
1713
|
"""
|
|
1704
|
-
hasProtectedSpecies: bool | None
|
|
1714
|
+
hasProtectedSpecies: bool | None
|
|
1705
1715
|
"""
|
|
1706
1716
|
Indicates the existence of protected species
|
|
1707
1717
|
"""
|
|
1708
|
-
isAonbNationalLandscape: bool | None
|
|
1718
|
+
isAonbNationalLandscape: bool | None
|
|
1709
1719
|
"""
|
|
1710
1720
|
Indicates an area of outstanding beauty (National Landscape)
|
|
1711
1721
|
"""
|
|
1712
|
-
designatedSitesNames: list[str]
|
|
1722
|
+
designatedSitesNames: list[str] | None
|
|
1713
1723
|
"""
|
|
1714
1724
|
The designated site names
|
|
1715
1725
|
"""
|
|
1716
|
-
isGypsyOrTravellerSite: bool | None
|
|
1726
|
+
isGypsyOrTravellerSite: bool | None
|
|
1717
1727
|
"""
|
|
1718
1728
|
Indicates a traveller site
|
|
1719
1729
|
"""
|
|
1720
|
-
isPublicRightOfWay: bool | None
|
|
1730
|
+
isPublicRightOfWay: bool | None
|
|
1721
1731
|
"""
|
|
1722
1732
|
Indicates a PROW (public right of way)
|
|
1723
1733
|
"""
|
|
1724
|
-
eiaEnvironmentalImpactSchedule: EiaEnvironmentalImpactSchedule
|
|
1734
|
+
eiaEnvironmentalImpactSchedule: EiaEnvironmentalImpactSchedule | None
|
|
1725
1735
|
"""
|
|
1726
1736
|
The impact schedule from EIA
|
|
1727
1737
|
"""
|
|
1728
|
-
eiaDevelopmentDescription: EiaDevelopmentDescription
|
|
1738
|
+
eiaDevelopmentDescription: EiaDevelopmentDescription | None
|
|
1729
1739
|
"""
|
|
1730
1740
|
The development description from EIA
|
|
1731
1741
|
"""
|
|
1732
|
-
eiaSensitiveAreaDetails: str | None
|
|
1742
|
+
eiaSensitiveAreaDetails: str | None
|
|
1733
1743
|
"""
|
|
1734
1744
|
The sensitive area details from EIA
|
|
1735
1745
|
"""
|
|
1736
|
-
eiaColumnTwoThreshold: bool | None
|
|
1746
|
+
eiaColumnTwoThreshold: bool | None
|
|
1737
1747
|
"""
|
|
1738
1748
|
EIA specific threshold
|
|
1739
1749
|
"""
|
|
1740
|
-
eiaScreeningOpinion: bool | None
|
|
1750
|
+
eiaScreeningOpinion: bool | None
|
|
1741
1751
|
"""
|
|
1742
1752
|
EIA screening opinion
|
|
1743
1753
|
"""
|
|
1744
|
-
eiaRequiresEnvironmentalStatement: bool | None
|
|
1754
|
+
eiaRequiresEnvironmentalStatement: bool | None
|
|
1745
1755
|
"""
|
|
1746
1756
|
EIA environmental statement required
|
|
1747
1757
|
"""
|
|
1748
|
-
eiaCompletedEnvironmentalStatement: bool | None
|
|
1758
|
+
eiaCompletedEnvironmentalStatement: bool | None
|
|
1749
1759
|
"""
|
|
1750
1760
|
EIA completed environmental statement required
|
|
1751
1761
|
"""
|
|
1752
|
-
hasStatutoryConsultees: bool | None
|
|
1762
|
+
hasStatutoryConsultees: bool | None
|
|
1753
1763
|
"""
|
|
1754
1764
|
Indicates statutory consultees
|
|
1755
1765
|
"""
|
|
1756
|
-
consultedBodiesDetails: str | None
|
|
1766
|
+
consultedBodiesDetails: str | None
|
|
1757
1767
|
"""
|
|
1758
1768
|
The details of the bodies consulted
|
|
1759
1769
|
"""
|
|
1760
|
-
hasInfrastructureLevy: bool | None
|
|
1770
|
+
hasInfrastructureLevy: bool | None
|
|
1761
1771
|
"""
|
|
1762
1772
|
Indicates the existence of an infrastructure levy
|
|
1763
1773
|
"""
|
|
1764
|
-
isInfrastructureLevyFormallyAdopted: bool | None
|
|
1774
|
+
isInfrastructureLevyFormallyAdopted: bool | None
|
|
1765
1775
|
"""
|
|
1766
1776
|
Indicates if the infrastructure levy is formally adopted
|
|
1767
1777
|
"""
|
|
@@ -1777,22 +1787,22 @@ class AppealS78Case2(BaseModel):
|
|
|
1777
1787
|
"""
|
|
1778
1788
|
The expected date of the infrastructure levy
|
|
1779
1789
|
"""
|
|
1780
|
-
lpaProcedurePreference: LpaProcedurePreference
|
|
1790
|
+
lpaProcedurePreference: LpaProcedurePreference | None
|
|
1781
1791
|
"""
|
|
1782
1792
|
The procedure preference indicated by the LPA
|
|
1783
1793
|
"""
|
|
1784
|
-
lpaProcedurePreferenceDetails: str | None
|
|
1794
|
+
lpaProcedurePreferenceDetails: str | None
|
|
1785
1795
|
"""
|
|
1786
1796
|
The procedure details preference indicated by the LPA
|
|
1787
1797
|
"""
|
|
1788
|
-
lpaProcedurePreferenceDuration: float | None
|
|
1798
|
+
lpaProcedurePreferenceDuration: float | None
|
|
1789
1799
|
"""
|
|
1790
1800
|
The duration of enquiry indicated by the LPA
|
|
1791
1801
|
"""
|
|
1792
|
-
caseworkReason: str | None
|
|
1793
|
-
importantInformation: str | None
|
|
1794
|
-
jurisdiction: str | None
|
|
1795
|
-
redeterminedIndicator: str | None
|
|
1802
|
+
caseworkReason: str | None
|
|
1803
|
+
importantInformation: str | None
|
|
1804
|
+
jurisdiction: str | None
|
|
1805
|
+
redeterminedIndicator: str | None
|
|
1796
1806
|
dateCostsReportDespatched: AwareDatetime | None = Field(
|
|
1797
1807
|
..., examples=["2023-07-27T20:30:00.000Z"]
|
|
1798
1808
|
)
|
|
@@ -1851,7 +1861,7 @@ class AppealS78Case2(BaseModel):
|
|
|
1851
1861
|
"""
|
|
1852
1862
|
The date of the Case Management Conference (CMC)
|
|
1853
1863
|
"""
|
|
1854
|
-
numberOfResidencesNetChange: float | None
|
|
1864
|
+
numberOfResidencesNetChange: float | None
|
|
1855
1865
|
"""
|
|
1856
1866
|
The net gain in residences of the proposed development
|
|
1857
1867
|
"""
|
|
@@ -1861,10 +1871,10 @@ class AppealS78Case2(BaseModel):
|
|
|
1861
1871
|
siteGridReferenceNorthing: constr(pattern=r"^\d{6,7}$") | None = Field(
|
|
1862
1872
|
None, examples=["400534"]
|
|
1863
1873
|
)
|
|
1864
|
-
siteViewableFromRoad: bool | None
|
|
1865
|
-
siteWithinSSSI: bool | None
|
|
1866
|
-
typeOfPlanningApplication: TypeOfPlanningApplication
|
|
1867
|
-
developmentType: DevelopmentType
|
|
1874
|
+
siteViewableFromRoad: bool | None
|
|
1875
|
+
siteWithinSSSI: bool | None
|
|
1876
|
+
typeOfPlanningApplication: TypeOfPlanningApplication | None
|
|
1877
|
+
developmentType: DevelopmentType | None
|
|
1868
1878
|
statementOfCommonGroundDueDate: AwareDatetime | None = Field(
|
|
1869
1879
|
None, examples=["2023-07-27T20:30:00.000Z"]
|
|
1870
1880
|
)
|
|
@@ -2027,13 +2037,13 @@ class AppealS78Case2(BaseModel):
|
|
|
2027
2037
|
Indicates if the screening opinion specifies that an EIA is required (Expedited Appeals)
|
|
2028
2038
|
"""
|
|
2029
2039
|
significantChangesAffectingApplicationAppellant: (
|
|
2030
|
-
list[
|
|
2040
|
+
list[SignificantChangesAffectingApplicationAppellantItem1] | None
|
|
2031
2041
|
) = None
|
|
2032
2042
|
"""
|
|
2033
2043
|
Significant changes affecting the application as reported by the appellant (Expedited Appeals)
|
|
2034
2044
|
"""
|
|
2035
2045
|
significantChangesAffectingApplicationLpa: (
|
|
2036
|
-
list[
|
|
2046
|
+
list[SignificantChangesAffectingApplicationLpaItem1] | None
|
|
2037
2047
|
) = None
|
|
2038
2048
|
"""
|
|
2039
2049
|
Significant changes affecting the application as reported by the LPA (Expedited Appeals)
|
|
@@ -2045,3 +2055,11 @@ class AppealS78Case(RootModel[AppealS78Case1 | AppealS78Case2]):
|
|
|
2045
2055
|
"""
|
|
2046
2056
|
Group B - Schema defining the metadata for an appeal
|
|
2047
2057
|
"""
|
|
2058
|
+
|
|
2059
|
+
|
|
2060
|
+
class SignificantChangesAffectingApplication(Enum):
|
|
2061
|
+
adopted_a_new_local_plan = "adopted-a-new-local-plan"
|
|
2062
|
+
national_policy_change = "national-policy-change"
|
|
2063
|
+
court_judgement = "court-judgement"
|
|
2064
|
+
other = "other"
|
|
2065
|
+
NoneType_None = None
|