On this page
schema
Системная схема
Backend
Backend построен на:
- FastAPI
0.115.6 - SQLAlchemy asyncio
2.0 - Alembic
1.14 - PostgreSQL через
asyncpg openpyxlдля чтения и экспорта Excel
Основная входная точка: src/backend/app/main.py.
Подключенные роутеры:
authreportsproductssellersupload_history
Frontend
Frontend построен на:
- Next.js
15.1.6 - React
19 - MUI
7 - MUI Data Grid
Основной UX построен вокруг страниц:
/dashboard/reports/reports/[id]/products/sellers/history/limit-history/auth/auth1/login
Хранилища
Система использует два типа хранения:
- PostgreSQL для сущностей и вычисленных результатов
- файловую директорию
storage/reportsдля исходных загруженных файлов
Это разделение важно, потому что операция rebuild заново строит отчет по исходному файлу, а не по уже сохраненным агрегатам.
Поток обработки отчета
- Frontend отправляет файл в
POST /api/reports/upload. - Backend проверяет расширение и читает содержимое.
- Парсер считает строки детализации и проверяет лимиты пользователя.
- Система списывает лимиты и пишет запись в
limit_history. - Парсер агрегирует строки по артикулу поставщика.
- Backend обогащает строки себестоимостью из каталога товаров пользователя.
- Отчет и строки отчета сохраняются в БД.
- Исходный файл сохраняется в
storage/reports.
Важные ограничения текущей реализации
- прогресс объединения отчетов хранится в памяти процесса backend
- ручные корректировки сохраняются в JSON-поле
manual_values - права доступа построены только на JWT и
user_id - формулы summary-экспорта реализованы частично: ряд колонок остается пустым