Files

61 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# web-admin
Next.js 15 App Router + shadcn/ui (стиль `new-york`, base `neutral`) + Recharts + TanStack Query.
Порт: **3001** (3000 занят `hr_v2_next`).
## Запуск
```bash
pnpm --filter=@reception/web-admin dev
# → http://localhost:3001
```
Логин: dev-юзеры из `packages/db/prisma/seed.ts`:
- `senior@local / senior123` — Старший администратор (видит Enrollment, Пациенты)
- `manager@local / manager123` — Управляющий (Дашборд, Пациенты)
- `admin@local / admin123` — Админ системы (Аудит, Пациенты)
- `security@local / security123` — Безопасность (Инциденты)
## Структура
```
src/
app/
layout.tsx # root layout с ThemeProvider + Toaster
page.tsx # redirect по роли
login/page.tsx # вход
(authed)/
layout.tsx # серверный гард + AppShell
dashboard/page.tsx # Управляющий
enrollment/page.tsx # Старший администратор (M10)
patients/ # M11
incidents/page.tsx # Безопасность (заглушка)
audit/page.tsx # Админ системы (M11)
components/
app-shell.tsx # сайдбар + топбар (фильтр nav по роли)
login-form.tsx # форма входа
theme-provider.tsx # next-themes
ui/ # shadcn компоненты
lib/
auth.ts # серверные actions: login/logout/getCurrentUser
api.ts # серверный fetch с проксированием cookies
utils.ts # cn, formatDateTime, formatDuration
middleware.ts # редирект на /login если нет access_token
```
## Эндпоинты apps/api, используемые в web-admin
| Метод | Путь | Где |
|---|---|---|
| `POST` | `/auth/login` | login form (server action) |
| `POST` | `/auth/logout` | header logout (server action) |
| `GET` | `/auth/me` | `getCurrentUser()` |
| `GET` | `/tracks?status=UNMATCHED` | /enrollment (M10) |
| `GET` | `/polimed/appointments?date=...` | /enrollment (M10) |
| `POST` | `/enrollment` | /enrollment submit (M10) |
| `GET` | `/patients` | /patients (M11) |
| `GET` | `/patients/:id/visits` | /patients/:id (M11) |
| `POST` | `/consents/:patientId/revoke` | /patients revoke (M11) |
| `GET` | `/audit/biometry` | /audit (M11) |