# Архитектура системы управления складами и поставками ## 📋 Обзор проекта Система управления складами и поставками - это комплексное решение для управления логистикой, включающее 4 типа кабинетов для разных ролей. ## 🏗️ Технологический стек ### Frontend - **Framework**: Next.js 15.4.1 (с Turbopack) - **UI Library**: React 19.1.0 - **Language**: TypeScript 5 - **Styling**: TailwindCSS 4 - **State Management**: Apollo Client 3.13.8 - **UI Components**: Radix UI ### Backend - **API**: GraphQL (Apollo Server 4.12.2) - **Database**: PostgreSQL с Prisma ORM 6.12.0 - **Authentication**: JWT - **File Storage**: AWS S3 ### DevOps & Tools - **Package Manager**: npm - **Linting**: ESLint 9 + Prettier - **Build**: Next.js build system ## 📁 Структура проекта ``` sfera/ ├── src/ │ ├── app/ # Next.js 15 App Router │ │ ├── api/ # API endpoints │ │ ├── dashboard/ # Главная страница │ │ ├── supplies/ # Управление поставками │ │ ├── warehouse/ # Склад │ │ └── ... # Другие страницы │ ├── components/ # React компоненты │ │ ├── ui/ # Базовые UI компоненты │ │ ├── supplies/ # Компоненты поставок │ │ ├── warehouse/ # Компоненты склада │ │ └── ... # Компоненты по доменам │ ├── graphql/ # GraphQL схема и резолверы │ │ ├── queries.ts # GraphQL запросы │ │ ├── mutations.ts # GraphQL мутации │ │ ├── resolvers/ # Модульные резолверы │ │ └── typedefs.ts # Type definitions │ ├── hooks/ # Custom React hooks │ ├── lib/ # Утилиты и конфигурации │ ├── services/ # Бизнес-логика и интеграции │ └── types/ # TypeScript типы ├── prisma/ │ └── schema.prisma # Схема базы данных ├── public/ # Статические файлы └── docs/ # Документация ``` ## 🏢 Типы кабинетов ### 1. Кабинет Селлера (SELLER) - Управление поставками - Интеграция с маркетплейсами - Заказ товаров у поставщиков ### 2. Кабинет Поставщика (WHOLESALE) - Управление складом товаров - Обработка заказов от селлеров - Создание товаров и расходников ### 3. Кабинет Фулфилмента (FULFILLMENT) - Полный доступ к системе - Управление складом фулфилмента - Услуги и сотрудники - Обработка поставок ### 4. Кабинет Логистики (LOGIST) - Управление доставками - Маршруты и тарифы - Отслеживание грузов ## 🔄 Основные бизнес-процессы ### Workflow поставки 1. PENDING - Ожидает подтверждения 2. SUPPLIER_APPROVED - Одобрено поставщиком 3. CONFIRMED - Подтверждено 4. LOGISTICS_CONFIRMED - Подтверждено логистикой 5. SHIPPED - Отгружено 6. IN_TRANSIT - В пути 7. DELIVERED - Доставлено 8. CANCELLED - Отменено ## 🗄️ Схема базы данных ### Основные модели - **User** - Пользователи системы - **Organization** - Организации (4 типа) - **Product** - Товары и расходники - **SupplyOrder** - Заказы поставок - **Counterparty** - Партнерские связи - **Service** - Услуги фулфилмента - **Employee** - Сотрудники ## 🔐 Система безопасности - JWT авторизация - Ролевой доступ (RBAC) - Проверки на уровне GraphQL резолверов - Шифрование чувствительных данных ## 📡 API Endpoints ### GraphQL - `/api/graphql` - Основной GraphQL endpoint ### REST - `/api/upload-file` - Загрузка файлов - `/api/health` - Health check - `/api/track-click` - Трекинг кликов ## 🚀 Команды для разработки ```bash # Разработка npm run dev # Сборка npm run build # Линтинг npm run lint npm run lint:fix # Форматирование npm run format npm run format:check # База данных npm run db:seed npm run db:reset ``` ## 📊 Метрики и мониторинг - Логирование ошибок в консоль - Отслеживание производительности через Next.js - Метрики использования API ## 🔄 Планы развития 1. Внедрение микросервисной архитектуры 2. Улучшение типизации (GraphQL Codegen) 3. Добавление E2E тестирования 4. Поддержка офлайн-режима 5. Оптимизация производительности --- *Последнее обновление: ${new Date().toISOString().split('T')[0]}*