UNPKG

@vepler/area-reference-types

Version:

TypeScript type definitions for Vepler Area Reference API

111 lines (110 loc) 2.74 kB
/** * 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) */ [key: string]: 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[]; }