# ПРАВИЛА ЛОГИСТИКИ, СТАТИСТИКИ И СКЛАДСКИХ СИСТЕМ

## 📊 АНАЛИТИЧЕСКИЕ ВЫВОДЫ ИЗ КОДА

### 🚛 1. ЛОГИСТИЧЕСКИЕ МОДУЛИ

#### 1.1 Логистическая Система Перевозок (LogisticsDashboard)
**Файл:** `src/components/logistics/logistics-dashboard.tsx`

**ОБНАРУЖЕННЫЕ ПРАВИЛА:**
- **Статусы маршрутов:** `planned`, `in_transit`, `delivered`, `cancelled`
- **Структура маршрута:** точка отправления → точка назначения
- **Обязательные поля:** номер маршрута, адреса, груз, цена, расстояние, время
- **Цветовая кодировка статусов:**
  - Запланировано: синий (`text-blue-300 border-blue-400/30`)
  - В пути: желтый (`text-yellow-300 border-yellow-400/30`)
  - Доставлено: зеленый (`text-green-300 border-green-400/30`)
  - Отменено: красный (`text-red-300 border-red-400/30`)

**КЛЮЧЕВЫЕ ТОЧКИ ДОСТАВКИ:**
- Садовод (14-й км МКАД)
- SFERAV Logistics (Складская, 15)
- Коледино WB (Подольск)
- Тверь Ozon (Складская, 88)

#### 1.2 Система Логистических Заказов (LogisticsOrdersDashboard)
**Файл:** `src/components/logistics-orders/logistics-orders-dashboard.tsx`

**WORKFLOW ЛОГИСТИКИ:**
```
SUPPLIER_APPROVED → LOGISTICS_CONFIRMED → SHIPPED → DELIVERED
       ↓                    ↓               ↓           ↓
   Требует          Подтверждено      В пути    Доставлено
 подтверждения         логистом
```

**ДЕЙСТВИЯ ЛОГИСТА:**
- Подтверждение заказа (`LOGISTICS_CONFIRM_ORDER`)
- Отклонение заказа с причиной (`LOGISTICS_REJECT_ORDER`)
- Статистика по статусам

**ПРАВА ЛОГИСТА:**
- Подтверждать заказы поставщиков
- Отклонять заказы с указанием причины
- Просматривать детали маршрута и товаров

### 📈 2. СИСТЕМА СТАТИСТИКИ И АНАЛИТИКИ

#### 2.1 Статистика Селлера (SellerStatisticsDashboard)
**Файл:** `src/components/seller-statistics/seller-statistics-dashboard.tsx`

**АРХИТЕКТУРА КЭШИРОВАНИЯ:**
- **Локальный кэш:** Map для salesCache и advertisingCache
- **Database кэш:** через GraphQL мутации `SAVE_SELLER_STATS_CACHE`
- **Время жизни кэша:** 24 часа
- **Ключи кэша:** период + даты для custom диапазонов

**ВКЛАДКИ СТАТИСТИКИ:**
1. **Продажи** (SalesTab) - данные о продажах товаров
2. **Реклама** (AdvertisingTab) - рекламная статистика
3. **Иное** - зарезервировано для будущих функций

**ПЕРИОДЫ АНАЛИЗА:**
- Неделя (`week`)
- Месяц
- Квартал  
- Пользовательский диапазон (`custom`)

#### 2.2 Статистика Фулфилмента (FulfillmentStatisticsDashboard)
**Файл:** `src/components/fulfillment-statistics/fulfillment-statistics-dashboard.tsx`

**БЛОКИ СТАТИСТИКИ:**
1. **Накопленная статистика:**
   - Обработано товаров
   - Выявлено брака
   - Поставок получено
   - Общий доход

2. **Отгрузка на площадки:**
   - Wildberries (фиолетовый)
   - Ozon (синий)
   - Другие маркетплейсы (зеленый)

3. **Аналитика производительности:**
   - Среднее время обработки
   - Уровень брака
   - Уровень возвратов
   - Рейтинг качества

4. **AI-аналитика и прогнозы:**
   - Прогноз роста (+23% в следующем квартале)
   - Оптимизация процессов (-18% времени при автоматизации)
   - Сезонные тренды (+45% в ноябре-декабре)

**УПРАВЛЕНИЕ БЛОКАМИ:**
- Все блоки сворачиваемые/разворачиваемые
- Состояние сохраняется в `expandedSections`

#### 2.3 Экономическая Система (Economics Modules)
**Файлы:** `src/components/economics/*.tsx`

**СПЕЦИАЛИЗАЦИЯ ПО ТИПАМ ОРГАНИЗАЦИЙ:**
- `fulfillment-economics-page.tsx` - экономика фулфилмента
- `logist-economics-page.tsx` - экономика логистики
- `seller-economics-page.tsx` - экономика селлера
- `wholesale-economics-page.tsx` - экономика оптовых поставщиков
- `economics-page-wrapper.tsx` - роутер по типу организации

### 🏬 3. СКЛАДСКИЕ СИСТЕМЫ

#### 3.1 Wildberries Warehouse (WBWarehouseDashboard)
**Файл:** `src/components/wb-warehouse/wb-warehouse-dashboard.tsx`

**ИНТЕГРАЦИЯ С WB API:**
- **Аутентификация:** через API ключи в `organization.apiKeys`
- **Валидация ключей:** проверка `marketplace === 'WILDBERRIES'` и `isActive`
- **Токен доступа:** из `validationData.token|apiKey|key`

**АЛГОРИТМ ЗАГРУЗКИ ДАННЫХ:**
1. Получение карточек товаров (`WildberriesService.getAllCards`)
2. Извлечение nmIds из карточек
3. Получение аналитики для каждого nmId (`getStocksReportByOffices`)
4. Комбинирование данных через `combineCardsWithIndividualAnalytics`
5. Кэширование результата через `SAVE_WB_WAREHOUSE_CACHE`

**СТРУКТУРА ДАННЫХ СКЛАДА:**
```typescript
interface WBStock {
  nmId: number
  vendorCode: string
  title: string
  brand: string
  price: number
  stocks: Array<{
    warehouseId: number
    warehouseName: string
    quantity: number
    quantityFull: number
    inWayToClient: number
    inWayFromClient: number
  }>
  totalQuantity: number
  totalReserved: number
  // ... media, characteristics, etc
}
```

**СТАТИСТИКА СКЛАДА:**
- Всего товаров
- Общий остаток
- Зарезервировано
- Возвраты от клиентов
- Активные склады

#### 3.2 Общий Склад (WarehouseDashboard)
**Файл:** `src/components/warehouse/warehouse-dashboard.tsx`

**ТОВАРНЫЕ ПОЗИЦИИ:**
- **Типы:** `PRODUCT` (товар) / `CONSUMABLE` (расходник)
- **Поля:** название, артикул, описание, цена, количество
- **Опциональные:** setQuantity, ordered, inTransit, stock, sold

**ИНТЕГРАЦИЯ С РЫНКАМИ:**
- **Поддерживаемые рынки:** `sadovod`, `tyak-moscow`
- **Цветовая кодировка:**
  - Садовод: зеленый (`bg-green-500/20 text-green-300`)
  - ТЯК Москва: синий (`bg-blue-500/20 text-blue-300`)

**РЕЖИМЫ ОТОБРАЖЕНИЯ:**
- **Карточки** (`cards`) - сетка карточек товаров
- **Таблица** (`table`) - табличное представление

**СТАТУСЫ ОСТАТКОВ:**
- 0 единиц: красный (`text-red-400`)
- < 10 единиц: желтый (`text-yellow-400`)
- ≥ 10 единиц: зеленый (`text-green-400`)

#### 3.3 Фулфилмент Склад (FulfillmentWarehouse)
**Файлы:** `src/components/fulfillment-warehouse/*.tsx`

**МОДУЛЬНАЯ АРХИТЕКТУРА:**
- **Основной:** `fulfillment-warehouse-dashboard.tsx`
- **Компоненты:** StatCard, TableHeader, блоки (17 файлов)
- **Специализированные:** поставки, статистика, претензии WB

**ФУНКЦИОНАЛЬНОСТЬ:**
- Управление поставками
- Статистика склада
- Обработка возвратов WB
- Детали доставки

## 🎯 ВЫЯВЛЕННЫЕ СТАНДАРТЫ И ПАТТЕРНЫ

### 1. АРХИТЕКТУРНЫЕ ПАТТЕРНЫ

#### Glass Morphism Design
```css
glass-card: "bg-white/10 backdrop-blur border-white/20"
glass-secondary: "bg-white/5 backdrop-blur border-white/10"
glass-input: прозрачные инпуты с размытием
```

#### Цветовая Система Статусов
- **Синий:** планирование, информация, подтверждение
- **Желтый:** ожидание, предупреждения, в процессе
- **Зеленый:** успех, доставлено, высокие показатели
- **Красный:** ошибки, отмены, критические состояния
- **Фиолетовый:** премиум функции, аналитика, WB

#### Система Кэширования
```javascript
// Паттерн многоуровневого кэша:
1. Local State (Map/useState)
2. GraphQL Cache (Apollo)
3. Database Cache (через мутации)
4. External API (последний ресурс)
```

### 2. БИЗНЕС-ПРАВИЛА

#### Workflow Логистики
```
Поставщик → Логист → Фулфилмент → Маркетплейс → Клиент
    ↓         ↓          ↓            ↓          ↓
 Заказ  → Подтверждение → Отгрузка → Доставка → Возврат
```

#### Роли в Логистике
- **Поставщик:** создает заказ поставки
- **Логист:** подтверждает/отклоняет, организует доставку
- **Фулфилмент:** принимает груз, обрабатывает товары
- **Система:** автоматически отслеживает статусы

#### Экономические Правила
- Каждый тип организации имеет свой экономический модуль
- Данные кэшируются на 24 часа
- Поддерживаются пользовательские временные диапазоны
- AI-аналитика предоставляет прогнозы и рекомендации

### 3. ИНТЕГРАЦИОННЫЕ ПРАВИЛА

#### Маркетплейсы
- **Wildberries:** полная интеграция через API, поддержка складов, аналитика
- **Ozon:** поддержка в workflow, данные статистики
- **Другие:** Яндекс.Маркет, Авито (ограниченная поддержка)

#### Склады и Рынки
- **Садовод:** зеленая палитра, первичные поставщики
- **ТЯК Москва:** синяя палитра, альтернативные поставщики
- **WB Склады:** автоматическое определение из API данных

## 🚀 ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ

### Обязательные Хуки
- `useSidebar()` - управление боковой панелью
- `useAuth()` - аутентификация и права доступа
- Для WB: проверка `hasWBApiKey` перед загрузкой

### GraphQL Операции
**Логистика:**
- `GET_SUPPLY_ORDERS` - получение заказов
- `LOGISTICS_CONFIRM_ORDER` - подтверждение логистом
- `LOGISTICS_REJECT_ORDER` - отклонение с причиной

**Статистика:**
- `GET_SELLER_STATS_CACHE` - кэш статистики селлера
- `SAVE_SELLER_STATS_CACHE` - сохранение кэша
- `GET_WB_WAREHOUSE_DATA` - данные склада WB

**Склады:**
- `GET_MY_PRODUCTS` - товары пользователя
- `SAVE_WB_WAREHOUSE_CACHE` - кэш WB склада

### Внешние Сервисы
- **WildberriesService:** интеграция с API WB
- **Токены:** хранение в `organization.apiKeys`
- **Rate Limiting:** 1 секунда между запросами для WB API

## 📋 ВЫВОДЫ И РЕКОМЕНДАЦИИ

1. **Логистическая система** полноценно реализована с workflow и статусами
2. **Статистические модули** используют сложное многоуровневое кэширование
3. **Складские системы** имеют разную степень интеграции (WB - полная, остальные - базовая)
4. **Экономические модули** специализированы по типам организаций
5. **Дизайн-система** консистентна во всех модулях

**СЛЕДУЮЩИЕ ШАГИ:**
- Документировать API эндпоинты
- Описать административную систему
- Создать руководства по интеграции