diff --git a/docs/admin-nextjs-guide.md b/docs/admin-nextjs-guide.md new file mode 100644 index 0000000..190500c --- /dev/null +++ b/docs/admin-nextjs-guide.md @@ -0,0 +1,59 @@ +# Next.js Админ-Панель — Руководство + +## Обзор + +Новая админ-панель на **Next.js 16** (App Router) + **TypeScript** + **shadcn/ui** + **Prisma** (SQLite) + **Recharts**. +Полная замена EJS/SmartAdmin шаблонизатора. + +## Стек + +| Слой | Технология | +|---|---| +| Фреймворк | Next.js 16 (App Router, Turbopack) | +| Язык | TypeScript 5 | +| Стилизация | Tailwind CSS 4 + shadcn/ui (New York) | +| БД | Prisma ORM + SQLite | +| Графики | Recharts | +| Состояние | Zustand | +| Тема | next-themes (dark/light) | +| Уведомления | Sonner (toast) | +| Иконки | Lucide React | + +## Авторизация + +- Пароль: значение ADMIN_SECRET из .env +- Если задан SUPER_ADMIN_SECRET (и ≠ ADMIN_SECRET) — вход с ним даёт роль super_admin +- Если не задан — все админы = super_admin +- Кука admin_token (httpOnly, 24ч) +- Rate-limit: 5 попыток / 15 мин с IP + +## Экраны (11) + +1. **Dashboard** — 10 KPI, 7 графиков, активность, кошельки +2. **Catalog** — дерево локаций + товары + модалка +3. **Users** — список + детальная + бан + баланс +4. **Wallets** — 3 вкладки + seed фразы (super_admin) +5. **Purchases** — таблица с фильтрами +6. **Audit Log** — журнал с цветными бейджами +7. **Categories** — CRUD с привязкой к локациям +8. **Locations** — CRUD (страна/город/район) +9. **Settings** — редактирование .env переменных +10. **Locales** — inline-редактор 3 языков +11. **Danger Zone** — Seed / Clear с reauth + +## Docker (ARM) + +```bash +docker build -t tg-admin . +docker run -p 3000:3000 -v ./db:/app/db -e ADMIN_SECRET=your_secret tg-admin +``` + +Требования: минимум 512 МБ RAM, ARM64/ARMv7/x86_64. + +## Seed-данные + +POST /api/seed/demo создаёт данные идентичные оригинальному seed.js: +- 3 локации, 5 категорий, 11 подкатегорий +- 10 пользователей (alice-jack) +- 10 товаров, 25-30 покупок +- 10 криптокошельков, 2 комиссионных платежа, 12 audit записей