Skip to content
HomePagesHomePages template kit

PoiRow

One point of interest — a nearby place (a school, park, coffee shop, transit stop, …) identified by Google Places, with its location and whatever enrichment fields Places returned for it.

One point of interest — a nearby place (a school, park, coffee shop, transit stop, …) identified by Google Places, with its location and whatever enrichment fields Places returned for it.

Import from @homepages/template-kit.

export type PoiRow = {
id: string;
place_id: string;
name: string;
address: string | null;
lat: number;
lng: number;
distance_m: number | null;
rating?: number;
review_count?: number;
type_label?: string;
price_level?: string;
website_uri?: string;
google_maps_uri?: string;
summary?: string;
photo?: PoiPhoto;
};
  • Every field past distance_m is optional and never nullable: Places omits most of them for many place types, so a renderer must handle absence regardless of what a producer managed to fetch. Nothing here refreshes on a schedule — a row is stale by design until its deliverable is regenerated or the user re-picks the place. photo, if present, is resolved fresh from place_id on every request rather than cached, since it is the one field that would visibly break rather than merely age.