* `mv_park_nearest_poi` — for each IndustrialPark, the 3 nearest POI of
six priority categories (HOSPITAL/BANK/GAS/BUS/METRO/POLICE) within
5km. Refreshed weekly. Pre-aggregated 6,513 rows from the live
catalog so the KCN sidebar can render in <50ms instead of running
ST_Distance for every page hit.
* `mv_poi_density_by_province` — count of POI per (province, category)
for analytics heatmaps.
* `OsmSyncService.refreshMaterializedViews()` calls
`REFRESH MATERIALIZED VIEW CONCURRENTLY` so reads aren't blocked.
* New cron entry `weeklyRefreshViews` (Sun 04:00 ICT) and admin
endpoint `POST /admin/osm/refresh-views` for on-demand refresh.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>