-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c61cec2
commit 9b271c5
Showing
9 changed files
with
386 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
/** | ||
* @description Address information available for any site, whether existing or proposed | ||
*/ | ||
export interface SiteAddress { | ||
/** | ||
* @description Single line address description | ||
*/ | ||
title: string; | ||
/** | ||
* @description Easting coordinate in British National Grid (OSGB36) | ||
*/ | ||
x: number; | ||
/** | ||
* @description Northing coordinate in British National Grid (OSGB36) | ||
*/ | ||
y: number; | ||
/** | ||
* @description Latitude coordinate in EPSG:4326 (WGS84) | ||
*/ | ||
latitude: number; | ||
/** | ||
* @description Longitude coordinate in EPSG:4326 (WGS84) | ||
*/ | ||
longitude: number; | ||
} | ||
|
||
/** | ||
* @title #ProposedAddress | ||
* @description Address information for sites without a known Unique Property Reference Number (UPRN) | ||
*/ | ||
export interface ProposedAddress extends SiteAddress { | ||
source: 'Proposed by applicant'; | ||
} | ||
|
||
/** | ||
* @title #OSAddress | ||
* @description Address information for sites with a known address sourced from Ordnance Survey AddressBase Premium LPI source | ||
*/ | ||
export interface OSAddress extends SiteAddress { | ||
/** | ||
* @title Unique Property Reference Number | ||
* @maxLength 12 | ||
*/ | ||
uprn: string; | ||
/** | ||
* @title Unique Street Reference Number | ||
* @maxLength 8 | ||
*/ | ||
usrn: string; | ||
/** | ||
* @title Primary Addressable Object (PAO) start range and/or building description | ||
* @description Combined `PAO_START_NUMBER`, `PAO_START_SUFFIX`, `PAO_TEXT` OS LPI properties | ||
*/ | ||
pao: string; | ||
/** | ||
* @title Primary Addressable Object (PAO) end range | ||
* @description Combined `PAO_END_NUMBER`, `PAO_END_SUFFIX` OS LPI properties | ||
*/ | ||
paoEnd?: string; | ||
/** | ||
* @title Secondary Addressable Object (SAO) start range and/or building description | ||
* @description Combined `SAO_START_NUMBER`, `SAO_START_SUFFIX`, `SAO_TEXT` OS LPI properties | ||
*/ | ||
sao?: string; | ||
/** | ||
* @title Secondary Addressable Object (SAO) end range | ||
* @description Combined `SAO_END_NUMBER`, `SAO_END_SUFFIX` OS LPI properties | ||
*/ | ||
saoEnd?: string; | ||
street: string; | ||
town: string; | ||
postcode: string; | ||
organisation?: string; | ||
singleLine: string; | ||
source: 'Ordnance Survey'; | ||
} | ||
|
||
/** | ||
* @description Address information for a person associated with this application not at the property address | ||
*/ | ||
export interface Address { | ||
line1: string; | ||
line2?: string; | ||
town: string; | ||
county?: string; | ||
postcode: string; | ||
country?: string; | ||
} | ||
|
||
/** | ||
* @title #UserAddress | ||
* @description Address information for the applicant | ||
*/ | ||
export type UserAddress = {sameAsSiteAddress: true} | UserAddressNotSameSite; | ||
|
||
/** | ||
* @title #UserAddressNotSameSite | ||
* @description Address information for an applicant with contact information that differs from the property address | ||
*/ | ||
export interface UserAddressNotSameSite extends Address { | ||
sameAsSiteAddress: false; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import {GeoJSON} from 'geojson'; | ||
import {Area} from './utils'; | ||
|
||
export type GeoBoundary = { | ||
site: GeoJSON; | ||
area: Area; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import {URL} from './utils'; | ||
|
||
type PlanningDataSource = { | ||
text: 'Planning Data'; | ||
url: URL; | ||
}; | ||
|
||
type OSRoadsSource = { | ||
text: 'Ordnance Survey MasterMap Highways'; | ||
}; | ||
|
||
export type Entity = { | ||
name: string; | ||
description?: string; | ||
source: PlanningDataSource | OSRoadsSource; | ||
}; | ||
|
||
type BasePlanningConstraint = { | ||
value: string; | ||
description: string; | ||
}; | ||
|
||
/** | ||
* @description A planning constraint that does not intersect with the proposed site, per the DE-9IM spatial relationship definition of intersects | ||
*/ | ||
type NonIntersectingPlanningConstraint = { | ||
intersects: false; | ||
} & BasePlanningConstraint; | ||
|
||
/** | ||
* @description A planning constraint that does intersect with the proposed site, per the DE-9IM spatial relationship definition of intersects | ||
*/ | ||
type IntersectingPlanningConstraint = { | ||
intersects: true; | ||
entities: Entity[]; | ||
} & BasePlanningConstraint; | ||
|
||
/** | ||
* @title #PlanningConstraint | ||
* @description Planning constraints that intersect with the proposed site | ||
*/ | ||
export type PlanningConstraint = | ||
| NonIntersectingPlanningConstraint | ||
| IntersectingPlanningConstraint; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import {Email} from './utils'; | ||
|
||
/** | ||
* @title #ContactDetails | ||
* @description Contact details for a person associated with this application | ||
*/ | ||
export type ContactDetails = { | ||
name: { | ||
title?: string; | ||
first: string; | ||
last: string; | ||
}; | ||
email: Email; | ||
phone: { | ||
primary: string; | ||
}; | ||
company?: { | ||
name: string; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
/** | ||
* @title #Declaration | ||
* @description Declarations about the accuracy of this application and any personal connections to the receiving authority | ||
*/ | ||
export interface Declaration { | ||
accurate: boolean; | ||
connection: { | ||
value: | ||
| 'employee' | ||
| 'relation.employee' | ||
| 'electedMember' | ||
| 'relation.electedMember' | ||
| 'none'; | ||
description?: string; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
/** | ||
* @title #FeeNotApplicable | ||
* @description An indicator that an application fee does not apply to this application type or journey | ||
*/ | ||
export interface FeeNotApplicable { | ||
notApplicable: true; | ||
} | ||
|
||
/** | ||
* @title #Fee | ||
* @description The costs associated with this application | ||
*/ | ||
export interface Fee { | ||
/** | ||
* @description Total calculated fee in GBP | ||
*/ | ||
calculated: number; | ||
/** | ||
* @description Total payable fee after any exemptions or reductions in GBP | ||
*/ | ||
payable: number; | ||
/** | ||
* @description Breakdown of calculated fee in GBP by category of development, based on the scales defined in The Town and Country Planning Regulations https://www.legislation.gov.uk/uksi/2012/2920/schedule/1/part/2 | ||
*/ | ||
category?: { | ||
/** | ||
* @description Category 1 - New homes | ||
*/ | ||
one?: number; | ||
/** | ||
* @description Category 2 - Other new buildings | ||
*/ | ||
two?: number; | ||
/** | ||
* @description Category 3 - Agricultural buildings | ||
*/ | ||
three?: number; | ||
/** | ||
* @description Category 4 - Glasshouses on agricultural land | ||
*/ | ||
four?: number; | ||
/** | ||
* @description Category 5 - Plant equipment or machinery | ||
*/ | ||
five?: number; | ||
/** | ||
* @description Category 6 and 7 - Home or curtilage of home | ||
*/ | ||
sixAndSeven?: number; | ||
/** | ||
* @description Category 8 - Car parks or access roads | ||
*/ | ||
eight?: number; | ||
/** | ||
* @description Category 9 - Exploratory drilling | ||
*/ | ||
nine?: number; | ||
/** | ||
* @description Category 10 - Winning and working of oil or natural gas | ||
*/ | ||
ten?: number; | ||
eleven?: { | ||
/** | ||
* @description Category 11(1) - Mining operations | ||
*/ | ||
one?: number; | ||
/** | ||
* @description Category 11(2) - Other operations | ||
*/ | ||
two?: number; | ||
}; | ||
twelve?: { | ||
/** | ||
* @description Category 12(1) - Change of use from single home to homes | ||
*/ | ||
one?: number; | ||
/** | ||
* @description Category 12(2) - Change of use to home | ||
*/ | ||
two?: number; | ||
}; | ||
/** | ||
* @description Category 13 - Waste disposal | ||
*/ | ||
thirteen?: number; | ||
/** | ||
* @description Category 14 - Other change of use | ||
*/ | ||
fourteen?: number; | ||
}; | ||
exemption: { | ||
disability: boolean; // @todo add application.fee.exemption.disability.reason | ||
resubmission: boolean; // @todo add application.resubmission.original.applicationReference & application.resubmission.originalReference.appeal | ||
}; | ||
reduction: { | ||
alternative: boolean; | ||
parishCouncil: boolean; | ||
sports: boolean; | ||
}; | ||
reference?: { | ||
/** | ||
* @description GOV.UK Pay payment reference number | ||
*/ | ||
govPay: string; // @todo require when payable > 0 | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
export type Materials = { | ||
boundary?: string; | ||
door?: string; | ||
lighting?: string; | ||
roof?: string; | ||
surface?: string; | ||
wall?: string; | ||
window?: string; | ||
other?: string; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
import {Address} from './Addresses'; | ||
import {Date} from './utils'; | ||
|
||
export type OwnersInterest = 'owner' | 'lessee' | 'occupier' | 'other'; | ||
|
||
/** | ||
* @title #Ownership | ||
* @description Information about the ownership certificate and property owners, if different than the applicant | ||
*/ | ||
export interface Ownership { | ||
interest?: OwnersInterest | 'owner.sole' | 'owner.co'; | ||
certificate?: 'a' | 'b' | 'c' | 'd'; | ||
/** | ||
* @description Does the land have any agricultural tenants? | ||
*/ | ||
agriculturalTenants?: boolean; | ||
/** | ||
* @description Has requisite notice been given to all the known owners and agricultural tenants? | ||
*/ | ||
noticeGiven?: boolean; | ||
/** | ||
* @description Has a notice of the application been published in a newspaper circulating in the area where the land is situated? | ||
*/ | ||
noticePublished?: { | ||
status: boolean; | ||
date?: Date; | ||
newspaperName?: string; | ||
}; | ||
/** | ||
* @description Do you know the names and addresses of all owners and agricultural tenants? | ||
*/ | ||
ownersKnown?: 'all' | 'some' | 'none'; | ||
owners?: Owners[]; | ||
/** | ||
* @description Declaration of the accuracy of the ownership certificate, including reasonable steps taken to find all owners and publish notice | ||
*/ | ||
declaration?: { | ||
accurate: true; | ||
}; | ||
} | ||
|
||
/** | ||
* @title #Owners | ||
* @description Names and addresses of all known owners and agricultural tenants who are not the applicant, including confirmation or date of notice, or reason requisite notice has not been given if applicable | ||
*/ | ||
export type Owners = OwnersNoticeGiven | OwnersNoNoticeGiven | OwnersNoticeDate; | ||
|
||
export interface BaseOwners { | ||
name: string; | ||
address: Address | string; | ||
interest?: OwnersInterest; | ||
} | ||
|
||
// LDC requires `noticeGiven`, and `noNoticeReason` if false | ||
export interface OwnersNoticeGiven extends BaseOwners { | ||
noticeGiven: true; | ||
} | ||
|
||
export interface OwnersNoNoticeGiven extends BaseOwners { | ||
noticeGiven: false; | ||
noNoticeReason: string; | ||
} | ||
|
||
// PP & LBC require `noticeDate` | ||
export interface OwnersNoticeDate extends BaseOwners { | ||
noticeDate: Date; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
/** | ||
* @title #Region | ||
* @description The region in England that contains this address sourced from planning.data.gov.uk/dataset/region, where London is a proxy for the Greater London Authority (GLA) area | ||
*/ | ||
export type Region = | ||
| 'North East' | ||
| 'North West' | ||
| 'Yorkshire and The Humber' | ||
| 'East Midlands' | ||
| 'West Midlands' | ||
| 'East of England' | ||
| 'London' | ||
| 'South East' | ||
| 'South West'; |