docs: sync Front#43 specialist duty overlay on personal
Accepted invites + active specialist check; personal owner does not mirror foreign roster. Refs EventHub/EventHubFront#43
This commit is contained in:
@@ -75,6 +75,11 @@ Deep-link на календарь, владельцем которого явл
|
||||
- **Свой default personal:** поверх сетки — overlay confirmed записей на чужие commercial
|
||||
слоты (Front-only: `GET /v1/user/bookings` → events/calendars). Заголовок
|
||||
`событие · студия · специалист`; клик → `/c/:foreignCalId/e/:eventId` (не в своём cal).
|
||||
Дополнительно (Front#43): overlay **своих** рабочих слотов commercial, где
|
||||
`specialist_id` = текущий user — gate через accepted `GET /v1/user/specialist-invites`
|
||||
+ проверка active в `GET …/specialists`, затем `GET …/events?from&to`; title
|
||||
`событие · студия`. Personal владельца без accepted invite / без своих слотов
|
||||
чужой roster **не** зеркалит.
|
||||
- **Guest на чужом commercial (D9 модель B):** roster карточек активных специалистов →
|
||||
тап → сетка только со слотами `event.specialist_id` = выбранный; «Все слоты студии»
|
||||
снимает фильтр. Это **не** chip-filter на общей сетке. Book как обычно — без
|
||||
@@ -214,6 +219,12 @@ cover (`.eh-discover-media--photo`); иначе mood wash + initials (`.eh-disco
|
||||
`GET /v1/user/bookings` на чужих commercial — догрузить event/calendar и нарисовать
|
||||
на **своём default personal** grid; title `событие · студия · специалист`;
|
||||
клик → `/c/:foreignCalId/e/:eventId`. Back API не менялся.
|
||||
- **Specialist duty overlay на personal (Front-only, Front#43):** на своём personal —
|
||||
слоты commercial, где `event.specialist_id` = текущий user. Gate: accepted invites
|
||||
(`GET /v1/user/specialist-invites`) → unique `calendar_id` → active specialist
|
||||
(`GET /v1/calendars/:id/specialists`) → list events viewport. Title `событие · студия`;
|
||||
клик → `/c/:commercialId/e/:eventId`. Legacy specialist без invite-записи — вне MVP.
|
||||
Не зеркалить чужой roster на personal owner.
|
||||
- Статусы: `pending` | `confirmed` | `cancelled` | `expired`; confirmation: `auto` | `manual` | timeout.
|
||||
Past+pending / `expired` в «Мои записи» и на `EventActionCard` — бейдж «истекла»,
|
||||
Cancel скрыт. На past-событии Book скрыт. Defensive: если API ещё отдал past
|
||||
|
||||
@@ -393,6 +393,7 @@ error rate > 1% **или** mean request > 500 ms (hold ≥2 мин в фазе)
|
||||
|
||||
| Дата | Изменение |
|
||||
|------|-----------|
|
||||
| 2026-07-29 | Spec sync Front#43: specialist duty overlay на personal (accepted invites + active check) |
|
||||
| 2026-07-28 | Spec sync Front#40: Mood chip в AppShell у BrandWordmark; week single day-header + `.eh-cal-week-scroll` |
|
||||
| 2026-07-28 | Spec sync Front#39: Mood chip в workspace (не Ещё); Lens Обзор/Сегодня/Записи + strip; mood→DB, lens→localStorage |
|
||||
| 2026-07-28 | Spec sync Front#35: D9 B guest specialist schedule; confirmed overlay на personal; SpecialistsPanel density; F6 EventActionCard |
|
||||
|
||||
Reference in New Issue
Block a user