23 Commits

Author SHA1 Message Date
root
c4fc607590 feat: доработка backend-сервисов и mobile экранов (auth, funnel, schedule, stats, clients)
Some checks are pending
CI / Lint & Format (push) Waiting to run
CI / Backend Tests (push) Blocked by required conditions
CI / Build All Apps (push) Blocked by required conditions
Backend: улучшение auth service, roles guard, JWT strategy, funnel/schedule/stats/users сервисов
Mobile: навигация, экраны clients/funnel/home/schedule, API-сервисы, client-detail экран, типы

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:19:51 +00:00
root
424c4c11a4 feat(mobile): Sprint 5 — Expo SDK 54, Clients/Home экраны с API, barrel exports
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- Обновлен Expo SDK 52 → 54 (React Native 0.81.5, React 19.1, Reanimated 4)
- Реализован экран Clients с поиском, пагинацией и API-интеграцией
- Реализован экран Home с реальными данными: статистика, ближайшие тренировки, долги
- Добавлены barrel-экспорты: funnelService, useFunnelStore
- Удален устаревший babel-плагин reanimated (обрабатывается babel-preset-expo)
- 310/310 unit-тестов проходят, Expo export успешен

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:46:44 +00:00
root
0ba11ce5e5 feat: Expo Go мобильное приложение, AuthGuard веб-панелей, исправление API контроллеров
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- Конвертация mobile app в Expo SDK 52 (app.json, metro.config, babel, иконки Ionicons)
- API URL мобилки: localhost → https://api.myfitcrm.ru/v1
- PM2 конфиг для Expo dev server (порт 8081)
- AuthGuard + (dashboard) route group для club-admin и platform-admin
- Login-страницы для club-admin и platform-admin
- Sidebar убран из root layout (рендерится только в защищённых страницах)
- Исправлен двойной префикс v1/v1 в SIP и WorkSchedule контроллерах
- .env.local всех панелей: api.vm-b844c351.na4u.ru → api.myfitcrm.ru

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:17:22 +00:00
root
90efef3afc docs: обновление документации — TOTP, BullMQ, rate limiting, CRUD-панели
- docs/dev: добавлены 10 API-разделов (Webhooks, Catalog, Departments,
  Rooms, Clubs Admin, Licenses, Reports, Integration, Audit Logs),
  TOTP-эндпоинты, разделы BullMQ и Rate Limiting, обновлено содержание
- docs/devops: добавлены BullMQ очереди (Redis 3.2), PM2 (7.5),
  Rate Limiting (9.7)
- docs/user: убрано «в разработке» для панелей клуба и суперадмина,
  добавлена инструкция 2FA, описаны CRUD-диалоги, CSV-экспорт аудита

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:17:32 +00:00
root
0f23e4fdce feat: BullMQ очереди, 2FA/TOTP, audit logs, rate limiting, 310 unit-тестов, CRUD-диалоги веб-панелей
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
Фаза 1: BullMQ + EventEmitter2 — QueueModule (webhook-delivery, push-notification, sync-1c),
webhook delivery processor с HMAC-SHA256 и retry 3 попытки, webhook dispatch service
с @OnEvent для 12 типов событий, эмиссия событий из бизнес-сервисов.

Фаза 2: @nestjs/throttler rate limiting (1000 req/min, Redis), TOTP 2FA для суперадмина
(otplib + qrcode), AuditModule с GET /admin/audit-logs.

Фаза 3: 14 новых тестовых файлов (310 тестов) — auth, clients, schedule, funnel, sales,
stats, notifications, webhooks, totp, metering, guards, middleware.

Фаза 4: web-club-admin — 15 CRUD-диалогов (staff, departments, rooms, catalog, integrations,
license, settings) + подключение к страницам.

Фаза 5: web-platform-admin — create/edit club, issue license, club actions menu, CSV export
audit logs + подключение к страницам.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:59:20 +00:00
root
7fcebf2739 fix(infra): снижение resource limits под сервер 4 CPU / 8 GB RAM
Суммарные лимиты контейнеров превышали физические ресурсы сервера
(было 9 CPU / 8.5 GB, стало 5 CPU / 4.3 GB). Также настроен 2 GB swap
и swappiness=10 на уровне ОС.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 06:25:48 +00:00
root
fafea40fc5 feat(infra): настройка nginx reverse proxy + HTTPS + PM2 ecosystem
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- Добавлен ecosystem.config.js для PM2 (API + 3 веб-панели)
- Настройка hostname 0.0.0.0 для dev-серверов Next.js
- Добавлены postcss + @tailwindcss/postcss для web-admin
- AuthGuard обёртка в dashboard layout web-admin

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 19:37:19 +00:00
root
ada60bd94c fix(api): исправление raw SQL — camelCase колонки вместо snake_case
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
Prisma создаёт колонки в camelCase ("clubId", "isActive", "createdAt"),
но все raw SQL запросы использовали snake_case (club_id, is_active).
Исправлено в 9 файлах:
- RLS-миграция: "clubId" вместо club_id, убран ::uuid cast
- auth.service: логин, refresh, storeRefreshToken
- api-key.guard: валидация API-ключей
- audit-log.interceptor: INSERT audit_logs
- module.guard, modules.service: проверка/управление модулями
- metering.service: все 12 SQL-запросов usage metering
- provisioning.service: создание/удаление клубов
- rls-tenant.strategy: provision/deprovision

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:18:12 +00:00
root
628d170529 fix: устранение блокеров dev-запуска + seed-скрипт
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- Docker Compose перенесён в корень проекта (env-переменные доступны)
- API_PORT вместо PORT для NestJS (конфликт с Telegram bridge)
- ESLint: исправлены no-floating-promises в web-club-admin и web-platform-admin
- Seed-скрипт: 7 пользователей, клуб, клиенты, услуги, лицензия, модули
- scripts/dev-setup.sh: автоматизация запуска dev-окружения

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:01:33 +00:00
root
18589afc3e feat(web): Sprint 6 — полная API-интеграция веб-панелей + отчёты
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- web-club-admin: все 9 страниц переведены на реальные API-вызовы,
  удалены hardcoded данные (notifications, settings, integrations,
  dashboard, license), добавлены loading/error/empty states
- web-platform-admin: dashboard, monitoring, audit переписаны на
  реальные API-вызовы, clubs и licenses уже были интегрированы
- web-admin reports: генерация PDF, скачивание, фильтры по типу/статусу,
  auto-polling для отчётов в обработке
- api: удалён закомментированный импорт RatingModule (рейтинг в StatsModule)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:45:05 +00:00
f2de524d27 Merge pull request 'feat: API-клиент, unit-тесты и интеграция веб-панелей' (#2) from master into main
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
2026-02-18 12:27:48 +00:00
root
ff43106037 feat: API-клиент + интеграция веб-панелей + доработка metering/provisioning
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Lint & Format (pull_request) Has been cancelled
PR Check / Lint & Typecheck (pull_request) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
CI / Backend Tests (pull_request) Has been cancelled
CI / Build All Apps (pull_request) Has been cancelled
- Реализован packages/api-client: HTTP-клиент, типы, аутентификация
- Все веб-панели (web-admin, web-club-admin, web-platform-admin) переведены на реальный API-клиент вместо моковых данных
- Добавлены lib/api.ts и lib/auth.ts для club-admin и platform-admin
- metering.service: лимиты модулей теперь берутся из club_modules.limits_json
- provisioning.service: рефакторинг под strategy pattern

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:23:22 +00:00
root
5feb32e803 test(api): unit-тесты для 8 backend-модулей (150 тестов)
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
Добавлены Jest unit-тесты для всех новых сервисов:
- departments (11), rooms (18), catalog (37), clubs (14),
  licenses (23), reports (18), webhooks (19), integration (10)
- Jest конфигурация (jest.config.ts) с ts-jest и path aliases

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:43:28 +00:00
3c6c6cd402 Merge pull request 'feat(api): реализация 8 backend-модулей NestJS' (#1) from master into main
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
2026-02-18 09:36:39 +00:00
root
8b6ef0501c feat(api): реализация 8 backend-модулей NestJS
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
CI / Lint & Format (pull_request) Has been cancelled
PR Check / Lint & Typecheck (pull_request) Has been cancelled
CI / Backend Tests (pull_request) Has been cancelled
CI / Build All Apps (pull_request) Has been cancelled
Добавлены полноценные модули с сервисами, контроллерами и DTO:
- departments: CRUD департаментов (CLUB_ADMIN/SUPER_ADMIN)
- rooms: CRUD залов с фильтрацией по активности
- catalog: категории, услуги и пакеты (3 суб-ресурса)
- clubs: управление клубами для суперадмина (cross-tenant)
- licenses: лицензии с grace period, renewal, статусами истечения
- reports: генерация отчётов с @RequireModule('web_reports')
- webhooks: подписки с HMAC-SHA256, 12 типов событий, тестовая доставка
- integration: конфигурация 1С-интеграции и журнал синхронизации

Все модули зарегистрированы в AppModule. Сборка monorepo проходит успешно.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:34:23 +00:00
root
3912143b1a fix(api): устранение SQL-инъекции в tenant middleware
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
Заменён $executeRawUnsafe с прямой строковой интерполяцией на
$executeRaw с tagged template literal для параметризации clubId.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 09:02:45 +00:00
root
5991f71ab1 fix: исправления сборки + UI-компоненты web-admin + панели club-admin и platform-admin
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- Исправлены импорты и TypeScript ошибки в API (auth, middleware, modules)
- Добавлены UI-компоненты shadcn/ui для web-admin (dialog, table, tabs, select и др.)
- Реализованы страницы web-club-admin (9 разделов: дашборд, сотрудники, департаменты, залы, каталог, уведомления, интеграции, лицензия, настройки)
- Реализованы страницы web-platform-admin (клубы, лицензии, мониторинг, аудит, дашборд)
- Обновлены зависимости и pnpm-lock.yaml
- Полная сборка проекта проходит успешно (7/7 пакетов)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 08:45:52 +00:00
root
2ff68570a5 feat(mobile): интеграция Sprint 5 экранов в навигацию
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Backend Tests (push) Has been cancelled
CI / Build All Apps (push) Has been cancelled
- navigation.tsx: импорты CoordinatorScreen, CallLogScreen,
  SleepingClientsScreen, WorkScheduleScreen
- MoreStackParamList: +4 маршрута (Coordinator, CallLog,
  SleepingClients, WorkSchedule)
- MoreNavigator: +4 экрана в стеке навигации
- more/index.tsx: подключены onPress для всех пунктов меню,
  координатор отображается только для COORDINATOR/MANAGER

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 07:25:55 +00:00
root
e3a0eb53a6 feat: полная кодовая база FitCRM (Sprint 1-5)
Monorepo конфигурация:
- Turborepo + pnpm workspaces, ESLint, Prettier, tsconfig

Backend API (NestJS 11 + Prisma 6):
- 13 модулей: auth, users, clients, schedule, funnel, sales, stats,
  notifications, work-schedule, sip, modules, metering, provisioning
- 34 Prisma-модели, 12 enums, RLS multi-tenancy
- JWT (access+refresh), RBAC (6 ролей), @RequireModule guard
- Cursor-based пагинация, Swagger/OpenAPI

Mobile (React Native):
- 13 экранов: auth, home, schedule, clients, funnel, stats, rating,
  sales, coordinator, sip, sleeping, work-schedule, notifications
- Zustand stores, API services, типизированная навигация
- Кастомная дизайн-система (colors, typography, spacing)
- Компоненты: TrainingCard, FunnelCard, SaleCard, FunnelChart

Web Admin (Next.js 15):
- web-admin: рецепция, распределение, аналитика, отчёты
- web-club-admin: scaffold (package.json)
- web-platform-admin: scaffold (package.json)

Infrastructure:
- Docker Compose: PostgreSQL 17 + Redis 8 + coturn
- 4 Dockerfiles (API, web-admin, club-admin, platform-admin)
- GitHub Actions: CI (lint→test→build) + PR checks
- STUN/TURN конфигурация для SIP/VoIP

Shared packages:
- shared-types, api-client, validators

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 07:24:10 +00:00
root
50c306f823 docs: документация для разработчиков, DevOps и пользователей + агент-документатор
- docs/dev/README.md: API-справочник (13 контроллеров, 34 модели, RBAC, примеры)
- docs/devops/README.md: развёртывание, Docker, CI/CD, бэкапы, масштабирование
- docs/user/README.md: руководство для 6 ролей, все экраны, бизнес-логика, FAQ
- CLAUDE.md: добавлен Агент 8 (Документатор) в мультиагентный workflow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 07:15:55 +00:00
root
876cc75060 CLAUDE.md: финальная версия с Telegram MCP и v2 обновлениями 2026-02-13 12:45:53 +00:00
root
b4968512e1 docs: ТЗ + план разработки 2026-02-13 11:47:19 +00:00
root
76179c43db initial: CLAUDE.md + project structure 2026-02-13 11:37:28 +00:00