docs(search): вид карты в поиске, default_location всегда

FrontSpec §5.3: переключатель Список/Карта (?view=map), маркеры
группируются по месту, пин календаря с числом событий, попап со ссылками,
тайлы OpenFreeMap без ключа, lazy-chunk. BackSpec §2.5: default_location
календарей возвращается всегда, distance_km — только при гео-запросе
(Back#77).

Refs EventHub/EventHubSpec#21
This commit is contained in:
2026-08-19 22:01:21 +03:00
parent b79fd81260
commit 59726d394c
2 changed files with 12 additions and 0 deletions
+3
View File
@@ -409,6 +409,9 @@ API:
по `event.location`; commercial-календари — по `settings.default_location`. по `event.location`; commercial-календари — по `settings.default_location`.
`radius` **опционален** (1..100 км); без ключа — без отсечения, сортировка `distance`. `radius` **опционален** (1..100 км); без ключа — без отсечения, сортировка `distance`.
В ответе `distance_km`. Без координат сущность в geo-выборку не входит. В ответе `distance_km`. Без координат сущность в geo-выборку не входит.
- В элементе `calendars` поле `default_location` (`address`/`lat`/`lon`, либо `null`)
возвращается всегда, если у календаря задана точка (Back#77) — вид карты в поиске
строится и без гео-запроса. `distance_km` присутствует только при `lat`+`lon` в запросе.
- Пагинация результатов (`limit`, `offset`; default `limit=20`, max `100`). - Пагинация результатов (`limit`, `offset`; default `limit=20`, max `100`).
- Поиск должен учитывать права доступа (не показывать скрытые/заблокированные календари). - Поиск должен учитывать права доступа (не показывать скрытые/заблокированные календари).
+9
View File
@@ -224,6 +224,15 @@ cover (`.eh-discover-media--photo`); иначе mood wash + initials (`.eh-disco
центр по адресу (suggest), не ручные lat/lon. Радиус опционален (пресеты 1/5/10/25/50 км центр по адресу (suggest), не ручные lat/lon. Радиус опционален (пресеты 1/5/10/25/50 км
и «без ограничения»). В выдаче — `distance_km`. Список, не map-first. и «без ограничения»). В выдаче — `distance_km`. Список, не map-first.
**Вид карты (Back#77):** у результатов segment-переключатель «Список | Карта»
(`?view=map` в URL, переживает перезагрузку). Данные — тот же `GET /v1/search`
(`useSearch`); в режиме карты пагинация списка и блок «ближайшее» скрыты.
Маркеры группируются по точке (~1 м): пин календаря с бейджем числа событий в группе,
событие с отличной точкой — отдельная малая точка; клик по маркеру → попап со списком
карточек группы (те же href `/c/:id` и `/c/:cid/e/:eid`, что в списке). Результаты без
координат не рисуются — счётчик «Без адреса: N». При активном гео-фильтре — точка центра
и круг радиуса. Тайлы OpenFreeMap (MapLibre GL, без ключа); компонент карты — lazy-chunk.
### 5.4. Календари ### 5.4. Календари
- Список своих: `GET /v1/calendars` - Список своих: `GET /v1/calendars`
- CRUD: `POST/PUT/DELETE /v1/calendars`, `GET /v1/calendars/:id` (`following`, `booking_open`) - CRUD: `POST/PUT/DELETE /v1/calendars`, `GET /v1/calendars/:id` (`following`, `booking_open`)