WP-PLACE-LOCAL-SYNC-01 — Map POI local sync
Domain: D-PLACE · Surfaces: API · CON · 2026-08-22
Goal
Trả markers theo batch + cursor, hỗ trợ delta since, lưu ô bản đồ trên máy (AsyncStorage) để mở lại nhanh / ít tải full.
API
GET /places/map/sync
| Param | Ý nghĩa |
|---|---|
| north/south/east/west | Viewport (cùng /places/map) |
| category, q, … | Filter như map |
limit |
Page size (default 50, max 100) |
cursor |
Offset trang trước |
since |
ISO8601 — chỉ updatedAt >= since |
Response: { items, count, nextCursor, hasMore, serverTime, truncated? }
CON
mapPlacesLocalStore— tile key ~1 km, LRU 32 ô, TTL 30 phútmapPlacesSync— hydrate cache → sync từng trang →onProgresscập nhật UI → persistWelifeMapScreendùng sync thay vì một shot/places/map
Verify
# BE
curl -s "http://127.0.0.1:3000/api/v1/places/map/sync?north=10.83&south=10.79&east=106.69&west=106.65&limit=20" | head -c 400
# FE unit
cd mobile && node --test src/features/places/mapPlacesLocalStore.test.ts
Out of scope (sau)
- SQLite / full-city catalog dump
deletedIdstombstones- Wire HomeMapPreview