@vepler/safety-types
Version:
TypeScript type definitions for Vepler Safety Service API
105 lines (104 loc) • 2.75 kB
TypeScript
/**
* Types for /api/neighborhood-watch/get-scheme-details endpoint
*/
/**
* OurWatch provider metadata
*/
export interface OurWatchMetadata {
/** Scheme status type (e.g., 'active', 'inactive') */
scheme_status_type?: string;
}
/**
* Query parameters for scheme details
*/
export interface GetSchemeDetailsQueryParams {
/** Scheme ID */
schemeId: string;
/** Include boundary data */
includeBoundary?: boolean;
}
/**
* Neighborhood Watch Scheme response
*/
export interface NeighborhoodWatchSchemeResponse {
/** Unique identifier */
id: number;
/** Provider name (e.g., 'ourwatch') */
provider: string;
/** Provider-specific key */
key: string;
/** Area ID in format LSOA21::ID */
areaId: string;
/** Scheme title */
title: string;
/** Record type */
recordType: string;
/** Scheme URL */
url: string;
/** Country code */
countryCode: string;
/** Provider-specific metadata */
metadata: OurWatchMetadata;
/** Location coordinates */
latitude: number;
longitude: number;
/** Distance from query point (only in location queries) */
distance?: number;
/** Boundary polygon (only in detailed queries) */
boundary?: any;
/** Area in square meters (only when boundary is available) */
area_square_meters?: number;
}
/**
* Neighborhood watch scheme data
* @deprecated Use NeighborhoodWatchSchemeResponse instead
*/
export interface NeighborhoodWatchScheme {
/** Scheme ID */
id: number;
/** Provider name */
provider: string;
/** Provider-specific key */
key: string;
/** Area ID */
areaId: string;
/** Scheme title */
title: string;
/** Record type */
recordType: string;
/** Scheme URL */
url: string;
/** Latitude coordinate */
latitude: number;
/** Longitude coordinate */
longitude: number;
/** Distance from search point (when searching by location) */
distance?: number;
/** Country code */
countryCode: string;
/** Additional metadata */
metadata?: Record<string, any>;
/** Boundary polygon (if available) */
boundary?: any;
}
/**
* Neighborhood watch schemes response
* @deprecated Use route-specific response types instead
*/
export interface NeighborhoodWatchResponse {
/** Search location (for location queries) */
location?: {
/** Longitude */
lng: number;
/** Latitude */
lat: number;
};
/** Search radius (for location queries) */
radius?: number;
/** Area ID (for area queries) */
areaId?: string;
/** Total count of schemes found */
count: number;
/** List of schemes */
schemes: NeighborhoodWatchScheme[];
}