Удалены файлы логики системы Sfera V и логики поставки расходников фулфилмента, так как они больше не актуальны и были заменены на более современные и оптимизированные версии. Это улучшит структуру проекта и упростит дальнейшую разработку.

This commit is contained in:
Veronika Smirnova
2025-08-01 09:45:13 +03:00
parent cefc303bea
commit 509d377c1f
2 changed files with 0 additions and 941 deletions

View File

@ -1,153 +0,0 @@
# ЛОГИКА ПОСТАВКИ РАСХОДНИКОВ ФУЛФИЛМЕНТА
> **ВНИМАНИЕ**: Данный файл содержит детальную логику процесса создания поставки расходников фулфилмента.
> Любые изменения в этом процессе должны быть согласованы и отражены в основном файле логики системы.
---
## 4. ПРОЦЕСС СОЗДАНИЯ ПОСТАВКИ РАСХОДНИКОВ ФУЛФИЛМЕНТА
### 4.1 Описание процесса
Фулфилмент-центры могут заказывать расходные материалы для своих операций напрямую у поставщиков. Этот процесс отличается от основного бизнес-процесса тем, что фулфилмент выступает как заказчик, а не как исполнитель услуг.
**ВАЖНОЕ РАЗЛИЧИЕ**: Расходники фулфилмента - это материалы, которые фулфилмент-центр заказывает для своих внутренних операций (упаковка, хранение, обработка товаров). Они отличаются от расходников селлера, которые селлер заказывает для своих товаров.
### 4.2 Участники процесса
- **Фулфилмент-центр** - заказчик расходников
- **Поставщик (WHOLESALE)** - поставщик расходных материалов
- **Логистическая компания (LOGIST)** - доставка товаров от поставщика к фулфилменту
- **Система** - автоматическая обработка заказов
### 4.3 Этапы процесса создания поставки расходников фулфилмента
#### Этап 1: Инициация заказа фулфилментом
1. **Переход к созданию заказа**: Фулфилмент заходит в раздел "Входящие поставки" → "Расходники фулфилмента" → "Создать поставку"
2. **Выбор поставщика**: Выбор контрагента с типом "WHOLESALE" из списка партнеров
3. **Поиск поставщика**: Возможность поиска по названию, полному названию или ИНН
4. **Просмотр каталога**: Просмотр товаров выбранного поставщика
#### Этап 2: Формирование заказа
5. **Поиск товаров**: Поиск нужных расходников в каталоге поставщика
6. **Выбор количества**: Указание необходимого количества для каждого товара
7. **Добавление в корзину**: Товары добавляются в список выбранных расходников фулфилмента
8. **Выбор логистики**: Выбор партнера-логиста для доставки товаров от поставщика
9. **Расчет стоимости**: Автоматический расчет общей суммы заказа
10. **Указание даты доставки**: Выбор желаемой даты поставки
#### Этап 3: Создание заказа в системе
11. **Валидация данных**: Проверка заполнения всех обязательных полей
12. **Создание SupplyOrder**: Система создает запись заказа поставки со статусом "PENDING"
13. **Указание получателя**: fulfillmentCenterId устанавливается как ID текущего фулфилмента
14. **Указание логистики**: logisticsPartnerId устанавливается как ID выбранной логистической компании
15. **Создание позиций заказа**: Создание SupplyOrderItem для каждого выбранного товара
#### Этап 4: Автоматическая обработка системой
16. **Создание расходников**: Система автоматически создает записи Supply со статусом "planned"
17. **Установка параметров**:
- Статус: "planned" (запланировано, ожидает одобрения)
- Категория: из товара или "Расходники"
- Минимальный остаток: 10% от заказанного количества
- Текущий остаток: 0 (товар еще не поступил)
18. **Привязка к организации**: Расходники создаются в организации фулфилмента
19. **Отправка уведомления**: Поставщик получает уведомление о новом заказе
#### Этап 5: Обработка поставщиком
20. **Получение заявки**: Заказ появляется в кабинете поставщика в разделе "Заявки"
21. **Рассмотрение заказа**: Поставщик может принять или отклонить заказ
22. **Изменение статуса**: При принятии статус SupplyOrder меняется на "CONFIRMED" (подтвержден поставщиком)
23. **Уведомление логистики**: После одобрения поставщиком заявка появляется в кабинете логистической компании
#### Этап 6: Обработка логистикой
24. **Получение заявки**: Заказ появляется в кабинете логистики в разделе "Заявки"
25. **Рассмотрение заявки**: Логистическая компания может подтвердить или отклонить заявку на доставку
26. **Подтверждение логистики**: При принятии логистика подтверждает возможность доставки в указанные сроки
27. **Обновление расходников**: Supply переходят в статус "confirmed" (ожидает отгрузки)
28. **Подготовка к отгрузке**: Поставщик готовит товар к отправке
#### Этап 7: Доставка и приемка
29. **Отгрузка товара** [**ПОСТАВЩИК**]: Поставщик физически отправляет товар логистической компании и **в системе нажимает кнопку "Отправить"** (статус SupplyOrder меняется с "CONFIRMED" на "IN_TRANSIT")
30. **Обновление статуса расходников** [**СИСТЕМА**]: Supply переходят в статус "in-transit" (в пути)
31. **Транспортировка** [**ЛОГИСТИКА**]: Логистическая компания доставляет товар в фулфилмент-центр
32. **Статус "IN_TRANSIT"** [**СИСТЕМА**]: Заказ переходит в статус "в пути"
33. **Приемка на фулфилменте** [**ФУЛФИЛМЕНТ**]: Менеджер фулфилмента принимает товар
34. **Обновление остатков** [**ФУЛФИЛМЕНТ**]: currentStock обновляется на фактически полученное количество
35. **Статус "DELIVERED"** [**ФУЛФИЛМЕНТ**]: Заказ завершается со статусом "доставлен"
36. **Обновление расходников** [**СИСТЕМА**]: Supply переходят в статус "in-stock" (на складе)
### 4.3.1 Результат завершения процесса
После успешного завершения процесса (статус Supply = "in-stock"):
37. **Отображение на складе** [**СИСТЕМА**]: Информация о поставке автоматически отображается в разделе **"Склад" → "Статистика расходников фулфилмента"**
38. **Отображение в расходниках фулфилмента** [**СИСТЕМА**]: Информация о поставке также отображается в подразделе **"Расходники фулфилмента"**
39. **Доступность для использования** [**ФУЛФИЛМЕНТ**]: Расходники становятся доступными для использования в операциях фулфилмент-центра
**Важно**: Статус "in-stock" (на складе) означает, что расходники физически находятся на складе фулфилмента и готовы к использованию в операционной деятельности.
### 4.4 Особенности процесса
#### 4.4.1 Отличия от основного процесса
- **Прямое взаимодействие**: Фулфилмент напрямую заказывает у поставщика
- **Самостоятельная приемка**: Фулфилмент принимает товар на свой склад
- **Управление остатками**: Автоматическое управление минимальными остатками
- **Без посредников**: Логистика может быть внешней или встроенной
#### 4.4.2 Типы расходников
- **Упаковочные материалы**: Коробки, пакеты, скотч
- **Защитные материалы**: Пупырчатая пленка, стрейч-пленка
- **Маркировочные материалы**: Этикетки, стикеры, маркеры
- **Инструменты**: Ножи, степлеры, весы
- **Расходные материалы**: Батарейки, картриджи, канцелярия
#### 4.4.3 Автоматизация
- **Автоматический расчет минимальных остатков**: 10% от заказанного количества
- **Уведомления**: Автоматические уведомления всем участникам процесса
- **Обновление данных**: Синхронизация статусов между всеми системами
- **Отчетность**: Автоматическое обновление складских отчетов
### 4.5 Интеграция с основной системой
- **Единая база контрагентов**: Использование общего справочника партнеров
- **Общие товары**: Поставщики управляют единым каталогом товаров
- **Единая система уведомлений**: Общий мессенджер для коммуникаций
- **Общая отчетность**: Интеграция с общей системой аналитики
---
## Статусы в процессе
### Статусы SupplyOrder (Заказ поставки):
- **PENDING** - Ожидает подтверждения поставщиком
- **CONFIRMED** - Подтвержден поставщиком
- **IN_TRANSIT** - В пути (логистика доставляет)
- **DELIVERED** - Доставлен на фулфилмент
- **CANCELLED** - Отменен
### Статусы Supply (Расходники):
- **planned** - Запланировано (ожидает одобрения поставщиком)
- **confirmed** - Подтверждено (ожидает отгрузки после одобрения логистикой)
- **in-transit** - В пути (товар отгружен логистической компании)
- **in-stock** - На складе (товар принят на фулфилменте и отображается в разделах "Склад" и "Расходники фулфилмента")
---
**ВАЖНО**: Данный процесс является частью общей системы управления поставками и должен соответствовать общим принципам и правилам, описанным в основном файле логики системы.
---
окумент создан на основе раздела 4 основного файла логики системы_
_Статус: СПЕЦИАЛИЗИРОВАННАЯ ЛОГИКА ПРОЦЕССА_

View File

@ -1,788 +0,0 @@
# ЛОГИКА СИСТЕМЫ SFERA V - УПРАВЛЕНИЕ БИЗНЕСОМ
> **ВНИМАНИЕ**: Данный файл содержит критически важную информацию о логике работы системы.
> Любые изменения в этом файле должны производиться только с разрешения владельца проекта.
> Файл служит эталонным источником для понимания архитектуры и бизнес-процессов системы.
---
## 1. ОБЩАЯ АРХИТЕКТУРА СИСТЕМЫ
### 1.1 Концепция платформы
**Sfera V** - это многопользовательская B2B платформа для управления цепочками поставок, объединяющая различные типы бизнеса:
- **Селлеры** (продавцы на маркетплейсах)
- **Фулфилмент-центры** (склады и логистика)
- **Поставщики** (оптовые поставщики товаров)
- **Логистические компании** (доставка товаров)
### 1.2 Технологический стек
- **Frontend**: Next.js 15, React 18, TypeScript
- **Backend**: GraphQL API, Apollo Server
- **База данных**: PostgreSQL с Prisma ORM
- **UI**: TailwindCSS, Shadcn/ui компоненты
- **Файловое хранилище**: AWS S3
- **Внешние API**: Wildberries, Ozon, DaData, SMS Aero
---
## 2. ТИПЫ ОРГАНИЗАЦИЙ И КАБИНЕТЫ
### 2.1 Типы организаций (OrganizationType)
```
SELLER - Селлер (продавец на маркетплейсах)
FULFILLMENT - Фулфилмент-центр
LOGIST - Логистическая компания
WHOLESALE - Поставщик (оптовик)
```
### 2.2 Структура кабинетов
#### 2.2.1 Админ-кабинет
- **Назначение**: Управление системой
- **Функции**:
- UI Kit (демонстрация компонентов)
- Управление пользователями
- Управление категориями товаров
- Системная аналитика
#### 2.2.2 Кабинет Селлера
- **Назначение**: Продажи на маркетплейсах
- **Модули**:
- Мои поставки (управление заказами)
- Склад WB (интеграция с Wildberries)
- Статистика продаж
- **Интеграции**: Wildberries API, Ozon API
#### 2.2.3 Кабинет Фулфилмента
- **Назначение**: Склады и обработка товаров
- **Модули**:
- Входящие поставки
- Управление складом
- Услуги фулфилмента
- Сотрудники
- Статистика операций
#### 2.2.4 Кабинет Логистики
- **Назначение**: Транспортные услуги
- **Модули**:
- Заявки на перевозки
- Управление маршрутами
#### 2.2.5 Кабинет Поставщика
- **Назначение**: Оптовые продажи
- **Модули**:
- Каталог товаров
- Отгрузки
- Управление складом
### 2.3 Общие модули (доступны всем кабинетам)
- **Мессенджер**: Коммуникации между участниками
- **Партнёры**: Управление контрагентами
- **Настройки**: Профиль организации, API ключи
---
## 3. ОСНОВНОЙ БИЗНЕС-ПРОЦЕСС ПОСТАВКИ
### 3.1 Схема процесса
```
Селлер → Маркет → Поставщик → Фулфилмент → Логистика → Селлер
```
### 3.2 Детальные этапы процесса
#### Этап 1: Создание заявки селлером
1. **Вход в маркет**: Селлер заходит в раздел "Маркет"
2. **Выбор категории**: Выбор нужной категории товаров
3. **Выбор товара**: Выбор конкретного продукта из каталога
4. **Указание количества**: Определение необходимого объема
5. **Выбор услуг**: Выбор услуг фулфилмента и / или расходников фулфилмента и / или расходников селлера
6. **Создание заявки**: Формирование заявки на поставку
#### Этап 2: Обработка заявки системой
7. **Сохранение у селлера**: Заявка появляется в "Мои поставки" → "Все" → "Товар" и "Товар"
8. **Дублирование поставщику**: Заявка автоматически отправляется поставщику
#### Этап 3: Одобрение поставщиком
9. **Рассмотрение заявки**: Поставщик видит заявку в разделе "Заявки"
10. **Одобрение**: Поставщик одобряет или отклоняет заявку
11. **Обновление статуса**: Статус меняется у всех участников
#### Этап 4: Логистика
12. **Подготовка к отгрузке**: Поставщик готовит товар к отправке
13. **Создание заявки в фулфилмент**: Заявка появляется в кабинете фулфилмента
14. **Запрос логистики**: Заявка передается в логистическую компанию
15. **Подтверждение логистикой**: Логист подтверждает возможность доставки
16. **Физическая доставка**: Транспортировка товара на фулфилмент
#### Этап 5: Обработка на фулфилменте
17. **Приемка товара**: Менеджер фулфилмента принимает груз
18. **Ввод данных хранения**: Указание места хранения, статус "Принято"
19. **Перенос в подготовку**: Товар переходит в раздел "Подготовка"
20. **Обновление места хранения**: Указание нового места хранения
21. **Перенос в работу**: Товар переходит в подраздел "В работе"
22. **Контроль качества**: Проверка количества и качества товара
23. **Завершение работ**: При нажатии "Выполнено" товар переходит в "Выполнено"
#### Этап 6: Завершение
24. **Обновление статуса у селлера**: Селлер получает уведомление о готовности товара
---
## 4. ПРОЦЕСС СОЗДАНИЯ ПОСТАВКИ РАСХОДНИКОВ ФУЛФИЛМЕНТА
### 4.1 Описание процесса
Фулфилмент-центры могут заказывать расходные материалы для своих операций напрямую у поставщиков. Этот процесс отличается от основного бизнес-процесса тем, что фулфилмент выступает как заказчик, а не как исполнитель услуг.
**ВАЖНОЕ РАЗЛИЧИЕ**: Расходники фулфилмента - это материалы, которые фулфилмент-центр заказывает для своих внутренних операций (упаковка, хранение, обработка товаров). Они отличаются от расходников селлера, которые селлер заказывает для своих товаров.
### 4.2 Участники процесса
- **Фулфилмент-центр** - заказчик расходников
- **Поставщик (WHOLESALE)** - поставщик расходных материалов
- **Логистическая компания (LOGIST)** - доставка товаров от поставщика к фулфилменту
- **Система** - автоматическая обработка заказов
### 4.3 Этапы процесса создания поставки расходников фулфилмента
#### Этап 1: Инициация заказа фулфилментом
1. **Переход к созданию заказа**: Фулфилмент заходит в раздел "Входящие поставки" → "Расходники фулфилмента" → "Создать поставку"
2. **Выбор поставщика**: Выбор контрагента с типом "WHOLESALE" из списка партнеров
3. **Поиск поставщика**: Возможность поиска по названию, полному названию или ИНН
4. **Просмотр каталога**: Просмотр товаров выбранного поставщика
#### Этап 2: Формирование заказа
5. **Поиск товаров**: Поиск нужных расходников в каталоге поставщика
6. **Выбор количества**: Указание необходимого количества для каждого товара
7. **Добавление в корзину**: Товары добавляются в список выбранных расходников фулфилмента
8. **Выбор логистики**: Выбор партнера-логиста для доставки товаров от поставщика
9. **Расчет стоимости**: Автоматический расчет общей суммы заказа
10. **Указание даты доставки**: Выбор желаемой даты поставки
#### Этап 3: Создание заказа в системе
11. **Валидация данных**: Проверка заполнения всех обязательных полей
12. **Создание SupplyOrder**: Система создает запись заказа поставки со статусом "PENDING"
13. **Указание получателя**: fulfillmentCenterId устанавливается как ID текущего фулфилмента
14. **Указание логистики**: logisticsPartnerId устанавливается как ID выбранной логистической компании
15. **Создание позиций заказа**: Создание SupplyOrderItem для каждого выбранного товара
#### Этап 4: Автоматическая обработка системой
16. **Создание расходников**: Система автоматически создает записи Supply со статусом "planned"
17. **Установка параметров**:
- Статус: "planned" (запланировано, ожидает одобрения)
- Категория: из товара или "Расходники"
- Минимальный остаток: 10% от заказанного количества
- Текущий остаток: 0 (товар еще не поступил)
18. **Привязка к организации**: Расходники создаются в организации фулфилмента
19. **Отправка уведомления**: Поставщик получает уведомление о новом заказе
#### Этап 5: Обработка поставщиком
20. **Получение заявки**: Заказ появляется в кабинете поставщика в разделе "Заявки"
21. **Рассмотрение заказа**: Поставщик может принять или отклонить заказ
22. **Изменение статуса**: При принятии статус SupplyOrder меняется на "CONFIRMED" (подтвержден поставщиком)
23. **Уведомление логистики**: После одобрения поставщиком заявка появляется в кабинете логистической компании
#### Этап 6: Обработка логистикой
24. **Получение заявки**: Заказ появляется в кабинете логистики в разделе "Заявки"
25. **Рассмотрение заявки**: Логистическая компания может подтвердить или отклонить заявку на доставку
26. **Подтверждение логистики**: При принятии логистика подтверждает возможность доставки в указанные сроки
27. **Обновление расходников**: Supply переходят в статус "confirmed" (ожидает отгрузки)
28. **Подготовка к отгрузке**: Поставщик готовит товар к отправке
#### Этап 7: Доставка и приемка
29. **Отгрузка товара**: Поставщик отправляет товар логистической компании
30. **Обновление статуса расходников**: Supply переходят в статус "in-transit" (в пути)
31. **Транспортировка**: Логистическая компания доставляет товар в фулфилмент-центр
32. **Статус "IN_TRANSIT"**: Заказ переходит в статус "в пути"
33. **Приемка на фулфилменте**: Менеджер фулфилмента принимает товар
34. **Обновление остатков**: currentStock обновляется на фактически полученное количество
35. **Статус "DELIVERED"**: Заказ завершается со статусом "доставлен"
36. **Обновление расходников**: Supply переходят в статус "in-stock" (на складе)
### 4.4 Особенности процесса
#### 4.4.1 Отличия от основного процесса
- **Прямое взаимодействие**: Фулфилмент напрямую заказывает у поставщика
- **Самостоятельная приемка**: Фулфилмент принимает товар на свой склад
- **Управление остатками**: Автоматическое управление минимальными остатками
- **Без посредников**: Логистика может быть внешней или встроенной
#### 4.4.2 Типы расходников
- **Упаковочные материалы**: Коробки, пакеты, скотч
- **Защитные материалы**: Пупырчатая пленка, стрейч-пленка
- **Маркировочные материалы**: Этикетки, стикеры, маркеры
- **Инструменты**: Ножи, степлеры, весы
- **Расходные материалы**: Батарейки, картриджи, канцелярия
#### 4.4.3 Автоматизация
- **Автоматический расчет минимальных остатков**: 10% от заказанного количества
- **Уведомления**: Автоматические уведомления всем участникам процесса
- **Обновление данных**: Синхронизация статусов между всеми системами
- **Отчетность**: Автоматическое обновление складских отчетов
### 4.5 Интеграция с основной системой
- **Единая база контрагентов**: Использование общего справочника партнеров
- **Общие товары**: Поставщики управляют единым каталогом товаров
- **Единая система уведомлений**: Общий мессенджер для коммуникаций
- **Общая отчетность**: Интеграция с общей системой аналитики
---
## 5. МОДЕЛЬ ДАННЫХ
### 5.1 Основные сущности
#### 5.1.1 Organization (Организация)
```sql
- id: String (CUID)
- inn: String (уникальный)
- type: OrganizationType
- name, fullName: String
- address, addressFull: String
- apiKeys: ApiKey[]
- employees: Employee[]
- products: Product[]
- services: Service[]
```
#### 5.1.2 Product (Товар)
```sql
- id: String (CUID)
- name: String
- article: String
- price: Decimal
- quantity: Int
- type: ProductType (PRODUCT/CONSUMABLE)
- categoryId: String
- organizationId: String
- images: Json
```
#### 5.1.3 Supply (Поставка)
```sql
- id: String (CUID)
- name: String
- price: Decimal
- quantity: Int
- status: String (planned/in-transit/delivered/in-stock)
- organizationId: String
```
#### 5.1.4 SupplyOrder (Заказ поставки)
```sql
- id: String (CUID)
- partnerId: String
- status: SupplyOrderStatus
- totalAmount: Decimal
- deliveryDate: DateTime
- items: SupplyOrderItem[]
```
### 5.2 Статусы заказов
```
PENDING - Ожидает подтверждения
CONFIRMED - Подтвержден
IN_TRANSIT - В пути
DELIVERED - Доставлен
CANCELLED - Отменен
```
---
## 5. ПРОЦЕССЫ СОЗДАНИЯ ПОСТАВОК СЕЛЛЕРАМИ
### 5.1 Описание процессов
Селлеры имеют несколько способов создания поставок в зависимости от источника товаров и типа поставки.
### 5.2 Типы поставок селлеров
#### 5.2.1 Поставка через карточки товаров
**Процесс**: Селлер → Мои поставки → Создать поставку → Карточки
1. **Выбор типа**: Селлер выбирает "Карточки" как источник товаров
2. **Интеграция с WB**: Система загружает карточки товаров из Wildberries API
3. **Выбор товаров**: Селлер выбирает нужные карточки из своего каталога WB
4. **Настройка количества**: Указание количества для каждой карточки
5. **Выбор услуг**: Выбор услуг фулфилмента и расходников
6. **Выбор фулфилмента**: Выбор фулфилмент-центра для обработки
7. **Указание даты**: Установка даты поставки
8. **Создание поставки**: Формирование WildberriesSupply в системе
#### 5.2.2 Поставка через поставщиков
**Процесс**: Селлер → Мои поставки → Создать поставку → Поставщик
1. **Выбор типа**: Селлер выбирает "Поставщик" как источник товаров
2. **Выбор поставщика**: Выбор из списка контрагентов типа WHOLESALE
3. **Просмотр каталога**: Просмотр товаров выбранного поставщика
4. **Выбор товаров**: Добавление товаров в корзину с указанием количества
5. **Выбор фулфилмента**: Выбор фулфилмент-центра для доставки
6. **Создание заказа**: Формирование SupplyOrder через основной процесс
#### 5.2.3 Поставка расходников селлера
**Процесс**: Селлер → Расходники → Создать поставку
1. **Выбор поставщика**: Выбор поставщика расходников (WHOLESALE)
2. **Выбор расходников**: Выбор необходимых расходных материалов **для селлера**
3. **Выбор фулфилмента**: Обязательный выбор фулфилмент-центра для доставки
4. **Создание заказа**: Формирование SupplyOrder с типом CONSUMABLE
**Важно**: Расходники селлера отличаются от расходников фулфилмента назначением и получателем. Расходники селлера заказываются селлером для своих товаров, но доставляются в фулфилмент-центр.
### 5.3 Особенности процессов селлера
#### 5.3.1 Прямое создание поставки
- **DirectSupplyCreation**: Создание поставки с выбранными товарами
- **Расчет стоимости**: Автоматический расчет общей стоимости товаров и услуг
- **Валидация**: Проверка наличия всех обязательных полей
- **Интеграция**: Сохранение данных в WildberriesSupply и WildberriesSupplyCard
#### 5.3.2 Управление объемами и весом
- **Расчет объема**: Автоматический расчет объема товаров для логистики
- **Количество мест**: Определение количества грузовых мест
- **Стоимость услуг**: Расчет стоимости услуг фулфилмента и логистики
---
## 6. ПРОЦЕССЫ УПРАВЛЕНИЯ ПАРТНЕРАМИ
### 6.1 Описание системы партнерства
Система партнерства позволяет организациям находить друг друга, отправлять заявки на сотрудничество и управлять контрагентами.
### 6.2 Процесс поиска партнеров
#### 6.2.1 Поиск в маркете
1. **Переход в маркет**: Организация заходит в раздел "Маркет"
2. **Выбор типа партнера**: Выбор вкладки (Фулфилмент, Селлеры, Логистика, Поставщики)
3. **Поиск организаций**: Использование SEARCH_ORGANIZATIONS запроса
4. **Фильтрация**: Поиск по названию, ИНН, адресу
5. **Просмотр карточек**: Изучение информации о потенциальных партнерах
#### 6.2.2 Отправка заявки на партнерство
1. **Выбор организации**: Клик на карточку интересующей организации
2. **Отправка заявки**: Нажатие кнопки "Отправить заявку"
3. **Добавление сообщения**: Опциональное сообщение к заявке
4. **Создание запроса**: Система создает CounterpartyRequest со статусом PENDING
5. **Уведомление**: Получатель видит входящую заявку в разделе "Партнеры"
#### 6.2.3 Обработка заявок
1. **Просмотр заявок**: Заявки отображаются в разделе "Партнеры" → "Мои контрагенты"
2. **Принятие заявки**: Изменение статуса на ACCEPTED, создание связи Counterparty
3. **Отклонение заявки**: Изменение статуса на REJECTED
4. **Автоматическое обновление**: Обновление списков во всех связанных компонентах
### 6.3 Управление контрагентами
#### 6.3.1 Типы контрагентов
- **FULFILLMENT**: Фулфилмент-центры для обработки товаров
- **SELLER**: Селлеры для продажи товаров
- **LOGIST**: Логистические компании для доставки
- **WHOLESALE**: Поставщики товаров и расходников
#### 6.3.2 Функции управления
- **Просмотр списка**: Все принятые контрагенты в одном разделе
- **Поиск и фильтрация**: Поиск по различным критериям
- **Статусы заявок**: Отслеживание входящих и исходящих заявок
- **Интеграция с процессами**: Использование контрагентов в поставках
---
## 7. ПРОЦЕССЫ УПРАВЛЕНИЯ СКЛАДАМИ
### 7.1 Типы складских систем
#### 7.1.1 Собственный склад организации
**Процесс**: Склад → Управление товарами
1. **Создание товаров**: Добавление новых товаров в каталог
2. **Редактирование**: Изменение характеристик товаров
3. **Управление остатками**: Отслеживание количества товаров
4. **Категоризация**: Привязка к категориям товаров
5. **Медиафайлы**: Загрузка изображений товаров
#### 7.1.2 Склад Wildberries (для селлеров)
**Процесс**: Склад WB → Просмотр остатков
1. **Интеграция с WB API**: Получение данных через Wildberries API
2. **Загрузка карточек**: Получение всех карточек товаров селлера
3. **Получение аналитики**: Индивидуальные запросы по каждому nmId
4. **Комбинирование данных**: Объединение карточек с данными остатков
5. **Отображение складов**: Группировка по складам WB
6. **Статистика**: Расчет общих показателей по остаткам
#### 7.1.3 Фулфилмент склады
**Процесс**: Фулфилмент → Склад → Управление
1. **Приемка товаров**: Получение товаров от поставщиков
2. **Размещение**: Указание места хранения товаров
3. **Обработка**: Подготовка товаров к отправке
4. **Контроль качества**: Проверка товаров на брак
5. **Отгрузка**: Подготовка к отправке селлерам
### 7.2 Интеграция складских процессов
#### 7.2.1 Синхронизация остатков
- **Автоматическое обновление**: Регулярная синхронизация с внешними API
- **Кэширование**: Сохранение данных для быстрого доступа
- **Уведомления**: Оповещения о критических остатках
#### 7.2.2 Аналитика складов
- **Статистика по товарам**: Общее количество, остатки, резерв
- **Статистика по складам**: Активные склады, загруженность
- **Товары в пути**: Отслеживание товаров в доставке
---
## 8. ПРОЦЕССЫ УПРАВЛЕНИЯ СОТРУДНИКАМИ
### 8.1 Система управления персоналом
#### 8.1.1 Добавление сотрудников
1. **Создание профиля**: Ввод основных данных сотрудника
2. **Документы**: Загрузка паспортных данных и фотографий
3. **Контакты**: Указание телефонов, email, мессенджеров
4. **Должность и зарплата**: Установка позиции и оплаты
5. **Экстренные контакты**: Контакты на случай чрезвычайных ситуаций
#### 8.1.2 Управление статусами
**Статусы сотрудников**:
- **ACTIVE**: Активно работает
- **VACATION**: В отпуске
- **SICK**: На больничном
- **FIRED**: Уволен
#### 8.1.3 Система табельного учета
1. **Создание расписания**: Планирование рабочих дней
2. **Отметка статусов**: Ежедневная отметка статуса работы
3. **Типы дней**:
- **WORK**: Рабочий день (8 часов)
- **WEEKEND**: Выходной (0 часов)
- **VACATION**: Отпуск (8 часов)
- **SICK**: Больничный (8 часов)
- **ABSENT**: Отсутствие (0 часов)
4. **Автоматический расчет**: Подсчет отработанных часов
5. **Отчетность**: Генерация табелей учета рабочего времени
### 8.2 Интеграция с бизнес-процессами
- **Назначение ответственных**: Привязка сотрудников к заказам и процессам
- **Уведомления**: Система уведомлений для сотрудников
- **Права доступа**: Разграничение доступа по ролям
---
## 9. ПРОЦЕССЫ ЛОГИСТИКИ
### 9.1 Управление перевозками
#### 9.1.1 Создание маршрутов
1. **Планирование маршрута**: Определение точек отправления и назначения
2. **Расчет параметров**: Расстояние, время в пути, стоимость
3. **Назначение груза**: Привязка конкретных товаров к маршруту
4. **Статусы маршрутов**:
- **planned**: Запланировано
- **in_transit**: В пути
- **delivered**: Доставлено
- **cancelled**: Отменено
#### 9.1.2 Отслеживание доставок
1. **Мониторинг статусов**: Отслеживание текущего состояния доставок
2. **Уведомления**: Автоматические уведомления об изменении статусов
3. **Аналитика**: Статистика по доставкам и эффективности
4. **Интеграция**: Связь с процессами фулфилмента и поставок
### 9.2 Типы логистических операций
- **Доставка от поставщика к фулфилменту**: Входящая логистика
- **Доставка от фулфилмента к селлеру**: Исходящая логистика
- **Межскладские перемещения**: Внутренняя логистика
- **Возвраты**: Обратная логистика
---
## 10. СИСТЕМА АУТЕНТИФИКАЦИИ
### 10.1 Процесс регистрации/входа
1. **Ввод телефона**: Пользователь вводит номер телефона
2. **SMS-код**: Система отправляет код подтверждения через SMS Aero
3. **Выбор типа кабинета**: Пользователь выбирает тип организации
4. **Ввод ИНН**: Для B2B пользователей обязательно указание ИНН
5. **Проверка через DaData**: Автоматическое получение данных организации
6. **API ключи маркетплейсов**: Для селлеров - настройка интеграций
7. **Подтверждение**: Завершение регистрации
### 10.2 Типы аутентификации
- **Пользователи**: JWT токены, хранение в localStorage
- **Админы**: Отдельная система с админскими токенами
- **API интеграции**: Bearer токены для внешних сервисов
---
## 11. ВНЕШНИЕ ИНТЕГРАЦИИ
### 11.1 Wildberries API
- **Назначение**: Получение данных по складам и товарам
- **Эндпоинты**:
- `/ping` - проверка валидности ключа
- `/api/v1/seller-info` - информация о продавце
- `/api/v1/stocks` - остатки товаров
- `/api/v1/warehouses` - список складов
### 11.2 Ozon API
- **Назначение**: Интеграция с маркетплейсом Ozon
- **Аутентификация**: API ключ + Client ID
### 11.3 DaData API
- **Назначение**: Получение информации об организациях по ИНН
- **Данные**: Реквизиты, адреса, статусы организаций
### 11.4 SMS Aero API
- **Назначение**: Отправка SMS для аутентификации
- **Аутентификация**: HTTP Basic Auth (email + API key)
### 11.5 AWS S3
- **Назначение**: Хранение файлов (изображения, документы, голосовые сообщения)
---
## 12. СИСТЕМА СООБЩЕНИЙ
### 12.1 Типы сообщений
```
TEXT - Текстовые сообщения
VOICE - Голосовые сообщения
IMAGE - Изображения
FILE - Файлы
```
### 12.2 Функциональность
- Чаты между организациями
- Прикрепление файлов
- Голосовые сообщения
- История переписки
---
## 13. УПРАВЛЕНИЕ СОТРУДНИКАМИ (СТАРОЕ)
### 13.1 Статусы сотрудников
```
ACTIVE - Активный
VACATION - В отпуске
SICK - На больничном
FIRED - Уволен
```
### 13.2 Система расписания
```
WORK - Рабочий день
WEEKEND - Выходной
VACATION - Отпуск
SICK - Больничный
ABSENT - Отсутствие
```
---
## 14. СИСТЕМА УСЛУГ И РАСХОДНИКОВ
### 14.1 Типы продуктов
```
PRODUCT - Основной товар
CONSUMABLE - Расходные материалы
```
**ВАЖНОЕ ПРАВИЛО**: В системе существуют два различных типа расходников:
- **Расходники селлера** - расходные материалы, которые заказывает селлер для своих нужд
- **Расходники фулфилмента** - расходные материалы, которые заказывает фулфилмент-центр для своих операций
Эти типы расходников имеют разные процессы заказа, разных получателей и разное назначение. В системе не должно быть просто "расходники" без указания принадлежности.
### 14.2 Услуги фулфилмента
- Приемка товара
- Хранение
- Упаковка
- Отгрузка
- Контроль качества
---
## 15. СИСТЕМА УВЕДОМЛЕНИЙ И СТАТУСОВ
### 15.1 Отслеживание изменений
- Все изменения статусов синхронизируются между кабинетами
- Участники процесса получают уведомления о важных событиях
- История изменений сохраняется для аудита
### 15.2 Критические точки процесса
1. Одобрение заявки поставщиком
2. Подтверждение логистикой
3. Приемка товара на фулфилменте
4. Завершение обработки товара
---
## 16. БЕЗОПАСНОСТЬ И ДОСТУПЫ
### 16.1 Разграничение доступа
- Каждый тип организации видит только свои разделы
- Общие модули (мессенджер, партнеры, настройки) доступны всем
- Админ имеет полный доступ к системе
### 16.2 Защита данных
- JWT токены с ограниченным временем жизни
- Валидация всех входящих данных
- Логирование критических операций
---
## 17. ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ
### 17.1 Автоматическая настройка
При первом запуске система автоматически:
- Создает админа (admin/admin123)
- Инициализирует 20 базовых категорий товаров
- Настраивает базовую структуру БД
### 17.2 Команды управления
```bash
npm run db:seed # Инициализация БД
npm run db:reset # Полный сброс БД
npm run postinstall # Генерация Prisma Client
```
---
## 18. ОСОБЕННОСТИ РЕАЛИЗАЦИИ
### 18.1 Адаптивность
- Система поддерживает различные размеры экранов
- Мобильная версия для основных функций
- Прогрессивные веб-приложения (PWA) возможности
### 18.2 Производительность
- Кэширование данных маркетплейсов
- Оптимизированные GraphQL запросы
- Ленивая загрузка компонентов
### 18.3 Масштабируемость
- Модульная архитектура
- Возможность добавления новых типов организаций
- Расширяемая система интеграций
---
## 19. КРИТИЧЕСКИ ВАЖНЫЕ МОМЕНТЫ
### 19.1 Синхронизация статусов
Система должна обеспечивать консистентность данных между всеми участниками процесса. При изменении статуса в одном кабинете, изменения должны отражаться во всех связанных кабинетах.
### 19.2 Обработка ошибок API
Все внешние интеграции должны иметь fallback механизмы и graceful degradation при недоступности внешних сервисов.
### 19.3 Аудит операций
Все критические операции (создание заказов, изменение статусов, финансовые операции) должны логироваться для возможности аудита.
### 19.4 Разделение типов расходников
**КРИТИЧЕСКИ ВАЖНО**: В системе должно быть четкое разделение между расходниками селлера и расходниками фулфилмента:
- **Расходники селлера**: Заказываются селлером, доставляются в фулфилмент-центр, используются для товаров селлера
- **Расходники фулфилмента**: Заказываются фулфилмент-центром, доставляются на склад фулфилмента, используются для внутренних операций фулфилмента
Недопустимо использование общего термина "расходники" без указания принадлежности. Это может привести к ошибкам в учете, доставке и использовании материалов.
---
**ВНИМАНИЕ**: Данная логика является основой для всех разработок в системе.
Любые изменения в бизнес-процессах должны быть отражены в этом документе.
Разработчики должны использовать этот документ как источник истины при реализации новых функций.
---
окумент создан: $(date)_
_Версия системы: Sfera V_
_Статус: ЗАЩИЩЕН ОТ ИЗМЕНЕНИЙ БЕЗ РАЗРЕШЕНИЯ_