Docs: sync booking-requests + Bookings IA + image_url after Back#59/Front#30. Fixes EventHub/EventHubSpec#12
This commit is contained in:
@@ -17,7 +17,7 @@ SoT: [`boards/calentiq-ui-board-final.png`](boards/calentiq-ui-board-final.png).
|
||||
| Pixel-perfect calendar | denser board mock + Today/Upcoming rail | Agenda rail (§B): title-case Сегодня/Предстоящие + count, time-first rows; month chips/cell wash (§B/D) по mood; не 1:1 Figma |
|
||||
| Discover cards | soft cards + media thumb + CTA | mood media plane (wash/initials + `image_url` when present) + soft-card rhythm + CTA; без full photo-hero grid |
|
||||
| CONTROL booking §E | отдельные mock-карточки «слот/специалист» | `EventActionCard` / specialists / bookings: steel rail (усилен), avatar, available label, Confirm/Decline; не pixel-perfect board mocks |
|
||||
| Bookings list §D | список заявок с Confirm/Decline на `/bookings` | `/bookings` = заявки **участника** (Отменить); owner Confirm/Decline — в карточке события (`EventActionCard` / Заявки) |
|
||||
| Bookings list §D | список заявок с Confirm/Decline на `/bookings` | `/bookings` = **grouped inbox**: (A) К подтверждению — pending owner/specialist + Confirm/Decline; (B) Мои записи — participant upcoming/past + Cancel; empty groups hidden. Event card Confirm/Decline **остаётся** обязательным |
|
||||
| Login §D phone chrome | три phone frames + (на борде) Google CTA | brand-first hero + mood `--auth-*`; email/password only; mood switcher на login (иконки); taglines mood cards — на `/more`; **без** Google OAuth |
|
||||
| Favicon set | 3 отдельных favicon файла на борде | mood appicon через `applyMood` |
|
||||
| Desktop nav | phone bottom tabs на борде | desktop: top tabs (Календарь / Найти / Записи / Ещё); bottom nav — mobile |
|
||||
@@ -32,7 +32,30 @@ IA без sidebar / без Creator mood — совпадает с non-goals (п
|
||||
|
||||
**Polish in this pass:** agenda copy/casing/counts + time-first rows; CONTROL steel rail emphasis; neutral Discover cover in mock (не flow-appicon во всех moods).
|
||||
|
||||
**Remaining intentional:** no pixel-perfect phone chrome; Discover без photo-hero grid; owner Confirm/Decline не на `/bookings` list.
|
||||
**Remaining intentional:** no pixel-perfect phone chrome; Discover без photo-hero grid (cover via `image_url` when API returns it); §E specialist schedule card vs panel — не pixel-perfect board mocks (follow-up).
|
||||
|
||||
### Bookings inbox + More invites (locked 2026-07-27)
|
||||
|
||||
Продуктовые решения (не deviation — канон):
|
||||
|
||||
1. **Event card Confirm/Decline** остаётся обязательным (quick approve на слоте).
|
||||
2. **`/bookings`** — grouped inbox, не только participant:
|
||||
- **Группа A — К подтверждению:** pending bookings, где пользователь calendar **owner** или **assigned specialist** (`event.specialist_id` = user). Confirm/Decline те же, что на `EventActionCard`.
|
||||
- **Группа B — Мои записи:** participant bookings (upcoming/past + Cancel) как раньше.
|
||||
- Пустые группы скрывать (`count=0`).
|
||||
- Опционально подпись owner vs specialist внутри A; иначе одна секция «К подтверждению».
|
||||
3. **`specialist_invite` в More:** скрывать пункт меню, если **0 pending** входящих. Deep-link `/invites?token=` работает. Исходящие invite остаются в `SpecialistsPanel`.
|
||||
4. **Не** класть строки `specialist_invite` в `/bookings`.
|
||||
|
||||
API: `GET /v1/user/booking-requests` (Back) + существующий `PUT /v1/bookings/:id`.
|
||||
|
||||
### Follow-ups (вне этого fix-pass или частично)
|
||||
|
||||
| Тема | Статус |
|
||||
|------|--------|
|
||||
| Discover `image_url` в search serialization | Back отдаёт поле; upload API **нет** — только URL field / seed |
|
||||
| Stage Popular clutter (e2e calendars) | filter notes: см. `EventHubSpec/STAGE-POPULAR-CLEANUP.md`; не трогать реальные smoke данные без фильтра по e2e-паттернам |
|
||||
| §E specialist schedule card vs panel | deviation: EventActionCard + SpecialistsPanel; отдельный pixel mock — Future |
|
||||
|
||||
## Mood concept = product surface
|
||||
|
||||
|
||||
Reference in New Issue
Block a user