Appearance
Пользовательские сценарии (flows)
Последняя сверка с кодом: 2026-06-06
Диаграммы для QA, аналитиков и дизайнеров. Детали прав — 04-roles-and-access.
F1. Гость: QR → альбом → upload
mermaid
sequenceDiagram
actor Guest
participant Web as Nuxt /:id
participant API as Express
participant TUS as /api/tus
Guest->>Web: Скан QR / открыть ссылку
Web->>API: GET /events/:id
Web->>API: GET /events/:id/media
Guest->>Web: Имя (опц.) GuestNameModal
Guest->>Web: Upload фото
Web->>TUS: Чанки TUS
TUS->>API: onUploadFinish → Media
API-->>Web: SSE new media
Web->>Guest: Фото в сеткеF2. Организатор: регистрация → событие → share
mermaid
flowchart LR
A[Лендинг /] --> B{Залогинен?}
B -->|нет| C[AuthModal Register]
C --> D[POST /api/auth/sign-up]
B -->|да| E[CreateEventForm]
D --> E
E --> F[POST /api/events]
F --> G["/:id/share"]
G --> H[QR + ссылки гостям]F3. Auth: вход и защита аккаунта
mermaid
flowchart TD
U[User → /account] --> M[middleware auth]
M -->|нет session| H[handleUnauthenticatedAccess]
H --> R[redirect /]
H --> MOD[AuthModal login]
MOD --> S[POST sign-in/email]
S --> C[/account OK]
M -->|session OK| CF4. MEMBER: join по инвайту
mermaid
sequenceDiagram
actor User
participant Join as /:id/join
participant API as Express
User->>Join: Ссылка ?token=…
alt Не залогинен
Join->>User: AuthModal
User->>API: sign-in / register
end
User->>Join: Подтвердить join
Join->>API: POST /events/:id/join
API-->>Join: EventRole MEMBER
Join->>User: Redirect /:id альбомF5. Модерация
mermaid
flowchart LR
U[Guest upload] --> P[PENDING media]
P --> Q["/:id/moderate"]
Q --> A{MODERATOR/OWNER}
A -->|Approve| AP[APPROVED → album]
A -->|Reject| RJ[REJECTED → скрыто]
AP --> SSE[SSE → wall/album]F6. Wall (слайдшоу)
mermaid
sequenceDiagram
participant TV as Browser /:id/wall
participant API as Express
TV->>API: GET /events/:id/media
TV->>API: EventSource /events/:id/stream
loop Новое фото
API-->>TV: SSE media.created
TV->>TV: SlideshowPlayer next slide
endF7. Сброс пароля
mermaid
sequenceDiagram
actor User
participant Modal as AuthModal
participant Auth as Better Auth
participant Email as Zoho SMTP
User->>Modal: Forgot password
Modal->>Auth: request reset
Auth->>Email: Письмо с link
User->>User: /reset-password?token=
User->>Modal: Reset view + новый пароль
Modal->>Auth: reset passwordRedirect stub: 21-auth-frontend.md.
F8. SUPER_ADMIN: платформа
mermaid
flowchart TD
A[/admin/users] --> B[require-super-admin]
B --> C[GET /api/admin/users]
D[/admin/events] --> E[GET /api/admin/events]
F[/admin/plans] --> G[GET /api/admin/plans]Sidebar: useAdminNav → блок «Platform» только при isSuperAdmin.
F9. Удаление медиа
| Кто | Что может удалить |
|---|---|
| GUEST | — |
| MEMBER | Только свои upload |
| MODERATOR / OWNER | Любое в событии |
| SUPER_ADMIN | Любое (API) |
UI: admin grid, album (если canDelete в media item).
F10. Ошибки доступа (без /403 page)
mermaid
flowchart TD
R[Route middleware] --> E{401/403?}
E -->|cabinet layout| I[UiPageError inline]
E -->|album page| P[resolvePageLoadError]
P --> L[Кнопка login → auth modal]