@vepler/area-reference-types
Version:
TypeScript type definitions for Vepler Area Reference API
111 lines (110 loc) • 2.74 kB
TypeScript
/**
* Coverage API Types
*
* /api/areas/coverage endpoint
*/
import { GeographicEntityType } from '../../common';
/**
* Coverage endpoint query parameters
*/
export interface CoverageQueryParams {
/**
* Source geography code to analyse coverage for
*/
sourceCode: string;
/**
* Target geography code (for geography-to-geography coverage)
* Mutually exclusive with coverageType
*/
targetCode?: string;
/**
* Coverage layer type (flood_risk, noise_road_lden, etc.)
* Mutually exclusive with targetCode
*/
coverageType?: string;
/**
* Entity type filter for intersection analysis
* Only applicable with coverageType
* Examples: 'building', 'parcels_gb', 'postcode'
*/
intersectsWith?: GeographicEntityType;
}
/**
* Individual coverage result
*/
export interface CoverageResult {
/**
* Identifier for the coverage area (e.g., 'flood_risk_high', 'E06000001')
*/
identifier: string;
/**
* Area covered in square metres
*/
area: number;
/**
* Coverage percentage of relevant area (source area or intersecting entities)
*/
percentage: number;
/**
* Additional metadata about the coverage result
*/
metadata?: {
/**
* Category name for categorized data (high, medium, low)
*/
category?: string;
/**
* Count of entities affected (for intersectsWith queries)
*/
entityCount?: number;
/**
* Total count of entities in source area (for intersectsWith queries)
*/
totalEntities?: number;
/**
* Additional context (e.g., dB range for noise)
*/
[]: any;
};
}
/**
* Coverage endpoint response
*/
export interface CoverageResponse {
/**
* Source geography code that was analysed
*/
sourceCode: string;
/**
* Source geography name (looked up from database)
*/
sourceName: string;
/**
* Source geography type (looked up from database)
*/
sourceType: GeographicEntityType;
/**
* Total area of source geography in square metres
*/
sourceArea: number;
/**
* Target geography code (for geography-to-geography queries)
*/
targetCode?: string;
/**
* Target geography name (for geography-to-geography queries)
*/
targetName?: string;
/**
* Coverage layer type (for environmental coverage queries)
*/
coverageType?: string;
/**
* Entity type used for intersection analysis
*/
intersectsWith?: GeographicEntityType;
/**
* Array of coverage results
*/
coverage: CoverageResult[];
}