@vepler/area-reference-types
Version:
TypeScript type definitions for Vepler Area Reference API
104 lines (103 loc) • 2.51 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;
/**
* Source geography type (ward, lsoa21, country, etc.)
*/
sourceType: GeographicEntityType;
/**
* Target geography code (for geography-to-geography coverage)
* Mutually exclusive with coverageType
*/
targetCode?: string;
/**
* Target geography type (for geography-to-geography coverage)
* Required when targetCode is provided
*/
targetType?: GeographicEntityType;
/**
* Coverage layer type (flood_risk, noise_pollution, etc.)
* Mutually exclusive with targetCode/targetType
*/
coverageType?: string;
/**
* Filter by specific coverage value (high, medium, low)
* Only applicable with coverageType
*/
coverageValue?: string;
/**
* Result aggregation method
* - total: Single coverage percentage
* - breakdown: Coverage by value/category
*/
aggregation?: 'total' | 'breakdown';
}
/**
* Individual coverage result
*/
export interface CoverageResult {
/**
* Identifier for the coverage area (targetCode OR coverageValue)
*/
identifier: string;
/**
* Area covered in square metres
*/
area: number;
/**
* Coverage percentage (0-100)
*/
percentage: number;
/**
* Additional metadata about the coverage result
*/
metadata?: Record<string, any>;
}
/**
* Coverage endpoint response
*/
export interface CoverageResponse {
/**
* Source geography code that was analysed
*/
sourceCode: string;
/**
* Source geography type
*/
sourceType: GeographicEntityType;
/**
* Total area of source geography in square metres
*/
totalArea: number;
/**
* Target geography code (for geography-to-geography queries)
*/
targetCode?: string;
/**
* Target geography type (for geography-to-geography queries)
*/
targetType?: GeographicEntityType;
/**
* Coverage layer type (for geography-to-type queries)
*/
coverageType?: string;
/**
* Coverage value filter applied (for geography-to-type queries)
*/
coverageValue?: string;
/**
* Array of coverage results
*/
coverage: CoverageResult[];
}