@vepler/area-reference-types
Version:
TypeScript type definitions for Vepler Area Reference API
117 lines (116 loc) • 2.42 kB
TypeScript
/**
* Areas Children API Types
*
* /api/areas/children/{parentCode}/{childType?} endpoint
*/
import { GeographicEntityResponse } from './common';
import { GeographicEntityType } from '../../common';
/**
* Children endpoint path parameters
*/
export interface ChildrenPathParams {
/**
* Parent entity code
*/
parentCode: string;
/**
* Type of child entities to retrieve (optional)
*/
childType?: GeographicEntityType;
}
/**
* Children endpoint query parameters
*/
export interface ChildrenQueryParams {
/**
* Maximum number of results
*/
limit?: number;
/**
* Result offset for pagination
*/
offset?: number;
/**
* Include intersection relationships
*/
includeIntersections?: boolean;
/**
* Include coverage information
*/
includeCoverage?: boolean;
/**
* Include hierarchy information
*/
includeHierarchy?: boolean;
/**
* Include full geometry in response
*/
includeGeometry?: boolean;
/**
* Entity status filter
*/
status?: string;
}
/**
* Child relationship details
*/
export interface ChildRelationship {
/**
* Type of relationship (contains, intersects, etc.)
*/
relationshipType?: string;
/**
* Coverage percentage
*/
coveragePercent?: number;
}
/**
* Children endpoint response
*/
export interface ChildrenResponse {
/**
* Success flag
*/
success: boolean;
/**
* Children query result
*/
result: {
/**
* Parent entity information
*/
parent: {
code: string;
name: string;
type: string;
};
/**
* Type of child entities
*/
childType?: string;
/**
* Array of child entities with relationship details
*/
children: Array<GeographicEntityResponse & ChildRelationship>;
/**
* Total count of children
*/
total: number;
/**
* Current limit
*/
limit?: number;
/**
* Current offset
*/
offset?: number;
/**
* Whether intersections are included
*/
includeIntersections?: boolean;
/**
* Whether coverage information is included
*/
includeCoverage?: boolean;
};
}