diff --git a/CLAUDE.md b/CLAUDE.md
deleted file mode 100644
index 19fb48a..0000000
--- a/CLAUDE.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# СИСТЕМНЫЕ ПРАВИЛА ДЛЯ CLAUDE CODE
-
-## 🚨 ОБЯЗАТЕЛЬНЫЕ ФАЙЛЫ ДЛЯ ПРОВЕРКИ
-
-**ПЕРЕД ЛЮБЫМ ИЗМЕНЕНИЕМ КОДА ВСЕГДА ЧИТАТЬ:**
-
-1. **`development-checklist.md`** - Критические проверки и запреты
-2. **`rules-unified.md`** - Полная база знаний системы (v4.0)
-3. **`fulfillment-cabinet-rules.md`** - Правила кабинета фулфилмента
-4. **`visual-design-rules.md`** - Правила визуального дизайна
-
-> **Архивированы**: `rules.md`, `rules1.md`, `rules2.md` → `archive/`
-
-## 🔄 WORKFLOW РАЗРАБОТКИ
-
-### Шаг 1: Анализ задачи
-- [ ] Прочитать `development-checklist.md`
-- [ ] Проверить применимые правила из всех файлов правил
-- [ ] Убедиться что задача не нарушает критические запреты
-
-### Шаг 2: Планирование
-- [ ] Использовать TodoWrite для планирования задач
-- [ ] Проверить соответствие архитектуре системы
-- [ ] Учесть все обязательные проверки
-
-### Шаг 3: Реализация
-- [ ] Следовать техническим правилам (GraphQL, TypeScript)
-- [ ] Соблюдать систему партнерства и типизацию
-- [ ] Добавлять необходимое логирование
-
-### Шаг 4: Проверка
-- [ ] Проверить все пункты checklist'а
-- [ ] Протестировать функциональность
-- [ ] Убедиться в отсутствии нарушений запретов
-
-## 🎯 КЛЮЧЕВЫЕ ПРИНЦИПЫ
-
-1. **НЕ ПРЕДПОЛАГАТЬ** - всегда уточнять при сомнениях
-2. **ПРОВЕРЯТЬ СХЕМЫ** - GraphQL и Prisma должны соответствовать коду
-3. **СЛЕДОВАТЬ WORKFLOW** - не нарушать последовательность статусов
-4. **ДОКУМЕНТИРОВАТЬ** - обновлять правила при решении проблем
-
-## 📋 КРИТИЧЕСКИЕ ФАЙЛЫ
-
-### Файлы с правилами (ВСЕГДА ПРОВЕРЯТЬ):
-- `development-checklist.md` - ОБЯЗАТЕЛЬНЫЕ проверки
-- `rules-unified.md` - Полная база знаний системы (v4.0)
-- `fulfillment-cabinet-rules.md` - Правила кабинета фулфилмента
-- `visual-design-rules.md` - Правила визуального дизайна
-
-### Технические файлы:
-- `prisma/schema.prisma` - Схема базы данных
-- `src/graphql/typedefs.ts` - GraphQL схема
-- `src/graphql/resolvers.ts` - GraphQL резолверы
-
-## 🚨 НАПОМИНАНИЕ
-
-**ЭТОТ ФАЙЛ СЛУЖИТ ПОСТОЯННЫМ НАПОМИНАНИЕМ О НЕОБХОДИМОСТИ ПРОВЕРКИ ВСЕХ ФАЙЛОВ С ПРАВИЛАМИ ПЕРЕД КАЖДЫМ ИЗМЕНЕНИЕМ КОДА!**
\ No newline at end of file
diff --git a/archive/rules-v1.0.md b/archive/rules-v1.0.md
deleted file mode 100644
index a90f5ac..0000000
--- a/archive/rules-v1.0.md
+++ /dev/null
@@ -1,813 +0,0 @@
-# ПРАВИЛА СИСТЕМЫ СКЛАДА ПОСТАВЩИКА
-
-> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данные из этого файла могут быть удалены только с разрешения пользователя. Все изменения должны согласовываться.
-
-## 🔤 ТЕРМИНЫ СИСТЕМЫ
-> Для людей → `В коде`
-- ТОВАР → `PRODUCT`
-- РАСХОДНИКИ → `CONSUMABLE`
-- БРАК → `DEFECT` *(планируется)*
-- ПРОДУКТ → `FINISHED_PRODUCT` *(планируется)*
-
-## 1. 🎯 ОСНОВНЫЕ ПРИНЦИПЫ
-
-### 1.0 Структура системы по кабинетам
-
-**🏢 КАБИНЕТ ПОСТАВЩИКА** - управляет созданием и поставкой:
-
-- **ТОВАР** - базовые товары от поставщика
-- **РАСХОДНИКИ** - материалы и вспомогательные товары
-
-**🏭 КАБИНЕТ ФУЛФИЛМЕНТА** - принимает, обрабатывает и управляет всеми типами:
-
-- **ТОВАР** - базовые товары от поставщиков (принятые на склад)
-- **БРАК** - товары с дефектами (производные от товара)
-- **ПРОДУКТ** - готовые к продаже товары (производные от товара)
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
-
-### 1.1 Типизация предметов
-
-- **ОБЯЗАТЕЛЬНО**: Каждый предмет должен иметь один из следующих типов:
-
-**ТИПЫ ПРЕДМЕТОВ ПО КАБИНЕТАМ:**
-
-**🏢 КАБИНЕТ ПОСТАВЩИКА:**
-
-1. **ТОВАР** (`PRODUCT`) - базовый тип товара от поставщика
-2. **РАСХОДНИКИ** (`CONSUMABLE`) - материалы и вспомогательные товары от поставщика
-
-**🏭 КАБИНЕТ ФУЛФИЛМЕНТА:**
-
-1. **ТОВАР** (`PRODUCT`) - базовые товары от поставщиков (принятые на склад)
-2. **БРАК** (`DEFECT` - планируется) - производная от товара (товар с дефектами)
-3. **ПРОДУКТ** (`FINISHED_PRODUCT` - планируется) - готовый к продаже товар
-4. **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-5. **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
-
-- **ЗАПРЕЩЕНО**: Создание предметов без указания типа
-- **ВАЖНО**: Товар ≠ Продукт (это разные сущности в системе)
-- **ПРАВИЛО**: Тип определяет логику обработки, отображения и workflow в системе
-- **КЛАССИФИКАЦИЯ РАСХОДНИКОВ**: Поставщик создает просто "РАСХОДНИКИ". При заказе, в зависимости от типа заказчика, они становятся:
- - **Расходники фулфилмента** - если заказывает фулфилмент-центр
- - **Расходники селлеров** - если заказывает селлер
-
-### 1.2 Правила производных типов
-
-- **БРАК**:
-
- - **ПРОИСХОЖДЕНИЕ**: Создается на основе существующего товара
- - **СВЯЗЬ**: Обязательная связь с родительским товаром
- - **УЧЕТ**: Отдельный учет в статистике потерь
- - **WORKFLOW**: Особый процесс списания и утилизации
-
-- **ПРОДУКТ**:
-
- - **ПРОИСХОЖДЕНИЕ**: Создается на основе товара после обработки
- - **ОТЛИЧИЕ**: Товар - сырье, Продукт - готовая единица к продаже
- - **СТАТУС**: Имеет собственный жизненный цикл
- - **УЧЕТ**: Отдельная статистика от базового товара
-
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА**:
-
- - **НАЗНАЧЕНИЕ**: Для внутренних операций фулфилмент-центра
- - **ЗАКАЗЧИК**: Фулфилмент-центр заказывает для себя
- - **УЧЕТ**: В статистике операционных расходов фулфилмента
-
-- **РАСХОДНИКИ СЕЛЛЕРОВ**:
- - **НАЗНАЧЕНИЕ**: Для товаров и операций селлеров
- - **ЗАКАЗЧИК**: Селлер заказывает через фулфилмент
- - **УЧЕТ**: В статистике расходов селлера
-
-### 1.3 Уникальность артикулов
-
-- **ОБЯЗАТЕЛЬНО**: Артикул должен быть уникальным в рамках организации
-- **ПРАВИЛО**: Система должна автоматически генерировать артикул СФ при создании
-- **ФОРМАТ**: `СФ-{ТИП}-{КОД_КАТЕГОРИИ}-{КОД_ОРГАНИЗАЦИИ}-{TIMESTAMP}-{RANDOM}`
-- **ТИПЫ В АРТИКУЛЕ**:
- - `TOV` - Товар
- - `BRK` - Брак
- - `R` - Расходники (классифицируются при заказе)
- - `PRD` - Продукт
-
-### 1.4 Обязательные поля
-
-- **КРИТИЧЕСКИ ВАЖНО**: Название, артикул, цена > 0, тип предмета
-- **ОБЯЗАТЕЛЬНО**: Количество (может быть 0 для предзаказа)
-- **ДЛЯ ПРОИЗВОДНЫХ ТИПОВ**: Обязательная связь с родительским предметом (для брака и продукта)
-- **ДЛЯ РАСХОДНИКОВ**: Обязательно указание подтипа (фулфилмента или селлеров)
-- **РЕКОМЕНДУЕТСЯ**: Описание, категория, основное изображение
-
-## 2. 🔒 ПРАВИЛА ДОСТУПА И БЕЗОПАСНОСТИ
-
-### 2.1 Контроль доступа
-
-- **ЗАПРЕЩЕНО**: Поставщик не может добавлять собственные предметы в корзину
-- **ПРАВИЛО**: Только активные предметы (`isActive: true`) отображаются в маркете
-- **ОГРАНИЧЕНИЕ**: Доступ к заказам только для участников процесса (создатель, поставщик, фулфилмент)
-- **ПО ТИПАМ ПРЕДМЕТОВ**:
- - **ТОВАР**: Доступен всем типам организаций для заказа
- - **БРАК**: Доступен только для просмотра, заказ запрещен
- - **РАСХОДНИКИ**: Доступны всем типам организаций для заказа
- - При заказе фулфилмент-центром классифицируются как "расходники фулфилмента"
- - При заказе селлером классифицируются как "расходники селлеров"
- - **ПРОДУКТ**: Доступен для заказа после подтверждения готовности
-
-### 2.2 Проверка остатков
-
-- **ОБЯЗАТЕЛЬНО**: Проверять наличие предмета перед добавлением в корзину
-- **ПРАВИЛО**: Количество в заказе не может превышать остаток на складе
-- **ИСКЛЮЧЕНИЕ**: Предзаказы (если реализована функция)
-- **ОСОБЕННОСТИ ПО ТИПАМ**:
- - **ТОВАР/ПРОДУКТ**: Стандартная проверка остатков
- - **БРАК**: Остатки учитываются, но заказ запрещен
- - **РАСХОДНИКИ**: Проверка с учетом резервирования под активные заказы
-
-### 2.3 Валидация данных
-
-- **ОБЯЗАТЕЛЬНО**: Проверка корректности всех числовых значений (цена, вес, количество)
-- **ПРАВИЛО**: Цена должна быть больше 0
-- **ОГРАНИЧЕНИЕ**: Вес и габариты должны быть положительными числами
-
-## 3. 📊 ПРАВИЛА СТАТИСТИКИ И АНАЛИТИКИ
-
-### 3.1 Актуализация данных
-
-- **КРИТИЧЕСКИ ВАЖНО**: При изменении количества в карточке данные актуализируются во всей системе
-- **ПРАВИЛО**: Статистика обновляется в реальном времени
-- **ОБЯЗАТЕЛЬНО**: Отслеживание изменений для аналитики
-
-### 3.2 Отображение метрик
-
-- **ОБЯЗАТЕЛЬНО**: Блок статистики в верхней части раздела склад
-- **СОСТАВ**: Общие остатки, заказано, в пути, остаток, продано
-- **ПРАВИЛО**: Подсвечивать предметы с остатками ниже критического уровня
-- **РАЗДЕЛЕНИЕ ПО ТИПАМ И КАБИНЕТАМ**:
-
-**В КАБИНЕТЕ ПОСТАВЩИКА**:
-
-- **ТОВАРЫ**: Общая статистика товаров поставщика
-- **РАСХОДНИКИ**: Материалы и вспомогательные товары (классифицируются при заказе)
-
-**В КАБИНЕТЕ ФУЛФИЛМЕНТА**:
-
-- **ТОВАРЫ**: Базовые товары от поставщиков (принятые на склад)
-- **ПРОДУКТЫ**: Отдельный блок готовой продукции
-- **БРАК**: Статистика потерь и списаний
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА**: Операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ**: Материалы для товаров селлеров
-
-## 4. 🚚 ПРАВИЛА WORKFLOW ПОСТАВОК
-
-### 4.1 Жизненный цикл статусов
-
-```
-PENDING → SUPPLIER_APPROVED → CONFIRMED → LOGISTICS_CONFIRMED → SHIPPED → IN_TRANSIT → DELIVERED
-```
-
-- **ЗАПРЕЩЕНО**: Пропускать промежуточные статусы
-- **ПРАВИЛО**: Каждое изменение статуса должно сопровождаться уведомлением
-- **ОБЯЗАТЕЛЬНО**: Логирование всех изменений статусов
-
-### 4.2 Уведомления
-
-- **АВТОМАТИЧЕСКИ**: Отправка уведомления поставщику при создании заказа
-- **ОБЯЗАТЕЛЬНО**: Уведомление всех участников при изменении статуса
-- **ФОРМАТ**: Структурированные сообщения с деталями заказа
-
-### 4.3 Роли и ответственность
-
-- **ПОСТАВЩИК**: Создание товаров, одобрение заказов, отгрузка
-- **СЕЛЛЕР**: Создание заказов, отслеживание поставок
-- **ФУЛФИЛМЕНТ**: Приемка товаров, выбор логистики, управление складом
-- **ЛОГИСТИКА**: Подтверждение доставки, транспортировка
-
-## 5. 🖼️ ПРАВИЛА РАБОТЫ С ИЗОБРАЖЕНИЯМИ
-
-### 5.1 Управление изображениями
-
-- **РЕКОМЕНДУЕТСЯ**: Загружать несколько изображений для каждого товара
-- **ОБЯЗАТЕЛЬНО**: Выбирать основное изображение для отображения в списках
-- **ПРАВИЛО**: Изображения должны быть в поддерживаемых форматах (JPG, PNG, WebP)
-- **ОГРАНИЧЕНИЕ**: Максимальный размер файла изображения
-
-### 5.2 Отображение товаров
-
-- **ПРАВИЛО**: 5 карточек в ряд в карточном режиме
-- **ОБЯЗАТЕЛЬНО**: Возможность переключения между строчным и карточным режимами
-- **ФУНКЦИЯ**: Предпросмотр изображений при наведении/клике
-
-## 6. 🛒 ПРАВИЛА КОРЗИНЫ И ИЗБРАННОГО
-
-### 6.1 Система корзины
-
-- **ПРАВИЛО**: Одна корзина на организацию
-- **ПРОВЕРКА**: Автоматическая проверка доступности товаров при добавлении
-- **ОГРАНИЧЕНИЕ**: Нельзя добавлять неактивные товары
-- **ФУНКЦИЯ**: Автоматическое обновление количества при повторном добавлении
-
-### 6.2 Система избранного
-
-- **ПРАВИЛО**: Индивидуальные избранные для каждого пользователя
-- **ФУНКЦИЯ**: Быстрое добавление из избранного в корзину
-- **СИНХРОНИЗАЦИЯ**: Проверка актуальности товаров в избранном
-
-## 7. 🔄 ПРАВИЛА ИНТЕГРАЦИИ
-
-### 7.1 Интеграция с маркетплейсами
-
-- **WILDBERRIES**: Обязательная проверка активности API ключа
-- **СИНХРОНИЗАЦИЯ**: Регулярное обновление данных из внешних источников
-- **ПРАВИЛО**: Сохранение локальных копий данных для офлайн работы
-
-### 7.2 Глобальная интеграция
-
-- **ОБЯЗАТЕЛЬНО**: Товары поставщиков отображаются в глобальном маркете
-- **ПРАВИЛО**: Разделение по типам (товары/расходники) в интерфейсе
-- **СИНХРОНИЗАЦИЯ**: Данные склада синхронизируются с модулем аналитики
-
-### 7.3 Интеграция с модулем "Услуги"
-
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА В УСЛУГАХ**:
- - Селлеры могут использовать расходники фулфилмента в разделе "Услуги / Расходники"
- - Для создания продукта из товара
- - Расходники списываются с остатков фулфилмента
- - Стоимость включается в стоимость услуги
-- **WORKFLOW ИСПОЛЬЗОВАНИЯ**:
- 1. Селлер выбирает услугу "Создание продукта"
- 2. Указывает базовый товар
- 3. Выбирает необходимые расходники фулфилмента
- 4. Фулфилмент обрабатывает заказ и создает продукт
- 5. Расходники списываются, создается готовый продукт
-
-## 8. 💰 ПРАВИЛА ЦЕНООБРАЗОВАНИЯ И ЛОГИСТИКИ
-
-### 8.1 Система тарификации
-
-- **ОБЯЗАТЕЛЬНО**: Указание тарифов для грузов до 1м³ и свыше 1м³
-- **ПРАВИЛО**: Автоматический расчет стоимости доставки по объему
-- **ФУНКЦИЯ**: Отображение примерной стоимости доставки при заказе
-
-### 8.2 Управление ценами
-
-- **ПРАВИЛО**: Цена за единицу и цена за комплект (если применимо)
-- **ВАЛИДАЦИЯ**: Все цены должны быть больше 0
-- **ФУНКЦИЯ**: История изменения цен для аналитики
-
-## 9. 🔍 ПРАВИЛА ПОИСКА И ФИЛЬТРАЦИИ
-
-### 9.1 Система поиска
-
-- **ПОИСК ПО**: Название, артикул, категория, бренд, описание
-- **ПРАВИЛО**: Поиск должен быть регистронезависимым
-- **ФУНКЦИЯ**: Автодополнение при вводе поискового запроса
-
-### 9.2 Фильтрация и сортировка
-
-- **ФИЛЬТРЫ**: По категории, типу товара, статусу активности, остаткам
-- **СОРТИРОВКА**: По дате создания, названию, цене, остаткам
-- **ПРАВИЛО**: Сохранение настроек фильтров для пользователя
-
-## 10. 📱 ПРАВИЛА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
-
-### 10.1 Отзывчивость интерфейса
-
-- **ОБЯЗАТЕЛЬНО**: Интерфейс должен работать на всех устройствах
-- **ПРАВИЛО**: Адаптивная сетка для карточек товаров
-- **ФУНКЦИЯ**: Оптимизация для мобильных устройств
-
-### 10.2 Обратная связь пользователю
-
-- **ОБЯЗАТЕЛЬНО**: Уведомления об успешных/неуспешных операциях
-- **ПРАВИЛО**: Индикаторы загрузки для длительных операций
-- **ФУНКЦИЯ**: Подтверждение критических действий (удаление, деактивация)
-
-## 11. 🚨 ПРАВИЛА ОБРАБОТКИ ОШИБОК
-
-### 11.1 Обработка ошибок
-
-- **ОБЯЗАТЕЛЬНО**: Логирование всех ошибок
-- **ПРАВИЛО**: Понятные сообщения об ошибках для пользователя
-- **ФУНКЦИЯ**: Автоматическое восстановление после сбоев
-
-### 11.2 Резервное копирование
-
-- **КРИТИЧЕСКИ ВАЖНО**: Регулярное резервное копирование данных товаров
-- **ПРАВИЛО**: Версионность изменений для возможности отката
-- **ФУНКЦИЯ**: Автоматическое восстановление связей при сбоях
-
-## 12. 📈 ПРАВИЛА ПРОИЗВОДИТЕЛЬНОСТИ
-
-### 12.1 Оптимизация загрузки
-
-- **ПРАВИЛО**: Пагинация для больших списков товаров
-- **ФУНКЦИЯ**: Ленивая загрузка изображений
-- **ОПТИМИЗАЦИЯ**: Кэширование часто запрашиваемых данных
-
-### 12.2 Масштабируемость
-
-- **АРХИТЕКТУРА**: Модульная структура для легкого расширения
-- **ПРАВИЛО**: Использование индексов для быстрого поиска
-- **ФУНКЦИЯ**: Горизонтальное масштабирование при росте нагрузки
-
-## 13. 🔐 ПРАВИЛА БЕЗОПАСНОСТИ ДАННЫХ
-
-### 13.1 Защита данных
-
-- **ОБЯЗАТЕЛЬНО**: Шифрование чувствительных данных
-- **ПРАВИЛО**: Аудит всех действий пользователей
-- **ФУНКЦИЯ**: Контроль доступа на уровне API
-
-### 13.2 Соответствие требованиям
-
-- **GDPR**: Право на удаление и экспорт данных
-- **ПРАВИЛО**: Прозрачность обработки персональных данных
-- **ФУНКЦИЯ**: Логирование согласий пользователей
-
-## 14. 🎯 ПРАВИЛА КАЧЕСТВА КОДА
-
-### 14.1 Стандарты разработки
-
-- **ОБЯЗАТЕЛЬНО**: Покрытие тестами критической функциональности
-- **ПРАВИЛО**: Следование принципам SOLID
-- **ФУНКЦИЯ**: Автоматическое тестирование при развертывании
-
-### 14.2 Документация
-
-- **ОБЯЗАТЕЛЬНО**: Документирование всех API методов
-- **ПРАВИЛО**: Комментарии к сложной бизнес-логике
-- **ФУНКЦИЯ**: Автоматическая генерация документации
-
----
-
-## 15. 📦 СПЕЦИАЛЬНЫЕ ПРАВИЛА ДЛЯ ТИПОВ ПРЕДМЕТОВ
-
-### 15.1 Правила для ТОВАРА
-
-- **СОЗДАНИЕ**: Базовый тип, создается поставщиком
-- **СТАТУС**: Может быть активным/неактивным
-- **ЗАКАЗ**: Доступен для заказа всеми типами организаций
-- **ТРАНСФОРМАЦИЯ**: Может быть преобразован в ПРОДУКТ или БРАК
-- **УЧЕТ**: Основная единица складского учета
-- **ЦЕНА**: Обязательна, больше 0
-
-### 15.2 Правила для БРАКА
-
-- **СОЗДАНИЕ**: Только на основе существующего ТОВАРА
-- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
-- **СТАТУС**: Всегда неактивен для заказа
-- **ЗАКАЗ**: ЗАПРЕЩЕН заказ брака
-- **ОТОБРАЖЕНИЕ**: Виден только для учета потерь
-- **СПИСАНИЕ**: Особый workflow списания и утилизации
-- **СТАТИСТИКА**: Учитывается в потерях и браке
-- **ЦЕНА**: Может быть 0 (списанный товар)
-
-### 15.3 Правила для ПРОДУКТА
-
-- **СОЗДАНИЕ**: Только на основе существующего ТОВАРА через процесс "Создания продукта"
-- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
-- **ОТЛИЧИЕ**: Товар = сырье, Продукт = готовая единица
-- **СТАТУСЫ ЖИЗНЕННОГО ЦИКЛА**:
- - Товар "на складе" → "в работе" → Продукт "готов к отправке"
-- **РЕЦЕПТУРА**: Определяется селлером при создании поставки
-- **СОСТАВ**: Товар + Услуга фулфилмента + Расходники (опционально)
-- **АРТИКУЛЫ**: Наследует от товара + артикул MP (если связан)
-- **ЗАКАЗ**: Доступен только в статусе "готов к отправке"
-- **ПРОЦЕСС**: Обязательно проходит этап обработки на фулфилменте
-- **УЧЕТ**: Отдельная статистика от базового товара
-- **ЦЕНА**: Формируется из стоимости товара + услуг + расходников
-- **СВЯЗЬ С MP**: Опциональная связь с карточкой маркетплейса
-
-### 15.4 Правила для РАСХОДНИКОВ
-
-- **СОЗДАНИЕ**: Поставщик создает карточки типа "РАСХОДНИКИ"
-- **УНИВЕРСАЛЬНОСТЬ**: Один тип расходников для всех заказчиков
-- **ПРИМЕРЫ**: Упаковочные материалы, этикетки, пленка, коробки, бирки, вкладыши
-- **ДОСТУП**: Видны всем типам организаций в маркете
-- **ЗАКАЗ**: Любая организация может заказать расходники
-
-### 15.5 Классификация при заказе
-
-**РАСХОДНИКИ → РАСХОДНИКИ ФУЛФИЛМЕНТА (при заказе фулфилмент-центром):**
-
-- **НАЗНАЧЕНИЕ**: Для внутренних операций фулфилмент-центра и услуг селлерам
-- **УЧЕТ**: В операционных расходах фулфилмента
-- **WORKFLOW**: Поставщик → фулфилмент (прямая поставка)
-- **ИСПОЛЬЗОВАНИЕ**: Для операций фулфилмента и услуг селлерам
-
-**РАСХОДНИКИ → РАСХОДНИКИ СЕЛЛЕРОВ (при заказе селлером):**
-
-- **НАЗНАЧЕНИЕ**: Для товаров и операций селлеров
-- **УЧЕТ**: В расходах селлера
-- **WORKFLOW**: Поставщик → фулфилмент → селлер
-- **ПРИВЯЗКА**: Могут быть привязаны к конкретным товарам селлера
-
-## 16. ⚠️ КРИТИЧЕСКИЕ ЗАПРЕТЫ
-
-### 16.1 НИКОГДА НЕ ДЕЛАТЬ:
-
-1. ❌ Удалять предметы с существующими заказами
-2. ❌ Изменять статусы заказов без уведомлений
-3. ❌ Обходить проверки остатков предметов
-4. ❌ Давать доступ к чужим данным
-5. ❌ Игнорировать ошибки валидации
-6. ❌ Сохранять пароли в открытом виде
-7. ❌ Пропускать логирование критических операций
-8. ❌ Блокировать интерфейс без индикации загрузки
-9. ❌ Создавать брак или продукт без связи с родительским товаром
-10. ❌ Создавать отдельные типы расходников (только общий тип "РАСХОДНИКИ")
-11. ❌ Разрешать заказ брака
-12. ❌ Нарушать иерархию типов предметов
-
----
-
-## 17. 🏢 ПРАВИЛА СИСТЕМЫ СКЛАДА ФУЛФИЛМЕНТА
-
-### 17.1 Структура раздела склад фулфилмента
-
-#### 17.1.1 Блок статистика склада
-
-**ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ МОДУЛЕЙ:**
-
-1. **ПРОДУКТ** - готовые к продаже товары
-2. **ТОВАР** - базовые товары от поставщиков
-3. **БРАК** - товары с дефектами
-4. **ВОЗВРАТЫ С ПВЗ** - возвращенные товары
-5. **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-6. **РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
-
-**ТРЕБОВАНИЯ К МОДУЛЯМ:**
-
-- **ОБЯЗАТЕЛЬНО**: Каждый модуль отображает текущее наличие на складе
-- **ПРАВИЛО**: Последовательность модулей не может быть изменена
-- **СТАТУС**: Все модули отображают актуальные данные в реальном времени
-
-#### 17.1.2 Система учёта движения товаров
-
-**ОСНОВНЫЕ ПРИНЦИПЫ:**
-
-- **ПРИХОД**: Товары поступают через принятые поставки (из состояния "в пути" → "на складе")
-- **ОБРАБОТКА**: Товары переходят в статус "в работе" для создания продуктов
-- **РАСХОД**: Товары убывают при отгрузке, списании, возврате, превращении в продукты
-- **УЧЁТ**: Ведется учет прихода и расхода для каждого типа предметов
-- **ВИЗУАЛИЗАЦИЯ**: Движение отображается в дополнительных значениях
-
-**ДОПОЛНИТЕЛЬНЫЕ ЗНАЧЕНИЯ (показатели движения):**
-
-- **ПРИБЫЛО**: Количество предметов, поступивших на склад
-- **УБЫЛО**: Количество предметов, списанных со склада
-- **ВЛИЯНИЕ**: От этих значений зависят основные значения (общее количество)
-
-**ОСНОВНЫЕ ЗНАЧЕНИЯ (текущие остатки):**
-
-- **ОПРЕДЕЛЕНИЕ**: Итоговое количество предметов на складе
-- **РАСЧЁТ**: Основные значения = Предыдущие остатки + Прибыло - Убыло
-- **ОТОБРАЖЕНИЕ**: Показываются в каждом модуле статистики
-- **РАЗДЕЛЕНИЕ ТОВАРОВ**:
- - Товары "на складе" - готовы к обработке
- - Товары "в обработке" - находятся в процессе создания продукта
-
-#### 17.1.3 Модуль "Расходники фулфилмента"
-
-**ОСОБЕННОСТИ МОДУЛЯ:**
-
-- **ИНТЕРАКТИВНОСТЬ**: Является кликабельным элементом
-- **ФУНКЦИОНАЛЬНОСТЬ**: Содержит полноценный раздел учёта
-- **ДОСТУП**: Переход к детальному управлению расходниками фулфилмента
-- **СОДЕРЖАНИЕ**: Полный функционал работы с расходниками фулфилмента
-
-#### 17.1.4 Блок детализация по Магазинам
-
-**НАЗНАЧЕНИЕ**: Распределение товаров по торговым точкам/магазинам
-**ФУНКЦИИ**:
-
-- Отображение остатков по каждому магазину
-- Управление распределением товаров
-- Контроль движения между магазинами
-
-### 17.2 Правила движения товаров в системе фулфилмента
-
-#### 17.2.1 Поступление товаров
-
-**ИСТОЧНИКИ ПОСТУПЛЕНИЯ:**
-
-- **ПОСТАВКИ**: От поставщиков через систему заказов
-- **ВОЗВРАТЫ**: Товары, возвращенные с ПВЗ
-- **ПЕРЕМЕЩЕНИЯ**: Между складами и магазинами
-
-**ПРОЦЕСС ПРИЁМКИ:**
-
-1. Поставка переходит в статус "принято"
-2. Товары из "в пути" → "на складе"
-3. Обновляются основные значения
-4. Фиксируется в дополнительных значениях как "прибыло"
-
-#### 17.2.2 Расход товаров
-
-**ПРИЧИНЫ РАСХОДА:**
-
-- **ОТГРУЗКА**: Товары отправлены селлерам
-- **СПИСАНИЕ**: Брак, утрата, утилизация
-- **ВОЗВРАТ**: Возврат поставщику
-- **ИСПОЛЬЗОВАНИЕ**: Расходники для операций
-
-### 17.3 Процесс "Создания продукта"
-
-#### 17.3.1 Workflow создания продукта
-
-**ЭТАПЫ ПРОЦЕССА:**
-
-1. **ПОСТУПЛЕНИЕ**: Товар приходит на склад фулфилмента (статус "на складе")
-2. **СОРТИРОВКА**: Перебор товара, отсеивание брака
-3. **ПОДГОТОВКА К РАБОТЕ**: Менеджер задает параметры работы
-4. **ОБРАБОТКА**: Превращение товара в продукт по "рецептуре" селлера
-5. **ЗАВЕРШЕНИЕ**: Готовый продукт (статус "готов к отправке")
-
-#### 17.3.2 Управление процессом
-
-**РАЗДЕЛ "СОЗДАНИЕ ПРОДУКТА":**
-
-- **НОВЫЕ**: Поставки после нажатия "принято", ожидающие назначения
-- **В РАБОТЕ**: Поставки в процессе обработки
-- **ВЫПОЛНЕНО**: Завершенные поставки с готовыми продуктами
-
-**ДЕЙСТВИЯ МЕНЕДЖЕРА В "НОВЫЕ":**
-
-- **ДЕДЛАЙН**: Указание срока выполнения работы
-- **ОТВЕТСТВЕННЫЙ**: Назначение исполнителя
-- **МЕСТО ХРАНЕНИЯ**: Указание локации для готовых продуктов (опционально)
-- **ЗАПУСК**: Нажатие кнопки "В работе"
-
-#### 17.3.3 Рецептура продукта (задается селлером)
-
-**СЕЛЛЕР УКАЗЫВАЕТ В ПОСТАВКЕ:**
-
-- **БАЗОВЫЙ ТОВАР**: Исходный материал (например, футболка)
-- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг (например, "погладить")
-- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (например, фирменный пакет)
-- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (например, короб + маркировка)
-
-**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
-
-#### 17.3.4 Учет план/факт в процессе работы
-
-**ПЛАН**: Количество товара из поставки селлера
-**ФАКТ**: Реальное количество после сортировки
-
-**ФИКСАЦИЯ БРАКА:**
-
-- **КОГДА**: В процессе работы (вкладка "В работе")
-- **КТО**: Ответственный исполнитель
-- **ДЕТАЛИЗАЦИЯ**: По каждому предмету (размер/объем)
-- **ОБНОВЛЕНИЕ**: Можно вносить изменения до нажатия "Выполнено"
-
-**ВЛИЯНИЕ НА СТАТИСТИКУ:**
-
-- При принятии поставки: +План в статистику
-- При выявлении факта: корректировка на реальные данные
-- **ФОРМУЛА**: Факт = Брак + Хороший товар
-- **ЛОГИКА**: Фактическое количество = сумма всех пересчитанных предметов
-
-#### 17.3.5 Связь с маркетплейсами
-
-**АРТИКУЛЫ ПРОДУКТА:**
-
-- **ОСНОВНОЙ**: Наследует артикул исходного товара
-- **ДОПОЛНИТЕЛЬНЫЙ**: Артикул карточки маркетплейса (если связан)
-
-**СВЯЗЫВАНИЕ С MP:**
-
-- **МОМЕНТ**: При создании поставки селлером
-- **ПОЛЕ**: "Связать с карточкой маркетплейса" (опционально)
-- **ИСТОЧНИК**: Карточки, полученные через API маркетплейсов
-- **ПРАВИЛО**: Карточка товара селлера на MP = карточке продукта в системе
-
-### 17.4 Валидация и контроль в складе фулфилмента
-
-**ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ:**
-
-- **ОСТАТКИ**: Не могут быть отрицательными
-- **ДВИЖЕНИЕ**: Каждое изменение должно быть зафиксировано
-- **СИНХРОНИЗАЦИЯ**: Основные и дополнительные значения должны соответствовать
-- **ДОСТУП**: Только авторизованный персонал фулфилмента
-- **ПЛАН/ФАКТ**: Корректировка статистики при выявлении расхождений
-
----
-
-## 18. 🎖️ ПРИОРИТЕТЫ РАЗРАБОТКИ
-
-### 18.1 ВЫСОКИЙ ПРИОРИТЕТ:
-
-1. 🔴 Безопасность и контроль доступа
-2. 🔴 Целостность данных и валидация
-3. 🔴 Корректность статусов поставок
-4. 🔴 Уведомления участников процесса
-5. 🔴 Правильная типизация предметов
-6. 🔴 Связи между товарами и производными типами
-
-### 18.2 СРЕДНИЙ ПРИОРИТЕТ:
-
-1. 🟡 Производительность и оптимизация
-2. 🟡 Пользовательский опыт
-3. 🟡 Аналитика и отчетность
-4. 🟡 Интеграции с внешними системами
-5. 🟡 Workflow для брака и продуктов
-6. 🟡 Разделение расходников по типам
-
-### 18.3 НИЗКИЙ ПРИОРИТЕТ:
-
-1. 🟢 Дополнительные фильтры
-2. 🟢 Косметические улучшения
-3. 🟢 Экспериментальные функции
-4. 🟢 Расширенная кастомизация
-
----
-
-## 19. 🏠 ПРАВИЛА КАБИНЕТА СЕЛЛЕРА / РАЗДЕЛ "МОИ ПОСТАВКИ"
-
-### 19.1 Структура и навигация
-
-#### 19.1.1 Основная структура
-
-**ОБЯЗАТЕЛЬНАЯ СТРУКТУРА РАЗДЕЛА:**
-
-- **ПОСТАВКИ НА ФУЛФИЛМЕНТ**:
- - Товар → Карточки / Поставщики
- - Расходники селлера
-- **ПОСТАВКИ НА МАРКЕТПЛЕЙСЫ**:
- - Wildberries
- - Ozon
-
-**НАВИГАЦИЯ**: Переключение через кнопки между основными разделами
-
-#### 19.1.2 Различия подразделов товаров
-
-**КАРТОЧКИ**:
-
-- **ИСТОЧНИК**: WB API карточки селлера
-- **ФУНКЦИИ**: Указание рецептуры + выбор логистики
-- **РЕЗУЛЬТАТ**: WildberriesSupply
-
-**ПОСТАВЩИКИ**:
-
-- **ИСТОЧНИК**: Каталог товаров поставщиков
-- **ФУНКЦИИ**: Заказ товаров + рецептура для продукта
-- **РЕЗУЛЬТАТ**: SupplyOrder
-
-### 19.2 Правила создания поставки расходников селлера
-
-#### 19.2.1 Структура страницы
-
-**БЛОК 1: ПОСТАВЩИКИ** _(обязательный)_
-
-- **РАСПОЛОЖЕНИЕ**: Верхняя часть экрана
-- **ИСТОЧНИК**: Только поставщики из раздела "Партнеры"
-- **НАВИГАЦИЯ**: Горизонтальный скролл при превышении ширины
-- **ВЫБОР**: Только один поставщик одновременно
-- **ИНДИКАЦИЯ**: Визуальное выделение выбранной карточки
-
-**БЛОК 2: РАСХОДНИКИ** _(зависимый)_
-
-- **УСЛОВИЕ**: Активен только после выбора поставщика
-- **СОДЕРЖАНИЕ**: Только расходники выбранного поставщика
-- **ОБЯЗАТЕЛЬНЫЕ ЭЛЕМЕНТЫ**:
- - Сортировка: цена, название, категория
- - Фильтры: категория, ценовой диапазон
-- **КАРТОЧКА РАСХОДНИКА**:
- - Фото, название, цена, остаток, категория
- - Количество в комплекте (если применимо)
- - Поле ввода количества с валидацией
- - Кнопки +/- для изменения по единице
-
-**БЛОК 3: КОРЗИНА** _(справа)_
-
-- **РАСПОЛОЖЕНИЕ**: Правая часть экрана
-- **СОДЕРЖАНИЕ**:
- - Счетчик видов расходников
- - Детализация по каждому расходнику
- - Общая сумма
-- **УПРАВЛЕНИЕ**:
- - Изменение количества (с валидацией остатков)
- - Удаление позиций
-- **ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
- - Выбор фулфилмент-центра (из партнеров)
- - Дата поставки (не прошедшая, по умолчанию - текущая)
-
-#### 19.2.2 Валидация и ограничения
-
-**КОЛИЧЕСТВО ТОВАРОВ**:
-
-- **МИНИМУМ**: 1 единица/комплект
-- **МАКСИМУМ**: Остаток у поставщика
-- **ПРОВЕРКА**: В реальном времени при изменении
-
-**ДАТА ПОСТАВКИ**:
-
-- **ЗАПРЕТ**: Выбор прошедших дат
-- **ПО УМОЛЧАНИЮ**: Дата создания поставки
-
-**ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
-
-- Выбор поставщика
-- Минимум один расходник в корзине
-- Выбор фулфилмент-центра
-- Дата поставки
-
-### 19.3 Отображение и управление поставками
-
-#### 19.3.1 Многоуровневая таблица
-
-**ПЕРВЫЙ УРОВЕНЬ** _(основной список)_:
-
-- **СОРТИРОВКА**: Номер поставки от большего к меньшему
-- **ОБЯЗАТЕЛЬНЫЕ КОЛОНКИ**:
- - Порядковый номер поставки
- - Количество видов расходников
- - Стоимость всей поставки
- - Количество категорий
- - Статус поставки
-
-**ВТОРОЙ УРОВЕНЬ** _(детализация)_:
-
-- **АКТИВАЦИЯ**: По клику на строку первого уровня
-- **СОДЕРЖАНИЕ**:
- - Название расходника
- - Количество
- - Цена
- - Категория
- - Поставщик
-- **ОГРАНИЧЕНИЯ**: Только просмотр, редактирование запрещено
-
-#### 19.3.2 Статусы поставок
-
-**ЖИЗНЕННЫЙ ЦИКЛ СТАТУСОВ**:
-
-1. **В работе** - создана селлером
-2. **Одобрена** - подтверждена поставщиком
-3. **Ожидает отгрузки** - логистика назначена
-4. **В пути** - товар отгружен
-5. **Доставлена/Принято** - получена фулфилментом
-
-### 19.4 Workflow и бизнес-логика
-
-#### 19.4.1 Участники процесса
-
-**СЕЛЛЕР**:
-
-- Создает поставку
-- Отслеживает статусы
-- Получает уведомления об изменениях
-
-**ПОСТАВЩИК**:
-
-- Получает уведомление о заказе
-- Вносит данные о грузовых местах и объеме
-- Подтверждает поставку
-- Отмечает отгрузку
-
-**ФУЛФИЛМЕНТ**:
-
-- Назначает ответственного
-- Выбирает логистику
-- Принимает товар
-- Указывает место хранения
-
-**ЛОГИСТИКА**:
-
-- Получает заявку
-- Подтверждает возможность доставки
-- Осуществляет транспортировку
-
-#### 19.4.2 Уведомления
-
-**ОБЯЗАТЕЛЬНЫЕ УВЕДОМЛЕНИЯ**:
-
-- Поставщику: о новом заказе расходников
-- Фулфилменту: о подтвержденной поставке
-- Логистике: о назначении на заявку
-- Селлеру: об изменении каждого статуса
-
-### 19.5 Ограничения и запреты
-
-**ЗАПРЕЩЕНО**:
-
-- Редактирование созданной поставки
-- Выбор нескольких поставщиков одновременно
-- Заказ количества сверх остатков
-- Выбор прошедших дат поставки
-- Создание поставки без выбора фулфилмент-центра
-
-**ОБЯЗАТЕЛЬНО**:
-
-- Валидация остатков перед добавлением в корзину
-- Проверка доступности фулфилмент-центра
-- Отправка уведомлений на каждом этапе
-- Логирование всех изменений статусов
-
----
-
-_Эти правила являются обязательными для всех участников разработки и должны соблюдаться на всех этапах жизненного цикла системы._
-
-_Версия: 1.0_
-_Дата создания: 2024_
-_Статус: АКТИВНЫЕ ПРАВИЛА_
diff --git a/archive/rules-v1.1.md b/archive/rules-v1.1.md
deleted file mode 100644
index 3124ac1..0000000
--- a/archive/rules-v1.1.md
+++ /dev/null
@@ -1,642 +0,0 @@
-# ПРАВИЛА СИСТЕМЫ УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ
-
-> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данные из этого файла могут быть удалены только с разрешения пользователя. Все изменения должны согласовываться.
-
-## 🔤 ТЕРМИНЫ СИСТЕМЫ
-> Для людей → `В коде`
-- ТОВАР → `PRODUCT`
-- РАСХОДНИКИ → `CONSUMABLE`
-- БРАК → `DEFECT` *(планируется)*
-- ПРОДУКТ → `FINISHED_PRODUCT` *(планируется)*
-
----
-
-## 📑 ОГЛАВЛЕНИЕ
-
-### 🎯 **ОБЩИЕ ПРАВИЛА**
-
-1. [Основные принципы системы](#1-основные-принципы-системы)
-2. [Типизация предметов](#2-типизация-предметов)
-3. [Workflow поставок](#3-workflow-поставок)
-4. [Система ролей и доступов](#4-система-ролей-и-доступов)
-
-### 🏢 **ПРАВИЛА ПО КАБИНЕТАМ**
-
-5. [Кабинет селлера](#5-кабинет-селлера)
-6. [Кабинет поставщика](#6-кабинет-поставщика)
-7. [Кабинет фулфилмента](#7-кабинет-фулфилмента)
-8. [Интеграции и связи между кабинетами](#8-интеграции-и-связи-между-кабинетами)
-
----
-
-## 1. 🎯 ОСНОВНЫЕ ПРИНЦИПЫ СИСТЕМЫ
-
-### 1.1 Архитектура системы
-
-**СТРУКТУРА СИСТЕМЫ ПО КАБИНЕТАМ:**
-
-**🏢 КАБИНЕТ ПОСТАВЩИКА** - создает и управляет:
-
-- **ТОВАР** (`PRODUCT`) - базовые товары от поставщика
-- **РАСХОДНИКИ** (`CONSUMABLE`) - материалы и вспомогательные товары от поставщика
-
-**🏭 КАБИНЕТ ФУЛФИЛМЕНТА** - принимает, обрабатывает и управляет всеми типами:
-
-- **ТОВАР** (`PRODUCT`) - базовые товары от поставщиков (принятые на склад)
-- **БРАК** (`DEFECT` - планируется) - производная от товара (товар с дефектами)
-- **ПРОДУКТ** (`FINISHED_PRODUCT` - планируется) - готовый к продаже товар
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
-
-**🛍️ КАБИНЕТ СЕЛЛЕРА** - заказывает и управляет поставками:
-
-- Создает заказы товаров и расходников
-- Управляет поставками на фулфилмент и маркетплейсы
-- Отслеживает статусы поставок
-
-### 1.2 Основные сущности системы
-
-| Сущность | Название в системе | Описание | Статус |
-| ---------- | ---------------------------------- | ----------------------------------------------- | --------------- |
-| Товар | `Product` (type: PRODUCT) | Базовый тип товара от поставщика | ✅ Реализовано |
-| Брак | `Product` (type: DEFECT) | Производная от товара с дефектами | 🔄 В разработке |
-| Расходники | `Product` (type: CONSUMABLE) | Материалы и вспомогательные товары | ✅ Реализовано |
-| Продукт | `Product` (type: FINISHED_PRODUCT) | Готовый к продаже товар (производная от товара) | 🔄 В разработке |
-
----
-
-## 2. 📦 ТИПИЗАЦИЯ ПРЕДМЕТОВ
-
-### 2.1 Обязательные типы
-
-**ВАЖНО**: Товар ≠ Продукт (это разные сущности в системе)
-
-**4 основных типа предметов в системе:**
-
-1. **ТОВАР** - базовый тип товара от поставщика
-2. **БРАК** - производная от товара (товар с дефектами)
-3. **РАСХОДНИКИ** - материалы и вспомогательные товары от поставщика
-4. **ПРОДУКТ** - производная от товара (готовый к продаже товар)
-
-### 2.2 Классификация расходников
-
-- Поставщик создает карточки типа **"РАСХОДНИКИ"** (без уточнения назначения)
-- При заказе, в зависимости от заказчика, они классифицируются как:
- - **"Расходники фулфилмента"** - если заказывает фулфилмент-центр
- - **"Расходники селлеров"** - если заказывает селлер
-
-### 2.3 Обязательные поля карточки
-
-**Базовые параметры:**
-
-- **Фото** - система загрузки и управления изображениями товаров
-- **Название**
-- **Автоматическая генерация системой уникального номера** (артикул СФ)
-- **Описание**
-- **Количество предметов** в единицах
-- **Количество комплектов** если продается комплектом
-- **Категория** (28 предустановленных универсальных категорий + специализированные категории расходников)
-- **Бренд**, **Цвет**, **Размер/объем**, **Вес**, **Габариты**, **Материал**
-- **Цена за единицу** и **Цена за комплект**
-- **Заказано**, **В пути**, **Остаток**, **Продано**
-
-**Дополнительные параметры:**
-
-- **Статус активности** (`isActive`) - возможность деактивировать предметы
-- **Тип предмета** - строгое разделение на 4 основных типа
-- **Связь с родительским предметом** - для производных типов (брак, продукт)
-
----
-
-## 3. 🚚 WORKFLOW ПОСТАВОК
-
-### 3.1 Детализированная система статусов
-
-**Статусы SupplyOrder (Заказ поставки):**
-
-1. **PENDING** - Ожидает подтверждения поставщиком
-2. **SUPPLIER_APPROVED** - Одобрено поставщиком
-3. **CONFIRMED** - Подтвержден (готов к обработке)
-4. **LOGISTICS_CONFIRMED** - Подтверждено логистикой
-5. **SHIPPED** - Отгружено поставщиком
-6. **IN_TRANSIT** - В пути (логистика доставляет)
-7. **DELIVERED** - Доставлен на фулфилмент
-8. **CANCELLED** - Отменен
-
-### 3.2 Пошаговый процесс поставки
-
-**ЭТАП 1: Создание заказа**
-
-1. Селлер заказывает товар/расходники у поставщика
-2. Система создает SupplyOrder со статусом `PENDING`
-3. Автоматическое уведомление поставщику
-
-**ЭТАП 2: Обработка поставщиком** 4. Поставщик получает оповещение 5. Поставщик нажимает "Одобрить" 6. Статус меняется на `SUPPLIER_APPROVED`
-
-**ЭТАП 3: Передача в фулфилмент** 7. Поставка отображается в кабинете фулфилмента 8. Фулфилмент выбирает ответственного и логистику 9. Статус меняется на `CONFIRMED`
-
-**ЭТАП 4: Логистическое подтверждение** 10. Логистика подтверждает доставку 11. Статус меняется на `LOGISTICS_CONFIRMED`
-
-**ЭТАП 5: Отгрузка** 12. Поставщик отгружает товар 13. Статус меняется на `SHIPPED`, затем `IN_TRANSIT`
-
-**ЭТАП 6: Доставка и приемка** 14. Логистика доставляет на фулфилмент 15. Фулфилмент принимает товар 16. Статус меняется на `DELIVERED`
-
-### 3.3 Система уведомлений
-
-**Обязательные уведомления:**
-
-- Поставщику: о новом заказе
-- Фулфилменту: о подтвержденной поставке
-- Логистике: о назначении на заявку
-- Селлеру: об изменении каждого статуса
-
----
-
-## 4. 🔐 СИСТЕМА РОЛЕЙ И ДОСТУПОВ
-
-### 4.1 Типы организаций
-
-| Тип организации | Роль в системе | Основные функции |
-| ---------------------------- | ----------------- | ------------------------------------------------------- |
-| **WHOLESALE** (Поставщик) | Создатель товаров | Создание товаров, управление складом, обработка заказов |
-| **SELLER** (Селлер) | Заказчик | Заказ товаров, управление поставками |
-| **FULFILLMENT** (Фулфилмент) | Обработчик | Приемка товаров, управление складом, создание продуктов |
-| **LOGIST** (Логистика) | Доставщик | Управление доставками |
-
-### 4.2 Контроль доступа к заказам
-
-- **Создатель заказа** - полный доступ к своим заказам
-- **Поставщик** - доступ к заказам, где он является поставщиком
-- **Фулфилмент-центр** - доступ к заказам, направленным в его центр
-- **Логистическая компания** - доступ к заказам для доставки
-
----
-
-## 5. 🛍️ КАБИНЕТ СЕЛЛЕРА
-
-### 5.1 Структура раздела "Мои поставки"
-
-**🏢 ПОСТАВКИ НА ФУЛФИЛМЕНТ:**
-
-- **Товар** - поставка товаров для создания продуктов
- - **Карточки** - поставка через WB API с рецептурой
- - **Поставщики** - заказ товаров у поставщиков с рецептурой
-- **Расходники селлера** - поставка материалов для товаров селлера
-
-**🛒 ПОСТАВКИ НА МАРКЕТПЛЕЙСЫ** _(планируется)_
-
-- **Wildberries** - прямые поставки на WB
-- **Ozon** - прямые поставки на Ozon
-
-### 5.2 Создание поставки расходников селлера
-
-**БЛОК 1: ПОСТАВЩИКИ** _(верхняя часть экрана)_
-
-- Отображение карточек поставщиков из раздела "Партнеры"
-- Горизонтальный скролл при превышении ширины экрана
-- Выбор одного поставщика
-
-**БЛОК 2: РАСХОДНИКИ** _(центральная часть)_
-
-- Расходники выбранного поставщика
-- Сортировка по цене, названию, категории
-- Фильтры по категории, ценовому диапазону
-- Карточка расходника с фото, названием, ценой, остатком
-
-**БЛОК 3: КОРЗИНА** _(правая часть)_
-
-- Количество видов расходников
-- Детализация по каждому расходнику
-- Общая сумма
-- Выбор фулфилмент-центра
-- Дата поставки
-
-### 5.3 Правила селлера
-
-**ОБЯЗАТЕЛЬНО:**
-
-- Валидация остатков перед добавлением в корзину
-- Проверка доступности фулфилмент-центра
-- Выбор даты поставки (не прошедшей)
-
-**ЗАПРЕЩЕНО:**
-
-- Редактирование созданной поставки
-- Выбор нескольких поставщиков одновременно
-- Заказ количества сверх остатков
-- Выбор прошедших дат поставки
-
----
-
-## 6. 📦 КАБИНЕТ ПОСТАВЩИКА
-
-### 6.1 Раздел склад - основные возможности
-
-**СОЗДАНИЕ КАРТОЧЕК:**
-
-- **ТОВАР** - базовые товары поставщика
-- **РАСХОДНИКИ** - материалы и вспомогательные товары
-
-### 6.2 Управление карточками
-
-**Основные функции:**
-
-- Создание карточек с обязательными полями
-- Редактирование и удаление карточек
-- Изменение количества в карточке
-- Система загрузки изображений товаров
-
-**Система проверок:**
-
-- Проверка остатков при добавлении в корзину
-- Валидация данных при создании/редактировании
-- Проверка уникальности артикула в рамках организации
-
-### 6.3 Статистика и аналитика поставщика
-
-**В КАБИНЕТЕ ПОСТАВЩИКА:**
-
-- **ТОВАРЫ**: Общая статистика товаров поставщика
-- **РАСХОДНИКИ**: Материалы и вспомогательные товары
- - Классифицируются при заказе в зависимости от заказчика
- - Общая статистика по всем расходникам
-
-**Блок статистики включает:**
-
-- Общие остатки всех предметов
-- Количество заказанных позиций
-- Предметы в пути
-- Проданные предметы
-- Уведомления о низких остатках
-
-### 6.4 Интерфейс и управление
-
-**Режимы отображения:**
-
-- Переключение между строчным и карточным режимами
-- 5 карточек в ряд в карточном режиме
-- Система фильтрации и сортировки
-- Поиск по названию, артикулу, категории, бренду
-
-**Система уведомлений:**
-
-- Подсветка при низких остатках
-- Автоматические уведомления о новых заказах
-- Уведомления об изменении статусов поставок
-
-### 6.4.1 ОТОБРАЖЕНИЕ ИНФОРМАЦИИ В КАРТОЧКАХ
-
-**Каждая карточка товара/расходника содержит:**
-
-**Основная информация:**
-
-- **Основное изображение**
-- **Название**
-- **Артикул СФ** (автоматически сгенерированный)
-- **Цена за единицу/комплект**
-- **Категория**
-- **Статус активности** (активен/неактивен)
-
-**Данные о движении товара:**
-
-- **Остаток** - текущее количество на складе
-- **Заказано** - количество товара в активных заказах
-- **В пути** - количество товара, которое находится в доставке
-- **Продано** - количество проданного товара
-
-**Индикаторы:**
-
-- **Индикатор низких остатков** (если применимо)
-- **Подсветка** при остатках ниже критического уровня
-
-### 6.4.2 АКТУАЛИЗАЦИЯ ДАННЫХ
-
-**КРИТИЧЕСКИ ВАЖНО**: При изменении количества в карточке данные актуализируются во всей системе:
-
-- **Статистика обновляется в реальном времени**
-- **Отслеживание изменений** для аналитики
-- **Данные синхронизируются** с модулем аналитики
-- **Обновление во всех связанных модулях** системы
-
-### 6.5 Правила поставщика
-
-**ОБЯЗАТЕЛЬНО:**
-
-- Указание всех обязательных полей при создании карточки
-- Своевременная обработка заказов
-- Подтверждение поставок в установленные сроки
-- Ведение актуального учета остатков
-
-**ЗАПРЕЩЕНО:**
-
-- Добавление собственных товаров в корзину
-- Создание предметов без указания типа
-- Нарушение сроков обработки заказов
-
----
-
-## 7. 🏭 КАБИНЕТ ФУЛФИЛМЕНТА
-
-### 7.1 Структура раздела склад фулфилмента
-
-**Модули в обязательной последовательности:**
-
-1. **📦 ПРОДУКТ** - готовые к продаже товары
-2. **🛒 ТОВАР** - базовые товары от поставщиков
- - Товары "на складе" - готовы к обработке
- - Товары "в обработке" - в процессе создания продукта
-3. **❌ БРАК** - товары с дефектами
-4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары
-5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
- - **КЛИКАБЕЛЬНЫЙ МОДУЛЬ** - содержит полноценный раздел учёта
-
-### 7.2 Система учёта движения товаров
-
-**Основные принципы учёта:**
-
-- **ПРИХОД ТОВАРОВ**: Через принятые поставки (статус "в пути" → "на складе")
-- **РАСХОД ТОВАРОВ**: При отгрузке, списании, использовании для услуг
-- **ДВОЙНОЙ УЧЁТ**: Основные значения + дополнительные значения
-
-**Дополнительные значения (показатели движения):**
-
-- **ПРИБЫЛО** - количество поступивших на склад за период
-- **УБЫЛО** - количество списанных со склада за период
-
-**Основные значения (текущие остатки):**
-
-- **ФОРМУЛА**: Основные значения = Предыдущие остатки + Прибыло - Убыло
-- **ОТОБРАЖЕНИЕ**: Показываются в каждом модуле статистики
-- **АКТУАЛЬНОСТЬ**: Обновляются в реальном времени
-
-### 7.3 Процесс "Создания продукта"
-
-**ЭТАП 1: ПОСТУПЛЕНИЕ И СОРТИРОВКА**
-
-1. Товар поступает на склад фулфилмента (статус "на складе")
-2. Перебор и сортировка товара
-3. Выявление и отсеивание брака
-
-**ЭТАП 2: ПОДГОТОВКА К РАБОТЕ** 4. Поставка попадает в раздел "Создание продукта" / Новые 5. Менеджер фулфилмента:
-
-- Устанавливает дедлайн выполнения
-- Назначает ответственного исполнителя
-- Указывает место хранения готовых продуктов
-- Нажимает "В работе"
-
-**ЭТАП 3: ОБРАБОТКА** 6. Поставка переходит в "В работе" 7. Товары получают статус "в работе" 8. Исполнитель работает по "рецептуре" селлера:
-
-- Применяет услуги фулфилмента
-- Использует расходники селлера
-- Использует расходники фулфилмента
-
-**ЭТАП 4: УЧЕТ ПЛАН/ФАКТ** 9. Фиксируется:
-
-- **ПЛАН**: Количество из поставки селлера
-- **ФАКТ**: Реальное количество = Брак + Хороший товар
-- **ДЕТАЛИЗАЦИЯ**: По каждому размеру/объему
-
-**ЭТАП 5: ЗАВЕРШЕНИЕ** 10. Исполнитель нажимает "Выполнено" 11. Товары становятся продуктами со статусом "готов к отправке" 12. Поставка переходит в "Выполнено"
-
-**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
-
-### 7.4 Рецептура продукта
-
-**Задается селлером при создании поставки:**
-
-- **БАЗОВЫЙ ТОВАР**: Исходный материал
-- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг фулфилмента
-- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (опционально)
-- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (опционально)
-- **СВЯЗЬ С MP**: Связь с карточкой маркетплейса (опционально)
-
-### 7.5 Статистика и аналитика фулфилмента
-
-**В КАБИНЕТЕ ФУЛФИЛМЕНТА:**
-
-- **ТОВАРЫ**: Базовые товары от поставщиков (принятые на склад)
-- **ПРОДУКТЫ**: Готовая продукция (созданная из товаров)
-- **БРАК**: Статистика потерь и списаний
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА**: Операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ**: Материалы для товаров селлеров
-
-### 7.6 Правила фулфилмента
-
-**ОБЯЗАТЕЛЬНО:**
-
-- Своевременная приемка поставок
-- Ведение точного учета остатков
-- Контроль качества товаров
-- Фиксация брака в процессе работы
-- Соблюдение сроков создания продуктов
-
-**ЗАПРЕЩЕНО:**
-
-- Принятие товаров без проверки качества
-- Нарушение технологии создания продуктов
-- Несоблюдение сроков обработки
-
----
-
-## 8. 🔄 ИНТЕГРАЦИИ И СВЯЗИ МЕЖДУ КАБИНЕТАМИ
-
-### 8.1 Глобальная интеграция
-
-- **Маркет** - данные карточки товаров и расходников отображаются в глобальной сущности
-- **Синхронизация данных** между всеми модулями системы
-- **Единая система уведомлений** через встроенный мессенджер
-
-### 8.2 Интеграция с маркетплейсами
-
-- **Wildberries API** - загрузка карточек товаров из WB
-- **Синхронизация данных** с маркетплейсами
-- **Создание поставок** на основе WB карточек
-- **Управление API ключами** с проверкой активности
-
-### 8.3 Интеграция с модулем "Услуги"
-
-**Расходники фулфилмента в услугах:**
-
-- Селлеры могут использовать расходники фулфилмента в разделе "Услуги / Расходники"
-- Для создания продукта из базового товара
-- Расходники списываются с остатков фулфилмента
-- Стоимость включается в стоимость услуги фулфилмента
-
-**Процесс создания продукта через услуги:**
-
-1. Селлер выбирает услугу "Создание продукта"
-2. Указывает базовый товар для обработки
-3. Выбирает необходимые расходники фулфилмента
-4. Фулфилмент обрабатывает заказ
-5. Создается готовый продукт с использованием расходников
-
-### 8.4 Система тарификации логистики
-
-**Расчет стоимости доставки:**
-
-- **Тариф до 1м³** - базовая стоимость для малых грузов
-- **Тариф свыше 1м³** - стоимость для крупных грузов
-- **Маршруты доставки** - от точки отправления до точки назначения
-- **Описание услуг** - дополнительные условия доставки
-
----
-
-## 📋 КРИТИЧЕСКИЕ ЗАПРЕТЫ
-
-### ❌ НИКОГДА НЕ ДЕЛАТЬ:
-
-1. Удалять предметы с существующими заказами
-2. Изменять статусы заказов без уведомлений
-3. Обходить проверки остатков предметов
-4. Давать доступ к чужим данным
-5. Игнорировать ошибки валидации
-6. Пропускать логирование критических операций
-7. Создавать брак или продукт без связи с родительским товаром
-8. Создавать отдельные типы расходников (только общий тип "РАСХОДНИКИ")
-9. Разрешать заказ брака
-10. Нарушать иерархию типов предметов
-
----
-
-## 🎖️ ПРИОРИТЕТЫ РАЗРАБОТКИ
-
-### ВЫСОКИЙ ПРИОРИТЕТ:
-
-1. 🔴 Безопасность и контроль доступа
-2. 🔴 Целостность данных и валидация
-3. 🔴 Корректность статусов поставок
-4. 🔴 Уведомления участников процесса
-5. 🔴 Правильная типизация предметов
-
-### СРЕДНИЙ ПРИОРИТЕТ:
-
-1. 🟡 Производительность и оптимизация
-2. 🟡 Пользовательский опыт
-3. 🟡 Аналитика и отчетность
-4. 🟡 Интеграции с внешними системами
-
-### НИЗКИЙ ПРИОРИТЕТ:
-
-1. 🟢 Дополнительные фильтры
-2. 🟢 Косметические улучшения
-3. 🟢 Экспериментальные функции
-
----
-
-## 📦 ПРИЛОЖЕНИЕ: КАТЕГОРИИ РАСХОДНИКОВ
-
-### Специализированные категории для расходников
-
-**В дополнение к 28 универсальным категориям, для расходников рекомендуются следующие специализированные категории:**
-
-#### 🎁 **УПАКОВКА И ЗАЩИТА**
-
-- Коробки (различных размеров)
-- Пакеты (полиэтиленовые, бумажные, фирменные)
-- Пузырчатая пленка, воздушные подушки
-- Стрейч-пленка, гофрокартон
-- Паллетная пленка, защитные уголки
-
-#### 🏷️ **МАРКИРОВКА И ИДЕНТИФИКАЦИЯ**
-
-- Этикетки (адресные, штрих-код, QR-код)
-- Бирки (ценники, размерники)
-- Стикеры и наклейки
-- Маркеры и ручки
-- Штампы и печати, термоэтикетки
-
-#### 🔧 **КРЕПЕЖ И СОЕДИНЕНИЕ**
-
-- Скотч (прозрачный, цветной, армированный)
-- Клей и клеевые составы
-- Стяжки пластиковые
-- Степлер и скобы
-- Веревки и шнуры, стрейч-лента
-
-#### 📄 **ДОКУМЕНТООБОРОТ И ВКЛАДЫШИ**
-
-- Накладные и сопроводительные документы
-- Инструкции по эксплуатации
-- Гарантийные талоны
-- Рекламные буклеты, визитки и флаеры
-- Благодарственные письма, купоны и промокоды
-
-#### 🧼 **ГИГИЕНА И БЕЗОПАСНОСТЬ**
-
-- Перчатки (латексные, нитриловые)
-- Маски и респираторы
-- Антисептики и дезинфекторы
-- Салфетки и тряпки
-- Фартуки и халаты, бахилы
-
-#### 🛠️ **ИНСТРУМЕНТЫ И ПРИСПОСОБЛЕНИЯ**
-
-- Ножи и резаки, ножницы
-- Линейки и рулетки
-- Упаковочные машины (ленточные)
-- Дозаторы скотча
-- Пистолеты для термоклея
-- Весы и мерная тара
-
-#### 🎨 **БРЕНДИНГ И ДИЗАЙН**
-
-- Фирменные пакеты с логотипом
-- Брендированные коробки
-- Цветная упаковочная бумага
-- Ленты и банты
-- Наклейки с логотипом компании
-- Подарочная упаковка
-
-#### ⚡ **СПЕЦИАЛИЗИРОВАННЫЕ МАТЕРИАЛЫ**
-
-- Антистатические пакеты
-- Влагопоглотители
-- Температурные индикаторы
-- Хрупкие наклейки
-- Пломбы и пломбировочные материалы
-- Защита от краж (магнитные датчики)
-
-#### 🏪 **ТОРГОВОЕ ОБОРУДОВАНИЕ**
-
-- Манекены и вешалки
-- Ценникодержатели
-- Подставки и стойки
-- Корзины и тележки
-- Зеркала примерочные
-- Освещение витрин
-
-#### 🚚 **ЛОГИСТИКА И СКЛАДИРОВАНИЕ**
-
-- Паллеты и поддоны
-- Контейнеры и ящики
-- Стеллажные системы
-- Погрузочные ремни
-- Защитные чехлы
-- Адресные ярлыки для груза
-
-#### 💻 **ТЕХНИЧЕСКИЕ РАСХОДНИКИ**
-
-- Картриджи для принтеров
-- Термоголовки, красящие ленты
-- Батарейки для сканеров
-- Чистящие средства для техники
-- Запчасти для упаковочного оборудования
-
-#### 🎪 **СЕЗОННЫЕ И ПРАЗДНИЧНЫЕ**
-
-- Новогодняя упаковка
-- Подарочные мешки
-- Праздничные ленты
-- Тематические наклейки
-- Открытки и поздравления
-- Сезонная упаковочная бумага
-
-**ПРИМЕЧАНИЕ**: Данные категории являются рекомендательными и могут быть адаптированы под специфику конкретного поставщика расходников.
-
----
-
-_Документ создан на основе файла description.md_
-_Версия: 1.1_
-_Дата: 2024_
-_Статус: АКТИВНЫЕ ПРАВИЛА_
diff --git a/archive/rules-v2.0.md b/archive/rules-v2.0.md
deleted file mode 100644
index fd93199..0000000
--- a/archive/rules-v2.0.md
+++ /dev/null
@@ -1,1819 +0,0 @@
-# ПРАВИЛА СИСТЕМЫ УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ - БАЗА ЗНАНИЙ v2.0
-
-> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данный файл является объединенной базой знаний системы на основе анализа rules.md, rules1.md и description.md. Все изменения должны согласовываться.
-
-## 🔤 ТЕРМИНЫ СИСТЕМЫ
-> Для людей → `В коде`
-- ТОВАР → `PRODUCT`
-- РАСХОДНИКИ → `CONSUMABLE`
-- БРАК → `DEFECT` *(планируется)*
-- ПРОДУКТ → `FINISHED_PRODUCT` *(планируется)*
-- ПОСТАВЩИК → `WHOLESALE`
-- СЕЛЛЕР → `SELLER`
-- ФУЛФИЛМЕНТ → `FULFILLMENT`
-- ЛОГИСТИКА → `LOGIST`
-
----
-
-## 📑 ОГЛАВЛЕНИЕ
-
-### 🏗️ **АРХИТЕКТУРА И ОСНОВЫ**
-
-1. [🎯 Основные принципы системы](#1--основные-принципы-системы)
-2. [📦 Типизация предметов](#2--типизация-предметов)
-3. [🏢 Структура кабинетов](#3--структура-кабинетов)
-4. [🔐 Система ролей и доступов](#4--система-ролей-и-доступов)
-
-### 🚚 **WORKFLOW И ПРОЦЕССЫ**
-
-5. [🚚 Workflow поставок](#5--workflow-поставок)
-6. [🔄 Процесс создания продукта](#6--процесс-создания-продукта)
-7. [📊 Система учета движения товаров](#7--система-учета-движения-товаров)
-
-### 🏢 **КАБИНЕТЫ СИСТЕМЫ**
-
-8. [🏠 Общие правила кабинетов](#8--общие-правила-кабинетов)
-9. [🏠 Кабинет селлера](#9--кабинет-селлера)
-10. [🏪 Кабинет поставщика](#10--кабинет-поставщика)
-11. [🏭 Кабинет фулфилмента](#11--кабинет-фулфилмента)
-12. [🚚 Кабинет логистики](#12--кабинет-логистики)
-
-### 🤝 **СИСТЕМА ПАРТНЕРСТВА**
-
-13. [🤝 Система партнерства и контрагентов](#13--система-партнерства-и-контрагентов)
-
-### 🌐 **ИНТЕГРАЦИИ И ФУНКЦИИ**
-
-14. [🌐 Интеграции с системой](#14--интеграции-с-системой)
-15. [📊 Статистика и аналитика](#15--статистика-и-аналитика)
-16. [⚠️ Критические запреты](#16--критические-запреты)
-
-### 💻 **ТЕХНИЧЕСКИЕ ПРАВИЛА**
-
-17. [📱 Правила пользовательского интерфейса](#17--правила-пользовательского-интерфейса)
-18. [🚨 Правила обработки ошибок](#18--правила-обработки-ошибок)
-19. [📈 Правила производительности](#19--правила-производительности)
-20. [🔐 Правила безопасности данных](#20--правила-безопасности-данных)
-21. [🎯 Правила качества кода](#21--правила-качества-кода)
-
-### 📋 **ДОПОЛНИТЕЛЬНО**
-
-22. [📋 Приложение: Дополнительные возможности и планы](#22-приложение-дополнительные-возможности-и-планы)
-
----
-
-## 🏷️ РЕЕСТР СУЩНОСТЕЙ СИСТЕМЫ
-
-### 📦 **ОСНОВНЫЕ ПРЕДМЕТЫ**
-
-| Сущность | Название в системе | Кабинет создания | Описание | Статус |
-| ---------- | ---------------------------------- | ---------------- | ----------------------------------------------- | --------------- |
-| Товар | `Product` (type: `PRODUCT`) | Поставщик | Базовый тип товара от поставщика | ✅ Реализовано |
-| Расходники | `Product` (type: `CONSUMABLE`) | Поставщик | Материалы и вспомогательные товары | ✅ Реализовано |
-| Брак | `Product` (type: `DEFECT`)* | Фулфилмент | Производная от товара с дефектами | 📋 Планируется |
-| Продукт | `Product` (type: `FINISHED_PRODUCT`)* | Фулфилмент | Готовый к продаже товар (производная от товара) | 📋 Планируется |
-
-> **\* Планируется**: Типы `DEFECT` и `FINISHED_PRODUCT` еще не добавлены в Prisma схему
-
-### 🏢 **ОРГАНИЗАЦИИ И РОЛИ**
-
-| Сущность | Название в системе | Основные функции | Статус |
-| ---------- | ---------------------------------- | --------------------------------------- | -------------- |
-| Поставщик | `Organization` (type: WHOLESALE) | Создает товары и расходники | ✅ Реализовано |
-| Селлер | `Organization` (type: SELLER) | Заказывает товары, управляет поставками | ✅ Реализовано |
-| Фулфилмент | `Organization` (type: FULFILLMENT) | Принимает товары, создает продукты | ✅ Реализовано |
-| Логистика | `Organization` (type: LOGIST) | Управляет доставками | ✅ Реализовано |
-
----
-
-## 1. 🎯 ОСНОВНЫЕ ПРИНЦИПЫ СИСТЕМЫ
-
-### 1.1 Главная логика системы
-
-**КЛЮЧЕВОЕ ПРАВИЛО**: Товар ≠ Продукт (это разные сущности в системе)
-
-- **ТОВАР** - сырье, базовый материал от поставщика
-- **ПРОДУКТ** - готовая к продаже единица после обработки
-
-### 1.2 Потоки в системе
-
-**ПОТОК ТОВАРОВ**: Поставщик → Фулфилмент → Селлер/Маркетплейс
-**ПОТОК РАСХОДНИКОВ**: Поставщик → Фулфилмент/Селлер (в зависимости от заказчика)
-
-### 1.3 Уникальность артикулов
-
-- **ФОРМАТ**: `СФ-{ТИП}-{КОД_КАТЕГОРИИ}-{КОД_ОРГАНИЗАЦИИ}-{TIMESTAMP}-{RANDOM}`
-- **ТИПЫ В АРТИКУЛЕ**:
- - `TOV` - Товар
- - `BRK` - Брак
- - `R` - Расходники
- - `PRD` - Продукт
-
----
-
-## 2. 📦 ТИПИЗАЦИЯ ПРЕДМЕТОВ
-
-### 2.1 Два реализованных и два планируемых типа предметов
-
-#### **1. ТОВАР** (`PRODUCT` - базовый тип)
-
-- **СОЗДАЕТСЯ**: Поставщиком
-- **СТАТУС**: Может быть активным/неактивным
-- **ЗАКАЗ**: Доступен для заказа всеми типами организаций
-- **ТРАНСФОРМАЦИЯ**: Может стать ПРОДУКТОМ или БРАКОМ
-- **ЦЕНА**: Обязательна, больше 0
-
-#### **2. РАСХОДНИКИ** (`CONSUMABLE` - базовый тип)
-
-- **СОЗДАЕТСЯ**: Поставщиком как универсальный тип
-- **КЛАССИФИКАЦИЯ ПРИ ЗАКАЗЕ**:
- - Фулфилмент заказывает → "Расходники фулфилмента"
- - Селлер заказывает → "Расходники селлеров"
-- **ДОСТУП**: Видны всем типам организаций в маркете
-
-#### **3. БРАК** (`DEFECT` - планируется, производная от товара)
-
-- **БУДЕТ СОЗДАВАТЬСЯ**: Фулфилментом на основе существующего ТОВАРА при обнаружении дефектов
-- **МОМЕНТ СОЗДАНИЯ**: В процессе "Создание продукта" / "В работе" после подсчета факта
-- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
-- **ЗАКАЗ**: ЗАПРЕЩЕН заказ брака
-- **СТАТУС**: Всегда неактивен для заказа
-- **ЦЕНА**: Для селлера - себестоимость дефектного товара, для фулфилмента - 0
-- **WORKFLOW**: Особый процесс списания и утилизации
-- **УЧЕТ**: Отдельный учет в статистике потерь
-- **ОТОБРАЖЕНИЕ**: Виден только для учета потерь
-- **⚠️ СТАТУС РАЗРАБОТКИ**: Тип `DEFECT` еще не добавлен в схему БД
-
-#### **4. ПРОДУКТ** (`FINISHED_PRODUCT` - планируется, производная от товара)
-
-- **БУДЕТ СОЗДАВАТЬСЯ**: Фулфилментом на основе ТОВАРА по заказу селлера
-- **ИНИЦИАТОР**: Селлер создает заказ с рецептурой, фулфилмент исполняет
-- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
-- **РЕЦЕПТУРА**: Задается селлером при создании заказа (Товар + Услуга + Расходники)
-- **СТАТУСЫ**: "в работе" → "готов к отправке"
-- **ЗАКАЗ**: Доступен только в статусе "готов к отправке"
-- **⚠️ СТАТУС РАЗРАБОТКИ**: Тип `FINISHED_PRODUCT` еще не добавлен в схему БД
-
-### 2.2 Обязательные поля карточки
-
-**КРИТИЧЕСКИ ВАЖНО**: Название, артикул, цена > 0, тип предмета
-**ИСКЛЮЧЕНИЕ ДЛЯ БРАКА**: Цена может быть 0 для фулфилмента (себестоимость для селлера)
-**ОБЯЗАТЕЛЬНО**: Количество (может быть 0 для предзаказа)
-**ДЛЯ ПРОИЗВОДНЫХ ТИПОВ**: Обязательная связь с родительским предметом
-
----
-
-## 3. 🏢 СТРУКТУРА КАБИНЕТОВ
-
-### 3.1 Кабинет поставщика
-
-**СОЗДАЕТ И УПРАВЛЯЕТ**:
-
-- **ТОВАР** - базовые товары поставщика
-- **РАСХОДНИКИ** - материалы и вспомогательные товары
-
-### 3.2 Кабинет фулфилмента
-
-**ПРИНИМАЕТ, ОБРАБАТЫВАЕТ И УПРАВЛЯЕТ**:
-
-- **ТОВАР** - базовые товары от поставщиков (принятые на склад)
-- **БРАК** - производная от товара (товары с дефектами)
-- **ПРОДУКТ** - производная от товара (готовые к продаже товары)
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
-
-### 3.3 Кабинет селлера
-
-**ЗАКАЗЫВАЕТ И УПРАВЛЯЕТ ПОСТАВКАМИ**:
-
-- Создает заказы товаров и расходников
-- Управляет поставками на фулфилмент и маркетплейсы
-- Отслеживает статусы поставок
-
----
-
-## 4. 🔐 СИСТЕМА РОЛЕЙ И ДОСТУПОВ
-
-### 4.1 Роли в системе
-
-| Роль | Функции |
-| ---------- | ------------------------------------------------------------------------ |
-| Поставщик | Создание товаров, одобрение заказов, отгрузка |
-| Селлер | Создание заказов, отслеживание поставок |
-| Фулфилмент | Приемка товаров, выбор логистики, управление складом, создание продуктов |
-| Логистика | Подтверждение доставки, транспортировка |
-
-### 4.2 Контроль доступа
-
-- **ЗАПРЕЩЕНО**: Поставщик не может добавлять собственные предметы в корзину
-- **ПРАВИЛО**: Только активные предметы (`isActive: true`) отображаются в маркете
-- **ОГРАНИЧЕНИЕ**: Доступ к заказам только для участников процесса
-- **БРАК**: Доступен только для просмотра, заказ запрещен
-
-### 4.3 Проверка остатков
-
-- **ОБЯЗАТЕЛЬНО**: Проверять наличие предмета перед добавлением в корзину
-- **ПРАВИЛО**: Количество в заказе не может превышать остаток на складе
-- **ИСКЛЮЧЕНИЕ**: Предзаказы (если реализована функция)
-- **ОСОБЕННОСТИ ПО ТИПАМ**:
- - **ТОВАР/ПРОДУКТ**: Стандартная проверка остатков
- - **БРАК**: Остатки учитываются, но заказ запрещен
- - **РАСХОДНИКИ**: Проверка с учетом резервирования под активные заказы
-
----
-
-## 5. 🚚 WORKFLOW ПОСТАВОК
-
-### 5.1 Жизненный цикл статусов
-
-```
-PENDING → SUPPLIER_APPROVED → CONFIRMED → LOGISTICS_CONFIRMED → SHIPPED → IN_TRANSIT → DELIVERED
-```
-
-### 5.2 Детальный процесс поставки
-
-#### **ЭТАП 1: Создание заказа**
-
-1. Селлер заказывает товар/расходники у поставщика
-2. Система создает SupplyOrder со статусом `PENDING`
-3. Автоматическое уведомление поставщику
-
-#### **ЭТАП 2: Обработка поставщиком**
-
-4. Поставщик получает оповещение
-5. Поставщик нажимает "Одобрить"
-6. Статус меняется на `SUPPLIER_APPROVED`
-
-#### **ЭТАП 3: Передача в фулфилмент**
-
-7. Поставка отображается в кабинете фулфилмента
-8. Фулфилмент выбирает ответственного и логистику
-9. Статус меняется на `CONFIRMED`
-
-#### **ЭТАП 4: Логистическое подтверждение**
-
-10. Логистика подтверждает доставку
-11. Статус меняется на `LOGISTICS_CONFIRMED`
-
-#### **ЭТАП 5: Отгрузка**
-
-12. Поставщик отгружает товар
-13. Статус меняется на `SHIPPED`, затем `IN_TRANSIT`
-
-#### **ЭТАП 6: Доставка и приемка**
-
-14. Логистика доставляет на фулфилмент
-15. Фулфилмент принимает товар
-16. Статус меняется на `DELIVERED`
-
-### 5.3 Система уведомлений
-
-**ОБЯЗАТЕЛЬНЫЕ УВЕДОМЛЕНИЯ**:
-
-- Поставщику: о новом заказе
-- Фулфилменту: о подтвержденной поставке
-- Логистике: о назначении на заявку
-- Селлеру: об изменении каждого статуса
-
----
-
-## 6. 🔄 ПРОЦЕСС СОЗДАНИЯ ПРОДУКТА
-
-### 6.1 Workflow создания продукта
-
-#### **ЭТАП 1: ПОСТУПЛЕНИЕ И ПОДСЧЕТ**
-
-1. Товар приходит на склад фулфилмента (статус "на складе")
-2. Подсчет фактического количества товара (может отличаться от плана)
-3. Проверка товара на дефекты и выявление брака
-
-#### **ЭТАП 2: ПОДГОТОВКА К РАБОТЕ**
-
-4. Поставка попадает в раздел "Создание продукта" / "Новые"
-5. Менеджер задает:
- - Дедлайн выполнения
- - Ответственного исполнителя
- - Место хранения готовых продуктов
-6. Нажимает "В работе"
-
-#### **ЭТАП 3: ОБРАБОТКА**
-
-7. Товары получают статус "в работе"
-8. Исполнитель работает по "рецептуре" селлера:
- - Применяет услуги фулфилмента
- - Использует расходники селлера
- - Использует расходники фулфилмента
-
-#### **ЭТАП 4: УЧЕТ ПЛАН/ФАКТ**
-
-9. Фиксируется в разделе "В работе":
- - **ПЛАН**: Количество из поставки селлера
- - **ФАКТ**: Реальное количество после подсчета = Брак + Хороший товар
- - **СОЗДАНИЕ БРАКА**: Данные о браке вносятся в кабинете фулфилмента
- - **ДЕТАЛИЗАЦИЯ**: По каждому размеру/объему
-
-#### **ЭТАП 5: ЗАВЕРШЕНИЕ**
-
-10. Исполнитель нажимает "Выполнено"
-11. Товары становятся продуктами со статусом "готов к отправке"
-12. Поставка переходит в "Выполнено"
-
-### 6.2 Рецептура продукта (задается селлером)
-
-**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
-
-**КОМПОНЕНТЫ**:
-
-- **БАЗОВЫЙ ТОВАР**: Исходный материал (например, футболка)
-- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг (например, "погладить")
-- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (например, фирменный пакет)
-- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (например, короб + маркировка)
-- **СВЯЗЬ С MP**: Опциональная связь с карточкой маркетплейса
-
----
-
-## 7. 📊 СИСТЕМА УЧЕТА ДВИЖЕНИЯ ТОВАРОВ
-
-### 7.1 Основные принципы учета
-
-- **ПРИХОД**: Товары поступают через принятые поставки (из "в пути" → "на складе")
-- **ОБРАБОТКА**: Товары переходят в статус "в работе" для создания продуктов
-- **РАСХОД**: Товары убывают при отгрузке, списании, возврате, превращении в продукты
-
-### 7.2 Двойной учет
-
-**ДОПОЛНИТЕЛЬНЫЕ ЗНАЧЕНИЯ (показатели движения)**:
-
-- **ПРИБЫЛО**: Количество предметов, поступивших на склад
-- **УБЫЛО**: Количество предметов, списанных со склада
-
-**ОСНОВНЫЕ ЗНАЧЕНИЯ (текущие остатки)**:
-
-- **ФОРМУЛА**: Основные значения = Предыдущие остатки + Прибыло - Убыло
-- **ОТОБРАЖЕНИЕ**: Показываются в каждом модуле статистики
-
-### 7.3 Состояния процессов в фулфилменте
-
-- **"На складе"** - состояние завершения процесса поставки (товар принят)
-- **"В работе"** - состояние процесса "Создание продукта" (товар обрабатывается)
-- **ВАЖНО**: Это состояния процессов, а не взаимоисключающие характеристики товара
-
----
-
-## 8. 🏠 ОБЩИЕ ПРАВИЛА КАБИНЕТОВ
-
-### 8.1 Универсальная структура кабинетов
-
-**ВСЕ ТИПЫ КАБИНЕТОВ** включают следующие обязательные разделы:
-
-#### 8.1.1 Страница "Главная"
-
-**СТАТУС**: Планируется к реализации
-**ДОСТУП**: Через навигацию в sidebar для всех типов кабинетов
-**СОДЕРЖАНИЕ**: Пока пустые страницы, будут наполнены позже
-
-**ПРАВИЛА**:
-
-- **ОБЯЗАТЕЛЬНО**: Каждый тип кабинета должен иметь страницу "Главная"
-- **НАВИГАЦИЯ**: Доступ через кнопку в sidebar (первая в списке)
-- **УНИВЕРСАЛЬНОСТЬ**: Одинаковая структура навигации для всех кабинетов
-- **ПЛАНЫ**: Содержание страниц будет определено на следующих этапах
-
-#### 8.1.2 Общие разделы для всех кабинетов
-
-**УНИВЕРСАЛЬНЫЕ РАЗДЕЛЫ** (доступны всем типам):
-
-- 🏠 **Главная** - основная страница кабинета (планируется)
-- 🛒 **Маркет** - просмотр и заказ товаров
-- 🤝 **Партнеры** - управление контрагентами
-- 💬 **Мессенджер** - внутренняя связь
-- ⚙️ **Настройки** - профиль и конфигурация
-
-**СПЕЦИАЛИЗИРОВАННЫЕ РАЗДЕЛЫ** (зависят от типа кабинета):
-
-- Определяются в соответствующих разделах каждого кабинета
-
-### 8.2 Правила sidebar навигации
-
-#### 8.2.1 Структура навигации
-
-**ОБЩИЙ ПРИНЦИП**:
-
-- Условное отображение: `{user?.organization?.type === "TYPE" && (...)}`
-- Адаптивность: сворачиваемый sidebar с `getSidebarMargin()`
-- Состояния активности: подсветка текущего раздела
-
-**ПОРЯДОК РАЗДЕЛОВ В SIDEBAR**:
-
-1. 🏠 **Главная** (планируется для всех)
-2. **Специализированные разделы** (зависят от типа кабинета)
-3. 🛒 **Маркет** (универсальный)
-4. 🤝 **Партнеры** (универсальный)
-5. 💬 **Мессенджер** (универсальный)
-6. ⚙️ **Настройки** (универсальный)
-7. **Выход** (универсальный)
-
-#### 8.2.2 Типо-зависимая логика
-
-**АДАПТИВНЫЙ РОУТИНГ**:
-
-```typescript
-// Пример: кнопка "Поставки" ведет на разные страницы
-const handleSuppliesClick = () => {
- switch (user?.organization?.type) {
- case "FULFILLMENT":
- router.push("/fulfillment-supplies");
- break;
- case "SELLER":
- router.push("/supplies");
- break;
- case "WHOLESALE":
- router.push("/supplies");
- break;
- case "LOGIST":
- router.push("/logistics-orders");
- break;
- }
-};
-```
-
----
-
-## 9. 🏠 КАБИНЕТ СЕЛЛЕРА
-
-### 9.1 Структура раздела "Мои поставки"
-
-#### **🏢 ПОСТАВКИ НА ФУЛФИЛМЕНТ**:
-
-- **Товар** - поставка товаров для создания продуктов
- - **Карточки** - поставка через WB API с рецептурой (результат: WildberriesSupply)
- - **Поставщики** - заказ товаров у поставщиков с рецептурой (результат: SupplyOrder)
-- **Расходники селлера** - поставка материалов для товаров селлера
-
-#### **🛒 ПОСТАВКИ НА МАРКЕТПЛЕЙСЫ** _(планируется)_:
-
-- **Wildberries** - прямые поставки на WB
-- **Ozon** - прямые поставки на Ozon
-
-### 9.2 Создание поставки расходников селлера
-
-#### **Структура страницы**:
-
-**БЛОК 1: ПОСТАВЩИКИ** _(обязательный, верхняя часть)_:
-
-- Карточки поставщиков из раздела "Партнеры"
-- Горизонтальный скролл при превышении ширины
-- Выбор только одного поставщика одновременно
-
-**БЛОК 2: РАСХОДНИКИ** _(зависимый, центральная часть)_:
-
-- Активен только после выбора поставщика
-- Сортировка: цена, название, категория
-- Фильтры: категория, ценовой диапазон
-- Карточка с полем ввода количества и кнопками +/-
-
-**БЛОК 3: КОРЗИНА** _(правая часть)_:
-
-- **РАСПОЛОЖЕНИЕ**: Правая часть экрана
-- **СОДЕРЖАНИЕ**:
- - Счетчик видов расходников
- - Детализация по каждому расходнику (название, количество, цена, сумма)
- - Общая сумма всех расходников
-- **УПРАВЛЕНИЕ**:
- - Изменение количества (с валидацией остатков)
- - Удаление позиций
-- **ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
- - Выбор фулфилмент-центра (из партнеров)
- - Дата поставки (не прошедшая, по умолчанию - текущая)
-
-#### **Валидация и ограничения**:
-
-**КОЛИЧЕСТВО ТОВАРОВ**:
-
-- **МИНИМУМ**: 1 единица/комплект
-- **МАКСИМУМ**: Остаток у поставщика
-- **ПРОВЕРКА**: В реальном времени при изменении
-
-**ДАТА ПОСТАВКИ**:
-
-- **ЗАПРЕТ**: Выбор прошедших дат
-- **ПО УМОЛЧАНИЮ**: Дата создания поставки
-
-**ОБЯЗАТЕЛЬНЫЕ ПОЛЯ**:
-
-- Выбор поставщика
-- Минимум один расходник в корзине
-- Выбор фулфилмент-центра
-- Дата поставки
-
-### 8.3 Отображение созданных поставок
-
-#### **Многоуровневая таблица**:
-
-**ПЕРВЫЙ УРОВЕНЬ** _(основной список)_:
-
-- **СОРТИРОВКА**: Номер поставки от большего к меньшему
-- **ОБЯЗАТЕЛЬНЫЕ КОЛОНКИ**:
- - Порядковый номер поставки
- - Количество видов расходников
- - Стоимость всей поставки
- - Количество категорий
- - Статус поставки
-
-**ВТОРОЙ УРОВЕНЬ** _(детализация по клику)_:
-
-- **АКТИВАЦИЯ**: По клику на строку первого уровня
-- **СОДЕРЖАНИЕ**:
- - Название расходника
- - Количество
- - Цена
- - Категория
- - Поставщик
-- **ОГРАНИЧЕНИЯ**: Только просмотр, редактирование запрещено
-
-### 8.4 Статусы поставок селлера
-
-1. **В работе** - создана селлером
-2. **Одобрена** - подтверждена поставщиком
-3. **Ожидает отгрузки** - логистика назначена
-4. **В пути** - товар отгружен
-5. **Доставлена/Принято** - получена фулфилментом
-
-### 9.3 Правила кнопки "Создать поставку" в разделе "Мои поставки"
-
-#### **9.3.1 Общие принципы**
-
-- **КОНТЕКСТНОСТЬ**: Кнопка создания появляется только в активном табе
-- **РАСПОЛОЖЕНИЕ**: Правая часть строки таба, на том же уровне что и название
-- **СТИЛИСТИКА**: В том же стиле что и сами табы (соответствует уровню иерархии)
-- **ФУНКЦИОНАЛЬНОСТЬ**: Кнопка ведет на страницу создания поставки соответствующего типа
-
-#### **9.3.2 Размещение кнопок по табам**
-
-**УРОВЕНЬ 2 (Подтабы фулфилмента):**
-
-- **📦 Товар → Карточки**: Кнопка "Создать поставку" → `/supplies/create-cards`
-- **📦 Товар → Поставщики**: Кнопка "Создать поставку" → `/supplies/create-suppliers`
-- **🔧 Расходники селлера**: Кнопка "Создать поставку" → `/supplies/create-consumables`
-
-**УРОВЕНЬ 2 (Подтабы маркетплейсов):**
-
-- **🟣 Wildberries**: Кнопка "Создать поставку" → `/supplies/create-wildberries`
-- **🔵 Ozon**: Кнопка "Создать поставку" → `/supplies/create-ozon`
-
-#### **9.3.3 Стили кнопок**
-
-**ДЛЯ УРОВНЯ 2 (h-9):**
-
-```css
-/* Размер и отступы */
-h-9 px-3 py-1 ml-auto
-
-/* Фон и границы */
-bg-white/8 border border-white/20 hover:bg-white/12
-
-/* Текст и иконки */
-text-xs font-medium text-white/80 hover:text-white
-
-/* Скругления */
-rounded-lg
-
-/* Переходы */
-transition-all duration-150
-```
-
-**ДЛЯ УРОВНЯ 3 (h-8):**
-
-```css
-/* Размер и отступы */
-h-8 px-2 py-1 ml-auto
-
-/* Фон и границы */
-bg-white/5 border border-white/15 hover:bg-white/8
-
-/* Текст и иконки */
-text-xs font-normal text-white/60 hover:text-white/80
-
-/* Скругления */
-rounded-md
-
-/* Переходы */
-transition-all duration-150
-```
-
-#### **9.3.4 Поведение кнопок**
-
-- **ВИДИМОСТЬ**: Кнопка показывается только в активном табе
-- **ИКОНКА**: `Plus` размером `h-3 w-3` слева от текста
-- **ТЕКСТ**: "Создать" на мобильных, "Создать поставку" на десктопах
-- **АДАПТИВНОСТЬ**: Скрытие текста на маленьких экранах (`hidden sm:inline`)
-
-#### **9.3.5 Удаление старой кнопки**
-
-- **УБРАТЬ**: Текущий dropdown "Создать поставку" из верхней части
-- **ПРИЧИНА**: Заменяется контекстными кнопками в табах
-- **СОХРАНИТЬ**: Стили и логику навигации, но адаптировать под новые роуты
-
-### 9.4 Структура страницы "Мои поставки" - Трёхблочная архитектура
-
-#### **9.4.1 Обязательная структура страницы**
-
-**ПРИНЦИП**: Страница состоит из трёх визуально разделённых блоков
-
-```
-┌─────────────────────────────────────────┐
-│ 1. БЛОК ТАБОВ (навигация) │
-│ - Фиксированная высота │
-│ - Glass-эффект │
-│ - Иерархическая структура │
-├─────────────────────────────────────────┤
-│ 2. БЛОК СТАТИСТИКИ (метрики) │
-│ - Контекстные данные │
-│ - 4 карточки в ряд (desktop) │
-│ - Динамическое обновление │
-├─────────────────────────────────────────┤
-│ 3. ОСНОВНОЙ БЛОК (контент) │
-│ - Сохраняет весь функционал │
-│ - Таблицы, фильтры, действия │
-│ - Высота до низа sidebar │
-└─────────────────────────────────────────┘
-```
-
-#### **9.4.2 Блок статистики - контекстные метрики**
-
-**ПРАВИЛО**: Статистика меняется в зависимости от выбранных табов
-
-**Для путей "Фулфилмент → Товар → Карточки/Поставщики":**
-- Всего поставок
-- Активных поставок
-- Сумма активных поставок
-- В пути
-
-**Для пути "Фулфилмент → Расходники селлера":**
-- Всего поставок
-- Активных поставок
-- Видов расходников
-- Критические остатки
-
-**Для путей "Маркетплейсы → Wildberries/Ozon":**
-- Поставок на маркетплейс
-- Товаров отправлено
-- Возвраты за неделю
-- Эффективность поставок
-
-#### **9.4.3 Высота основного блока**
-
-**ФОРМУЛА РАСЧЕТА**:
-```css
-height: calc(100vh - headerHeight - tabsHeight - statsHeight - margins)
-```
-
-**ПРАВИЛО ВЫРАВНИВАНИЯ**:
-- Нижняя граница основного блока должна быть на одном уровне с нижней границей sidebar
-- При изменении размера окна высота пересчитывается
-- Внутренний скролл: `overflow-y-auto`
-
-#### **9.4.4 Сохранение функционала**
-
-**КРИТИЧЕСКИ ВАЖНО**: При добавлении блока статистики весь существующий функционал сохраняется:
-- Таблицы с данными поставок
-- Фильтры и сортировка
-- Кнопки действий
-- Детализация при клике
-- Пагинация
-- Поиск
-
-**ЗАПРЕЩЕНО**:
-- Удалять существующие компоненты
-- Изменять логику работы таблиц
-- Нарушать существующие API вызовы
-
-#### **9.4.5 Проверка остатков при создании поставки**
-
-**ОБЯЗАТЕЛЬНАЯ ВАЛИДАЦИЯ**:
-
-1. **Проверка на клиенте**:
-```typescript
-// При изменении количества
-if (quantity > product.stock) {
- toast.error(`Недостаточно товара. Доступно: ${product.stock}`);
- return;
-}
-```
-
-2. **Проверка на сервере**:
-```typescript
-// Перед созданием заказа
-const stockAvailable = await checkStockAvailability(productId, quantity);
-if (!stockAvailable) {
- throw new Error("Insufficient stock");
-}
-```
-
-3. **Логирование проверок**:
-- Все попытки добавления в корзину
-- Результаты проверки остатков
-- ID пользователя и timestamp
-
-#### **9.4.6 Адаптивность блоков**
-
-**Desktop (>1024px)**:
-- Все три блока вертикально
-- Статистика: 4 карточки в ряд
-
-**Tablet (768-1024px)**:
-- Все три блока вертикально
-- Статистика: 2 карточки в ряд
-
-**Mobile (<768px)**:
-- Блоки в колонку
-- Статистика: 1 карточка в ряд
-- Сворачиваемая статистика
-
-### 9.5 Табы "Карточки" и "Поставщики" - объединённая логика
-
-#### **9.5.1 Принцип единого типа предмета**
-
-**КЛЮЧЕВОЕ ПРАВИЛО**: Табы "Карточки" и "Поставщики" - это два способа создания поставок одного типа предмета (ТОВАР)
-
-**СПОСОБЫ СОЗДАНИЯ**:
-- **Карточки** - импорт товаров через WB API с автоматическим созданием поставки
-- **Поставщики** - прямой заказ товаров у поставщика с указанием рецептуры
-
-**РЕЗУЛЬТАТ**: Оба способа создают `SupplyOrder` с товарами типа `PRODUCT`
-
-#### **9.5.2 Общая статистика**
-
-**ПРАВИЛО**: Блок статистики показывает ОДИНАКОВЫЕ данные для обоих табов
-
-**МЕТРИКИ ДЛЯ ТАБОВ "КАРТОЧКИ" И "ПОСТАВЩИКИ"**:
-- Всего поставок товаров (из всех источников)
-- Активных поставок товаров (в работе)
-- Сумма активных поставок товаров
-- Товаров в пути (все способы доставки)
-
-**ЗАПРЕЩЕНО**: Разделять статистику по способу создания
-
-#### **9.5.3 Общий основной блок**
-
-**СОДЕРЖИМОЕ**: Единая таблица всех поставок товаров
-
-**ИСТОЧНИКИ ДАННЫХ**:
-- Поставки, созданные через импорт карточек WB
-- Поставки, созданные через заказ у поставщиков
-- Все промежуточные и завершённые поставки
-
-**РАЗЛИЧИЯ ТАБОВ**:
-- Только кнопки создания ведут на разные страницы
-- Таб "Карточки": `/supplies/create-cards`
-- Таб "Поставщики": `/supplies/create-suppliers`
-
-#### **9.5.4 Структура таблицы поставок товаров**
-
-**ОБЯЗАТЕЛЬНЫЕ КОЛОНКИ**:
-- Номер поставки
-- Способ создания (иконка: 📱 карточки / 🏢 поставщик)
-- Количество товаров
-- Общая стоимость
-- Поставщик/Источник
-- Дата поставки (планируемая дата доставки)
-- Статус
-- Дата создания
-- Действия
-
-**ФИЛЬТРЫ**:
-- По статусу workflow
-- По способу создания
-- По поставщику
-- По периоду
-- По дате поставки
-- По сумме заказа
-
-#### **9.5.5 Детализация поставки**
-
-**ПРИ КЛИКЕ НА ПОСТАВКУ**:
-- Раскрывается детализация товаров в поставке
-- Информация о рецептуре (если применимо)
-- История изменения статусов
-- Логистическая информация
-- Связанные документы
-
-**ДЕЙСТВИЯ В ДЕТАЛИЗАЦИИ**:
-- Отслеживание статуса
-- Связь с поставщиком/логистикой
-- Отмена (если статус позволяет)
-- Экспорт данных
-
-#### **9.5.6 Принципы реализации**
-
-**ОБЯЗАТЕЛЬНО**:
-- Использовать единый компонент для отображения таблицы
-- Агрегировать данные из всех источников в статистике
-- Сохранять фильтрацию при переключении между табами
-
-**ЗАПРЕЩЕНО**:
-- Создавать отдельные таблицы для разных способов создания
-- Разделять статистику по источникам
-- Дублировать логику отображения поставок
-
-### 9.7 Форма создания поставки товаров через поставщиков
-
-#### **9.7.1 Маршрут и навигация**
-**URL**: `/supplies/create-suppliers`
-**Доступ**: Только для селлеров и администраторов
-**Возврат**: Кнопка "Назад" ведет к табу "Поставщики" в разделе товаров
-
-#### **9.7.2 Структура страницы - 3 блока (аналогично create-consumables)**
-
-**БЛОК 1: ЗАГОЛОВОК И НАВИГАЦИЯ**
-- Заголовок: "Создание поставки товаров через поставщиков"
-- Подзаголовок: "Прямой заказ товаров у поставщика с указанием рецептуры"
-- Кнопка "Назад" (возврат к табу "Поставщики")
-- Индикатор прогресса: "Шаг 1 из 3" (Товары → Логистика → Подтверждение)
-
-**БЛОК 2: ФОРМА ТОВАРОВ**
-- **Выбор поставщика**: Работает как на create-consumables (выбор из существующих)
-- **Каталог товаров поставщика**: Отображение доступных товаров выбранного поставщика
-- **Корзина товаров**: Система добавления товаров в корзину как на create-consumables
-- **Поля товара при добавлении в корзину**:
- - Название товара (из каталога поставщика)
- - Артикул поставщика (из каталога)
- - Категория (из каталога)
- - Количество (вводит пользователь, > 0)
- - Цена за единицу (из каталога или договорная)
- - Комплектность (если есть) - описание состава комплекта
- - Рецептура/состав (текстовое поле для дополнений)
- - Параметры товара (цвет, размер, материал - если применимо)
-
-**БЛОК 3: КОРЗИНА И ИТОГИ**
-- Таблица товаров в корзине
-- **Желаемая дата поставки** (обязательное поле с календарем)
-- **Выбор логистики**:
- - Dropdown "Логистическая компания" (опционально)
- - Если не выбрано: "Логистику выберет фulfilment"
- - Ориентировочная стоимость логистики (расчетная)
-- Общее количество товаров в корзине
-- Общая стоимость товаров
-- Ориентировочная стоимость фулфилмента (расчетная)
-- **Итого к оплате** (сумма всех составляющих)
-- Кнопка "Продолжить" (переход к подтверждению заказа)
-
-#### **9.7.3 Принцип работы с поставщиками-партнерами**
-
-**ИСТОЧНИК ПОСТАВЩИКОВ**:
-- Показываются только поставщики-партнеры из таблицы `Counterparty`
-- Фильтрация: `counterparty.type === "WHOLESALE"`
-- Партнерство может быть создано двумя способами:
- 1. Через заказ в маркете → автоматическое партнерство после одобрения
- 2. Через раздел "Партнеры" → отправка и принятие заявки `CounterpartyRequest`
-
-**ВЫБОР ПОСТАВЩИКА**:
-- Dropdown с поиском партнеров-поставщиков
-- Отображение: Название поставщика, ИНН, статус партнерства
-- Только активные партнеры с типом WHOLESALE
-- При выборе загружается каталог товаров поставщика из `Product` таблицы
-
-**КАТАЛОГ ТОВАРОВ ПАРТНЕРА**:
-- Товары из `Product` where `organizationId = поставщик.id`
-- Отображение в виде карточек с полями:
- - Картинка товара
- - Название, артикул
- - Цена за единицу
- - Доступное количество
- - Поле ввода количества (минимум 5 цифр) с кнопками +/-
-- Фильтрация по категориям
-- Поиск по названию/артикулу
-
-#### **9.7.4 Принцип работы с товарами и корзиной (как на create-consumables)**
-
-**ДОБАВЛЕНИЕ В КОРЗИНУ**:
-- Клик по товару → модальное окно с деталями
-- Указание количества, комплектности, дополнительных параметров
-- Кнопка "Добавить в корзину"
-
-**КОРЗИНА**:
-- Отображение добавленных товаров в таблице
-- Колонки: Товар, Артикул, Количество, Цена, Комплектность, Сумма
-- Возможность изменения количества
-- Кнопка удаления товара из корзины
-- Автоматический пересчет итогов
-
-#### **9.7.5 Поля формы товара**
-
-**ОСНОВНЫЕ ПОЛЯ** (из каталога поставщика):
-- Название товара
-- Артикул поставщика
-- Категория
-- Базовая цена
-
-**ПОЛЯ ДЛЯ ЗАПОЛНЕНИЯ**:
-- Количество (целое число > 0)
-- Комплектность (если есть) - текстовое описание состава
-- Цена за единицу (может отличаться от базовой по договоренности)
-- Описание/рецептура (дополнительные требования)
-- Особые требования к товару
-
-**ПАРАМЕТРЫ ТОВАРА** (если применимо):
-- Цвет, Размер, Материал, Бренд
-- Динамические параметры для конкретной категории
-
-#### **9.7.6 Валидация и проверки**
-
-**ОБЯЗАТЕЛЬНАЯ ВАЛИДАЦИЯ**:
-- Выбран поставщик
-- В корзине минимум 1 товар
-- Указана желаемая дата поставки
-- У всех товаров указано количество > 0
-- Все товары проверены на наличие у поставщика
-- Количество каждого товара ≤ доступному остатку
-
-**ПРЕДУПРЕЖДЕНИЯ**:
-- "Товар заканчивается на складе поставщика (осталось X шт)"
-- "Товар недоступен, выберите другое количество"
-- "Выбранная дата может не соответствовать возможностям логистики"
-- "Габариты не указаны - стоимость логистики ориентировочная"
-- Превышение лимитов заказа
-- Значительное отклонение цены от каталожной
-
-**АВТОМАТИЧЕСКИЕ РАСЧЕТЫ**:
-- Стоимость по каждому товару = количество × цена
-- Общая стоимость товаров в корзине
-- Комиссии фулфилмента (% от стоимости)
-- Логистика (по весу/габаритам или фиксированная ставка)
-
-#### **9.7.7 Выбор логистики**
-
-**ОПЦИИ ЛОГИСТИКИ**:
-- "Автоматический выбор" (фулфилмент выберет оптимальную)
-- Список доступных логистических компаний
-- Отображение ориентировочной стоимости по каждой опции
-- Сроки доставки по каждой опции
-
-**ЛОГИКА ВЫБОРА**:
-- Если селлер не выбрал → фулфилмент выбирает оптимальную
-- Если селлер выбрал → используется выбранная компания
-- Финальная стоимость может отличаться от ориентировочной
-
-#### **9.7.8 Желаемая дата поставки**
-
-**РАСПОЛОЖЕНИЕ**: В блоке корзины и итогов
-
-**ПОЛЕ "ЖЕЛАЕМАЯ ДАТА ПОСТАВКИ"**:
-- **Обязательное поле** для планирования
-- **Календарь** с ограничениями:
- - Минимум: завтра (нельзя выбрать прошедшие даты)
- - Максимум: +90 дней от текущей даты
-- **Проверка на рабочие дни** (опционально)
-- **Подсказки** по срокам доставки от выбранной логистической компании
-
-**ЛОГИКА РАБОТЫ С ДАТОЙ**:
-- При выборе логистики → автоматическое обновление возможных дат
-- При изменении даты → пересчет стоимости логистики (если зависит от срочности)
-- Отображение: "Ориентировочная дата доставки: 15-17 января 2024"
-
-#### **9.7.9 Ограничения и проверки товаров**
-
-**КОЛИЧЕСТВЕННЫЕ ОГРАНИЧЕНИЯ**:
-- **НЕТ ограничений** на максимальное количество товаров в поставке
-- **ОБЯЗАТЕЛЬНАЯ проверка** доступности на складах поставщиков
-- **В реальном времени** проверка остатков при добавлении в корзину
-- **Предупреждения** если запрашиваемое количество превышает доступное
-- **Блокировка** добавления товара если его нет в наличии у поставщика
-
-**ЛОГИКА ПРОВЕРКИ ОСТАТКОВ**:
-- При добавлении товара в корзину → запрос к API поставщика
-- При изменении количества → повторная проверка
-- Отображение доступного количества рядом с полем ввода
-- Сообщение: "Доступно: 150 шт" или "Нет в наличии"
-
-#### **9.7.10 Габариты и логистические данные**
-
-**НА ЭТАПЕ СОЗДАНИЯ ПОСТАВКИ**:
-- **НЕТ обязательных** полей для габаритов/веса
-- **Ориентировочный расчет** логистики по средним показателям категории
-- **Предупреждение** что финальная стоимость может отличаться
-
-**В КАБИНЕТЕ ПОСТАВЩИКА** (при одобрении поставки):
-- **Возможность ввести** точные логистические данные:
- - Габариты каждого товара (Д×Ш×В в см)
- - Объем упаковки (в куб.м)
- - Количество мест/коробок
- - Общий вес поставки
-- **НЕ обязательные** для заполнения (можно оставить пустыми)
-- **Уточнение стоимости** логистики после заполнения данных
-
-#### **9.7.11 Навигация и сохранение**
-
-**УПРАВЛЕНИЕ СЕССИЕЙ**:
-- Автосохранение корзины каждые 30 секунд
-- Сохранение состояния при смене поставщика
-- Предупреждение при попытке покинуть страницу
-
-**ПЕРЕХОДЫ**:
-- "Назад" → возврат к табу "Поставщики" (с предупреждением о потере данных)
-- "Очистить корзину" → очистка всех товаров с подтверждением
-- "Продолжить" → переход к подтверждению и оформлению заказа
-
-#### **9.7.12 Интеграция с системой**
-
-**СВЯЗЬ С ДАННЫМИ**:
-- Работа с каталогом товаров поставщиков
-- Проверка остатков в реальном времени
-- Создание черновика `SupplyOrder` типа `ТОВАР` способом `suppliers`
-
-**ОСОБЕННОСТИ**:
-- Отличие от "Карточки": здесь товары выбираются из каталога поставщика
-- Отличие от "Расходники": здесь товары предназначены для перепродажи
-- Возможность указания комплектности для наборов товаров
-
-### 9.8 Экономика
-
-_Раздел находится в разработке. Будет добавлен позже._
-
----
-
-## 10. 🏪 КАБИНЕТ ПОСТАВЩИКА
-
-### 10.1 Основные возможности
-
-**СОЗДАНИЕ КАРТОЧЕК**:
-
-- **ТОВАР** - базовые товары поставщика
-- **РАСХОДНИКИ** - материалы и вспомогательные товары
-
-### 10.2 Обязательные поля карточки
-
-**Базовые параметры**:
-
-- Фото (система загрузки и управления изображениями)
-- Название
-- Автоматическая генерация артикула СФ
-- Описание
-- Количество предметов в единицах
-- Количество комплектов (если применимо)
-- Категория (28 предустановленных + специализированные для расходников)
-- Бренд, Цвет, Размер/объем, Вес, Габариты, Материал
-- Цена за единицу и за комплект
-- Заказано, В пути, Остаток, Продано
-
-### 10.3 Отображение информации в карточках
-
-**Каждая карточка содержит**:
-
-- Основное изображение
-- Название и артикул СФ
-- Цена за единицу/комплект
-- Категория и статус активности
-- Данные о движении: остаток, заказано, в пути, продано
-- Индикаторы низких остатков
-
-### 10.4 Статистика поставщика
-
-**Блок статистики включает**:
-
-- **ТОВАРЫ**: Общая статистика товаров поставщика
-- **РАСХОДНИКИ**: Материалы и вспомогательные товары
- - Классифицируются при заказе в зависимости от заказчика
- - Общая статистика по всем расходникам
-
-### 10.5 Экономика
-
-_Раздел находится в разработке. Будет добавлен позже._
-
----
-
-## 11. 🏭 КАБИНЕТ ФУЛФИЛМЕНТА
-
-### 11.1 Структура раздела склад фулфилмента
-
-#### **Модули в обязательной последовательности**:
-
-1. **📦 ПРОДУКТ** - готовые к продаже товары
-2. **🛒 ТОВАР** - базовые товары от поставщиков
- - Товары "на складе" - готовы к обработке
- - Товары "в обработке" - в процессе создания продукта
-3. **❌ БРАК** - товары с дефектами
-4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары
-5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
- - **КЛИКАБЕЛЬНЫЙ МОДУЛЬ** - содержит полноценный раздел учёта
-
-### 11.2 Движение товаров в фулфилменте
-
-#### **Поступление товаров**:
-
-- **ПОСТАВКИ**: От поставщиков через систему заказов
-- **ВОЗВРАТЫ**: Товары, возвращенные с ПВЗ
-- **ПЕРЕМЕЩЕНИЯ**: Между складами и магазинами
-
-#### **Расход товаров**:
-
-- **ОТГРУЗКА**: Товары отправлены селлерам
-- **СПИСАНИЕ**: Брак, утрата, утилизация
-- **ВОЗВРАТ**: Возврат поставщику
-- **ИСПОЛЬЗОВАНИЕ**: Расходники для операций
-
-### 11.3 Модуль "Расходники фулфилмента"
-
-**ОСОБЕННОСТИ**:
-
-- **ИНТЕРАКТИВНОСТЬ**: Кликабельный элемент в статистике
-- **ФУНКЦИОНАЛЬНОСТЬ**: Полноценный раздел учёта
-- **СОДЕРЖАНИЕ**: Управление расходниками фулфилмента
-
-### 11.4 Блок детализации по магазинам
-
-**НАЗНАЧЕНИЕ**: Распределение товаров по торговым точкам/магазинам
-
-**ФУНКЦИИ**:
-
-- **ОСТАТКИ ПО МАГАЗИНАМ**: Отображение количества товаров в каждом магазине
-- **УПРАВЛЕНИЕ РАСПРЕДЕЛЕНИЕМ**: Перемещение товаров между точками
-- **КОНТРОЛЬ ДВИЖЕНИЯ**: Отслеживание перемещений между складами и магазинами
-- **АНАЛИТИКА**: Сравнение эффективности разных точек
-- **ПЛАНИРОВАНИЕ**: Оптимизация распределения товаров
-
-### 11.5 Экономика
-
-_Раздел находится в разработке. Будет добавлен позже._
-
----
-
-## 12. 🚚 КАБИНЕТ ЛОГИСТИКИ
-
-### 12.1 Основные функции логистики
-
-**РОЛЬ В СИСТЕМЕ**: Управление доставками и транспортировкой
-
-**ОСНОВНЫЕ ФУНКЦИИ**:
-
-- **ПОДТВЕРЖДЕНИЕ ДОСТАВКИ**: Подтверждение возможности доставки поставок
-- **ТРАНСПОРТИРОВКА**: Организация и выполнение доставки товаров
-- **КОНТРОЛЬ МАРШРУТОВ**: Управление логистическими маршрутами
-- **ОТСЛЕЖИВАНИЕ**: Мониторинг грузов в пути
-
-### 12.2 Workflow для логистики
-
-#### **ЭТАП 1: Получение заявки**
-
-1. Логистика получает уведомление о новой поставке
-2. Заявка появляется в разделе "Заявки" кабинета логистики
-3. Логист изучает детали поставки (объем, вес, маршрут)
-
-#### **ЭТАП 2: Подтверждение доставки**
-
-4. Логист нажимает кнопку "Одобрить"
-5. Статус поставки меняется на `LOGISTICS_CONFIRMED`
-6. Уведомления отправляются всем участникам
-
-#### **ЭТАП 3: Забор товара**
-
-7. Логист приезжает к поставщику за товаром
-8. Поставщик отгружает товар логисту
-9. Поставщик отмечает "Отправлено"
-10. Статус меняется на `SHIPPED`, затем `IN_TRANSIT`
-
-#### **ЭТАП 4: Доставка**
-
-11. Логистика доставляет товар на фулфилмент-центр
-12. В кабинете логистики нажимают "Доставлено"
-13. Фулфилмент принимает товар и отмечает "Принято"
-
-### 12.3 Система тарификации
-
-**ПАРАМЕТРЫ ТАРИФИКАЦИИ**:
-
-- **Тариф до 1м³** - базовая стоимость для малых грузов
-- **Тариф свыше 1м³** - стоимость для крупных грузов
-- **Маршруты доставки** - от точки отправления до точки назначения
-- **Описание услуг** - дополнительные условия доставки
-
-**РАСЧЕТ СТОИМОСТИ**:
-
-- Автоматический расчет стоимости доставки по объему груза
-- Отображение примерной стоимости при создании заказа
-- Учет специфики маршрута и условий доставки
-
-### 12.4 Управление заявками
-
-**РАЗДЕЛЫ КАБИНЕТА ЛОГИСТИКИ**:
-
-- **НОВЫЕ ЗАЯВКИ** - поступившие заявки на доставку
-- **В РАБОТЕ** - принятые к исполнению заявки
-- **ВЫПОЛНЕННЫЕ** - завершенные доставки
-- **ОТКЛОНЕННЫЕ** - заявки, которые не могут быть выполнены
-
-**ИНФОРМАЦИЯ О ЗАЯВКЕ**:
-
-- Детали груза (объем, вес, габариты)
-- Маршрут доставки (откуда - куда)
-- Срочность доставки
-- Особые требования к транспортировке
-- Контактная информация участников
-
-### 12.5 Правила логистики
-
-**ОБЯЗАТЕЛЬНО**:
-
-- Своевременное подтверждение заявок
-- Соблюдение сроков доставки
-- Бережная транспортировка товаров
-- Уведомление о статусе доставки
-
-**ЗАПРЕЩЕНО**:
-
-- Принятие заявок без подтверждения возможности выполнения
-- Нарушение сроков доставки без уведомления
-- Повреждение товаров при транспортировке
-
-### 12.6 Экономика
-
-_Раздел находится в разработке. Будет добавлен позже._
-
----
-
-## 13. 🤝 СИСТЕМА ПАРТНЕРСТВА И КОНТРАГЕНТОВ
-
-### 13.1 Основы системы партнерства
-
-**ПРИНЦИП РАБОТЫ**:
-- Все типы кабинетов могут создавать партнерские отношения
-- Партнерство реализовано через таблицы `Counterparty` и `CounterpartyRequest`
-- Двустороннее партнерство: каждая организация видит другую в разделе "Партнеры"
-
-**ТИПЫ ОРГАНИЗАЦИЙ-ПАРТНЕРОВ**:
-- `WHOLESALE` - Поставщики товаров и расходников
-- `FULFILLMENT` - Фулфилмент-центры
-- `LOGIST` - Логистические компании
-- `SELLER` - Селлеры (торговые организации)
-
-### 13.2 Способы создания партнерства
-
-#### **СПОСОБ 1: Через заказ в маркете (автоматическое партнерство)**
-
-**WORKFLOW**:
-1. Поставщик создает товар → товар попадает в глобальный маркет
-2. Селлер/Фулфилмент находит товар в маркете
-3. Создает заказ (`SupplyOrder`) → статус `PENDING`
-4. Поставщик получает уведомление в разделе "Заявки"
-5. Поставщик одобряет заявку → статус `SUPPLIER_APPROVED`
-6. **Автоматически создается двустороннее партнерство**:
- - Запись в `Counterparty` для заказчика (`organizationId` → `counterpartyId`)
- - Обратная запись в `Counterparty` для поставщика
-7. Обе организации видят друг друга в разделе "Партнеры"
-
-#### **СПОСОБ 2: Через раздел "Партнеры" (заявочная система)**
-
-**WORKFLOW**:
-1. Любая организация идет в раздел "Партнеры"
-2. Использует поиск для нахождения нужной организации
-3. Отправляет заявку на партнерство → создается `CounterpartyRequest`:
- - `senderId` - отправитель заявки
- - `receiverId` - получатель заявки
- - `status: PENDING`
- - `message` - опциональное сообщение
-4. Получатель видит заявку в разделе "Партнеры" → "Входящие заявки"
-5. Получатель принимает заявку → статус меняется на `ACCEPTED`
-6. **Автоматически создается двустороннее партнерство** (аналогично способу 1)
-
-**СТАТУСЫ ЗАЯВОК**:
-- `PENDING` - Ожидает рассмотрения
-- `ACCEPTED` - Принята (партнерство создано)
-- `REJECTED` - Отклонена
-- `CANCELLED` - Отменена отправителем
-
-### 13.3 Использование партнерства в системе
-
-#### **В форме создания поставки товаров через поставщиков**
-
-**ПРАВИЛО ОТОБРАЖЕНИЯ ПОСТАВЩИКОВ**:
-- Показываются только партнеры с типом `WHOLESALE`
-- Источник: таблица `Counterparty` where `counterparty.type === "WHOLESALE"`
-- Фильтрация по `organizationId` текущего пользователя
-
-**ЛОГИКА РАБОТЫ**:
-1. Пользователь выбирает поставщика из dropdown партнеров-поставщиков
-2. Загружается каталог товаров поставщика из `Product` таблицы
-3. Товары фильтруются по `organizationId = поставщик.id`
-4. Пользователь может добавлять товары в корзину и создавать заказ
-
-#### **В других разделах системы**
-
-**ВЫБОР ФУЛФИЛМЕНТ-ЦЕНТРА**:
-- Партнеры с типом `FULFILLMENT`
-- Используется при создании поставок расходников
-
-**ВЫБОР ЛОГИСТИКИ**:
-- Партнеры с типом `LOGIST`
-- Используется при планировании доставок
-
-**МЕССЕНДЖЕР**:
-- Общение доступно только между партнерами
-- Список чатов формируется из таблицы `Counterparty`
-
-### 13.4 Технические правила
-
-**СОЗДАНИЕ ЗАПИСЕЙ В COUNTERPARTY**:
-```sql
--- При создании партнерства создаются ДВЕ записи
-INSERT INTO counterparties (organizationId, counterpartyId) VALUES (org1_id, org2_id);
-INSERT INTO counterparties (organizationId, counterpartyId) VALUES (org2_id, org1_id);
-```
-
-**ПРОВЕРКА ПАРТНЕРСТВА**:
-```typescript
-const isPartner = await prisma.counterparty.findFirst({
- where: {
- organizationId: currentOrgId,
- counterpartyId: targetOrgId
- }
-});
-```
-
-**ПОЛУЧЕНИЕ ПАРТНЕРОВ ПО ТИПУ**:
-```typescript
-const wholesalePartners = await prisma.counterparty.findMany({
- where: {
- organizationId: currentOrgId,
- counterparty: {
- type: "WHOLESALE"
- }
- },
- include: {
- counterparty: true
- }
-});
-```
-
-### 13.5 Решение распространенных проблем
-
-#### **ПРОБЛЕМА: GraphQL запрос не возвращает данные партнеров**
-
-**Симптомы**:
-- В консоли браузера: `All counterparties: 0`, `All counterparties data: []`
-- GraphQL запрос отправляется успешно, но возвращает пустой массив
-- В базе данных партнеры существуют
-
-**Возможные причины и решения**:
-
-1. **НЕПРАВИЛЬНОЕ ИМЯ ПОЛЯ В КОДЕ** (наиболее частая ошибка):
- ```typescript
- // ❌ НЕПРАВИЛЬНО
- const allCounterparties = counterpartiesData?.getMyCounterparties || [];
-
- // ✅ ПРАВИЛЬНО
- const allCounterparties = counterpartiesData?.myCounterparties || [];
- ```
- **Объяснение**: В GraphQL схеме поле называется `myCounterparties`, а не `getMyCounterparties`
-
-2. **НЕСООТВЕТСТВИЕ ID ПОЛЬЗОВАТЕЛЯ**:
- - Проверить что пользователь авторизован под правильным аккаунтом
- - Убедиться что `context.user.id` соответствует ожидаемому пользователю
-
-3. **ПРОБЛЕМЫ С КЕШИРОВАНИЕМ APOLLO CLIENT**:
- ```typescript
- const { data, loading, error } = useQuery(GET_MY_COUNTERPARTIES, {
- fetchPolicy: 'network-only', // Обходим кеш
- errorPolicy: 'all'
- });
- ```
-
-4. **ОТСУТСТВИЕ ЛОГИРОВАНИЯ В РЕЗОЛВЕРЕ**:
- - Добавить console.log в GraphQL резолвер для отладки
- - Проверить что резолвер вызывается
-
-**Чек-лист для диагностики**:
-- [ ] Проверить правильность имени поля в коде (`myCounterparties`)
-- [ ] Убедиться что пользователь авторизован
-- [ ] Проверить логи сервера на вызов резолвера
-- [ ] Добавить отладочное логирование в браузере
-- [ ] Проверить данные в базе через Prisma Studio
-- [ ] Использовать `fetchPolicy: 'network-only'` для обхода кеша
-
----
-
-## 14. 🌐 ИНТЕГРАЦИИ С СИСТЕМОЙ
-
-### 14.1 Глобальная интеграция
-
-- **МАРКЕТ**: Товары поставщиков отображаются в глобальном маркете
-- **СИНХРОНИЗАЦИЯ**: Данные склада синхронизируются с модулем аналитики
-- **УВЕДОМЛЕНИЯ**: Единая система через встроенный мессенджер
-
-### 13.2 Интеграция с маркетплейсами
-
-- **WILDBERRIES**: Обязательная проверка активности API ключа
-- **СИНХРОНИЗАЦИЯ**: Регулярное обновление данных из внешних источников
-- **ЛОКАЛЬНЫЕ КОПИИ**: Сохранение данных для офлайн работы
-
-### 13.3 Интеграция с модулем "Услуги"
-
-**РАСХОДНИКИ ФУЛФИЛМЕНТА В УСЛУГАХ**:
-
-- Расходники фулфилмента - собственность фулфилмента (куплены у поставщиков)
-- Фулфилмент создает заявки-поставки для покупки расходников у поставщиков
-- Селлеры могут использовать расходники фулфилмента в разделе "Услуги / Расходники"
-- Для создания продукта из товара
-- Расходники списываются с остатков фулфилмента
-- Стоимость включается в стоимость услуги
-
-**WORKFLOW ИСПОЛЬЗОВАНИЯ**:
-
-1. Селлер выбирает услугу "Создание продукта"
-2. Указывает базовый товар
-3. Выбирает необходимые расходники фулфилмента
-4. Фулфилмент обрабатывает заказ и создает продукт
-5. Расходники списываются, создается готовый продукт
-
-### 12.4 Система тарификации логистики
-
-**ПАРАМЕТРЫ**:
-
-- **Тариф до 1м³** - базовая стоимость для малых грузов
-- **Тариф свыше 1м³** - стоимость для крупных грузов
-- **Маршруты доставки** - от точки отправления до точки назначения
-- **Описание услуг** - дополнительные условия доставки
-
----
-
-## 14. 📊 СТАТИСТИКА И АНАЛИТИКА
-
-### 14.1 Структура статистики по кабинетам
-
-#### **В КАБИНЕТЕ ПОСТАВЩИКА**:
-
-- **ТОВАРЫ**: Общая статистика товаров поставщика
-- **РАСХОДНИКИ**: Материалы и вспомогательные товары (классифицируются при заказе)
-
-#### **В КАБИНЕТЕ ФУЛФИЛМЕНТА**:
-
-- **ТОВАРЫ**: Базовые товары от поставщиков (принятые на склад)
-- **ПРОДУКТЫ**: Отдельный блок готовой продукции
-- **БРАК**: Статистика потерь и списаний
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА**: Операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ**: Материалы для товаров селлеров
-
-### 14.2 Ключевые метрики
-
-**ОБЩИЕ ПОКАЗАТЕЛИ**:
-
-- Общие остатки, заказано, в пути, остаток, продано
-- Подсветка предметов с остатками ниже критического уровня
-
-**АКТУАЛИЗАЦИЯ ДАННЫХ**:
-
-- При изменении количества в карточке данные актуализируются во всей системе
-- Статистика обновляется в реальном времени
-- Отслеживание изменений для аналитики
-
----
-
-## 15. ⚠️ КРИТИЧЕСКИЕ ЗАПРЕТЫ
-
-### 15.1 НИКОГДА НЕ ДЕЛАТЬ:
-
-1. ❌ Удалять предметы с существующими заказами
-2. ❌ Изменять статусы заказов без уведомлений
-3. ❌ Обходить проверки остатков предметов
-4. ❌ Давать доступ к чужим данным
-5. ❌ Игнорировать ошибки валидации
-6. ❌ Сохранять пароли в открытом виде
-7. ❌ Пропускать логирование критических операций
-8. ❌ Блокировать интерфейс без индикации загрузки
-9. ❌ Создавать брак или продукт без связи с родительским товаром
-10. ❌ Создавать отдельные типы расходников (только общий тип "РАСХОДНИКИ")
-11. ❌ Разрешать заказ брака
-12. ❌ Нарушать иерархию типов предметов
-13. ❌ Пропускать промежуточные статусы в workflow
-14. ❌ Нарушать обязательную последовательность модулей в статистике фулфилмента
-
-### 13.2 ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА:
-
-1. ✅ Проверка остатков перед добавлением в корзину
-2. ✅ Валидация всех числовых значений (цена > 0, вес > 0)
-3. ✅ Автоматическая генерация уникальных артикулов СФ
-4. ✅ Логирование всех изменений статусов
-5. ✅ Уведомления всех участников при изменении статусов
-6. ✅ Обязательная типизация всех предметов
-7. ✅ Связь производных типов с родительскими предметами
-8. ✅ Проверка доступности товаров перед заказом
-9. ✅ Соблюдение жизненного цикла статусов поставок
-10. ✅ Фиксация план/факт в процессе создания продукта
-
----
-
-## 🎖️ ПРИОРИТЕТЫ РАЗРАБОТКИ
-
-### ВЫСОКИЙ ПРИОРИТЕТ:
-
-1. 🔴 Безопасность и контроль доступа
-2. 🔴 Целостность данных и валидация
-3. 🔴 Корректность статусов поставок
-4. 🔴 Уведомления участников процесса
-5. 🔴 Правильная типизация предметов
-6. 🔴 Связи между товарами и производными типами
-
-### СРЕДНИЙ ПРИОРИТЕТ:
-
-1. 🟡 Производительность и оптимизация
-2. 🟡 Пользовательский опыт
-3. 🟡 Аналитика и отчетность
-4. 🟡 Интеграции с внешними системами
-5. 🟡 Workflow для брака и продуктов
-6. 🟡 Разделение расходников по типам
-
-### НИЗКИЙ ПРИОРИТЕТ:
-
-1. 🟢 Дополнительные фильтры
-2. 🟢 Косметические улучшения
-3. 🟢 Экспериментальные функции
-4. 🟢 Расширенная кастомизация
-
----
-
-## 📦 ПРИЛОЖЕНИЕ: КАТЕГОРИИ РАСХОДНИКОВ
-
-### Специализированные категории для расходников:
-
-#### 🎁 **УПАКОВКА И ЗАЩИТА**
-
-- Коробки, пакеты, пузырчатая пленка, стрейч-пленка, защитные уголки
-
-#### 🏷️ **МАРКИРОВКА И ИДЕНТИФИКАЦИЯ**
-
-- Этикетки, бирки, стикеры, маркеры, штампы, термоэтикетки
-
-#### 🔧 **КРЕПЕЖ И СОЕДИНЕНИЕ**
-
-- Скотч, клей, стяжки, степлер, веревки, стрейч-лента
-
-#### 📄 **ДОКУМЕНТООБОРОТ И ВКЛАДЫШИ**
-
-- Накладные, инструкции, буклеты, визитки, промокоды
-
-#### 🧼 **ГИГИЕНА И БЕЗОПАСНОСТЬ**
-
-- Перчатки, маски, антисептики, салфетки, бахилы
-
-#### 🛠️ **ИНСТРУМЕНТЫ И ПРИСПОСОБЛЕНИЯ**
-
-- Ножи, линейки, упаковочные машины, весы
-
-#### 🎨 **БРЕНДИНГ И ДИЗАЙН**
-
-- Фирменные пакеты, брендированные коробки, подарочная упаковка
-
-#### ⚡ **СПЕЦИАЛИЗИРОВАННЫЕ МАТЕРИАЛЫ**
-
-- Антистатические пакеты, влагопоглотители, защита от краж
-
----
-
-## 16. 📱 ПРАВИЛА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
-
-### 16.1 Отзывчивость интерфейса
-
-- **ОБЯЗАТЕЛЬНО**: Интерфейс должен работать на всех устройствах
-- **ПРАВИЛО**: Адаптивная сетка для карточек товаров
-- **ФУНКЦИЯ**: Оптимизация для мобильных устройств
-- **ТРЕБОВАНИЕ**: Корректное отображение на экранах от 320px до 4K
-
-### 15.2 Обратная связь пользователю
-
-- **ОБЯЗАТЕЛЬНО**: Уведомления об успешных/неуспешных операциях
-- **ПРАВИЛО**: Индикаторы загрузки для длительных операций
-- **ФУНКЦИЯ**: Подтверждение критических действий (удаление, деактивация)
-- **UX**: Понятные сообщения об ошибках с предложением решения
-
----
-
-## 17. 🚨 ПРАВИЛА ОБРАБОТКИ ОШИБОК
-
-### 17.1 Обработка ошибок
-
-- **ОБЯЗАТЕЛЬНО**: Логирование всех ошибок с детальной информацией
-- **ПРАВИЛО**: Понятные сообщения об ошибках для пользователя
-- **ФУНКЦИЯ**: Автоматическое восстановление после сбоев
-- **МОНИТОРИНГ**: Отслеживание критических ошибок в реальном времени
-
-### 16.2 Резервное копирование
-
-- **КРИТИЧЕСКИ ВАЖНО**: Регулярное резервное копирование данных товаров
-- **ПРАВИЛО**: Версионность изменений для возможности отката
-- **ФУНКЦИЯ**: Автоматическое восстановление связей при сбоях
-- **ПЕРИОДИЧНОСТЬ**: Ежедневные и еженедельные бэкапы
-
----
-
-## 18. 📈 ПРАВИЛА ПРОИЗВОДИТЕЛЬНОСТИ
-
-### 18.1 Оптимизация загрузки
-
-- **ПРАВИЛО**: Пагинация для больших списков товаров
-- **ФУНКЦИЯ**: Ленивая загрузка изображений
-- **ОПТИМИЗАЦИЯ**: Кэширование часто запрашиваемых данных
-- **ПРОИЗВОДИТЕЛЬНОСТЬ**: Время загрузки страницы не более 3 секунд
-
-### 17.2 Масштабируемость
-
-- **АРХИТЕКТУРА**: Модульная структура для легкого расширения
-- **ПРАВИЛО**: Использование индексов для быстрого поиска
-- **ФУНКЦИЯ**: Горизонтальное масштабирование при росте нагрузки
-- **ПЛАНИРОВАНИЕ**: Готовность к увеличению нагрузки в 10 раз
-
----
-
-## 19. 🔐 ПРАВИЛА БЕЗОПАСНОСТИ ДАННЫХ
-
-### 19.1 Защита данных
-
-- **ОБЯЗАТЕЛЬНО**: Шифрование чувствительных данных
-- **ПРАВИЛО**: Аудит всех действий пользователей
-- **ФУНКЦИЯ**: Контроль доступа на уровне API
-- **БЕЗОПАСНОСТЬ**: Двухфакторная аутентификация для критических операций
-
-### 18.2 Соответствие требованиям
-
-- **GDPR**: Право на удаление и экспорт данных
-- **ПРАВИЛО**: Прозрачность обработки персональных данных
-- **ФУНКЦИЯ**: Логирование согласий пользователей
-- **СООТВЕТСТВИЕ**: Регулярный аудит безопасности
-
----
-
-## 20. 🎯 ПРАВИЛА КАЧЕСТВА КОДА
-
-### 20.1 Стандарты разработки
-
-- **ОБЯЗАТЕЛЬНО**: Покрытие тестами критической функциональности
-- **ПРАВИЛО**: Следование принципам SOLID
-- **ФУНКЦИЯ**: Автоматическое тестирование при развертывании
-- **КАЧЕСТВО**: Минимальное покрытие тестами 80%
-
-### 19.2 Документация
-
-- **ОБЯЗАТЕЛЬНО**: Документирование всех API методов
-- **ПРАВИЛО**: Комментарии к сложной бизнес-логике
-- **ФУНКЦИЯ**: Автоматическая генерация документации
-- **СТАНДАРТ**: Актуальная техническая документация
-
----
-
-## 21. 📋 ПРИЛОЖЕНИЕ: ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ И ПЛАНЫ
-
-### 🔄 Сложные сценарии (требуют дальнейшей проработки)
-
-**ЗАМЕТКА**: Данные сценарии выявлены, но пока не учитываются в текущей системе. Требуют отдельного обсуждения:
-
-#### **Сценарий 1: Из разных товаров → один продукт**
-
-- **ПРИМЕР**: Товар "Футболка" + Товар "Джинсы" = Продукт "Комплект одежды"
-- **ТРЕБУЕТ**: Разработки системы "составных продуктов"
-- **СЛОЖНОСТЬ**: Управление несколькими parentId, распределение себестоимости
-- **СТАТУС**: Требует технического решения
-
-#### **Сценарий 2: Из одного товара → несколько продуктов**
-
-- **ПРИМЕР**: Товар "Ткань 10 метров" → Продукт "Платье" (3м) + Продукт "Юбка" (2м) + остаток 5м
-- **ТРЕБУЕТ**: Системы "деления товаров" и учета остатков
-- **СЛОЖНОСТЬ**: Контроль использования материала, учет отходов
-- **СТАТУС**: Требует проработки алгоритмов
-
-### 🚀 Предложения по улучшению
-
-#### **В разработке**:
-
-- ✅ **Workflow для создания брака и продуктов** - детально описан
-- ✅ **Разделение расходников на подтипы** - реализовано
-- ✅ **Связи между товарами и производными типами** - реализовано
-
-#### **Требует реализации**:
-
-- **Автогенерация артикулов СФ с префиксами типов** - автоматическое создание уникальных номеров
-- **Система комплектов товаров** - управление наборами товаров
-- **Умные уведомления о низких остатках** - персонализированные алерты
-- **Расширенные фильтры по типам предметов** - улучшенная навигация
-- **Система прогнозирования спроса** - аналитика и планирование
-
-### 📊 Полный список 28 универсальных категорий
-
-1. Одежда и обувь
-2. Косметика и парфюмерия
-3. Дом и сад
-4. Детские товары
-5. Спорт и отдых
-6. Электроника
-7. Книги
-8. Здоровье
-9. Автотовары
-10. Строительство и ремонт
-11. Продукты питания
-12. Зоотовары
-13. Дача, сад и огород
-14. Канцелярские товары
-15. Хобби и творчество
-16. Украшения и аксессуары
-17. Сумки и чемоданы
-18. Техника для дома
-19. Музыкальные инструменты
-20. Игры и игрушки
-21. Мебель
-22. Товары для красоты
-23. Бытовая химия
-24. Товары для путешествий
-25. Медицинские товары
-26. Религиозные товары
-27. Антиквариат и коллекционирование
-28. Прочие товары
-
----
-
-## 21. 🎯 ПРАВИЛА КАЧЕСТВА КОДА
-
-### 21.1 GraphQL Rules
-
-#### **Правила именования полей**
-
-**ВАЖНО**: Имена полей в GraphQL запросах должны точно соответствовать схеме!
-
-```typescript
-// ✅ ПРАВИЛЬНО - соответствует схеме
-export const GET_MY_COUNTERPARTIES = gql`
- query GetMyCounterparties {
- myCounterparties { // <- имя поля в схеме
- id
- name
- type
- }
- }
-`;
-
-// Использование в компоненте
-const allCounterparties = counterpartiesData?.myCounterparties || [];
-```
-
-```typescript
-// ❌ НЕПРАВИЛЬНО - не соответствует схеме
-const allCounterparties = counterpartiesData?.getMyCounterparties || []; // Ошибка!
-```
-
-#### **Правила отладки GraphQL**
-
-**При проблемах с GraphQL запросами следовать чек-листу**:
-
-1. **Проверить соответствие имен полей схеме**
-2. **Добавить fetchPolicy: 'network-only' для обхода кеша**
-3. **Логировать данные в браузере и сервере**
-4. **Проверить авторизацию пользователя**
-5. **Убедиться что резолвер вызывается**
-
-#### **Обязательные поля для отладки**
-
-```typescript
-const { data, loading, error } = useQuery(QUERY_NAME, {
- fetchPolicy: 'network-only', // Обходим кеш при отладке
- errorPolicy: 'all' // Показываем все ошибки
-});
-
-// Логирование для отладки
-console.log("Data:", data);
-console.log("Loading:", loading);
-console.log("Error:", error);
-```
-
-### 21.2 TypeScript Rules
-
-#### **Интерфейсы данных**
-
-**Поля интерфейсов должны соответствовать GraphQL схеме**:
-
-```typescript
-// ✅ ПРАВИЛЬНО - соответствует schema.prisma
-interface GoodsProduct {
- id: string;
- name: string;
- article: string; // <- соответствует полю в schema
- quantity?: number; // <- соответствует полю в schema
- organization: {
- id: string;
- name: string;
- };
-}
-```
-
-```typescript
-// ❌ НЕПРАВИЛЬНО - не соответствует schema
-interface GoodsProduct {
- sku: string; // <- в schema поле называется 'article'
- stock?: number; // <- в schema поле называется 'quantity'
-}
-```
-
----
-
-_Эта база знаний создана на основе анализа rules.md, rules1.md и description.md и является единым источником понимания структуры и логики проекта._
-
-_Версия: 2.0_
-_Дата создания: 2024_
-_Статус: АКТИВНАЯ БАЗА ЗНАНИЙ_
-1
diff --git a/description.md b/description.md
deleted file mode 100644
index e2662f3..0000000
--- a/description.md
+++ /dev/null
@@ -1,802 +0,0 @@
-# СИСТЕМА УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ - ПОЛНОЕ ОПИСАНИЕ ПРОЕКТА
-
-> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данные из этого файла могут быть удалены только с разрешения пользователя. Все изменения должны согласовываться.
-
----
-
-## 📑 ОГЛАВЛЕНИЕ
-
-### 🏗️ **АРХИТЕКТУРА СИСТЕМЫ**
-
-0. [🏠 Кабинет селлера / раздел "Мои поставки"](#0--кабинет-селлера--раздел-мои-поставки)
-1. [📦 Кабинет поставщика / раздел склад](#1--кабинет-поставщика--раздел-склад)
-2. [🛠️ Создание и управление карточками](#2--создание-и-управление-карточками)
-3. [🔧 Управление, хранение, учёт, статус](#3--управление-хранение-учёт-статус)
-4. [📊 Статистика и аналитика](#4--статистика-и-аналитика)
-5. [🎛️ Интерфейс и управление](#5--интерфейс-и-управление)
-
-### 🌐 **ИНТЕГРАЦИИ И СВЯЗИ**
-
-6. [🌐 Интеграция с системой](#6--интеграция-с-системой)
-7. [🚚 Workflow поставок - ДЕТАЛИЗИРОВАННАЯ СИСТЕМА СТАТУСОВ](#7--workflow-поставок---детализированная-система-статусов)
-8. [🔐 Система ролей и доступов](#8--система-ролей-и-доступов)
-9. [💰 Система тарификации логистики](#9--система-тарификации-логистики)
-
-### 🏢 **МОДУЛИ СИСТЕМЫ**
-
-10. [📈 Дополнительные возможности системы](#10--дополнительные-возможности-системы)
-11. [🔄 Интеграция с другими модулями](#11--интеграция-с-другими-модулями)
-12. [🏢 СИСТЕМА СКЛАДА ФУЛФИЛМЕНТА](#12--система-склада-фулфилмента)
-
-### 📋 **РАЗВИТИЕ И ПЛАНЫ**
-
-13. [📋 РЕКОМЕНДАЦИИ ПО ДОПОЛНЕНИЮ И УЛУЧШЕНИЮ](#13--рекомендации-по-дополнению-и-улучшению)
-
----
-
-## 🏷️ РЕЕСТР СУЩНОСТЕЙ СИСТЕМЫ
-
-### 📦 **ОСНОВНЫЕ ПРЕДМЕТЫ**
-
-| Сущность | Название в системе | Описание | Статус |
-| ---------- | ---------------------------------- | ----------------------------------------------- | --------------- |
-| Товар | `Product` (type: PRODUCT) | Базовый тип товара от поставщика | ✅ Реализовано |
-| Брак | `Product` (type: DEFECT) | Производная от товара с дефектами | 🔄 В разработке |
-| Расходники | `Product` (type: CONSUMABLE) | Материалы и вспомогательные товары | ✅ Реализовано |
-| Продукт | `Product` (type: FINISHED_PRODUCT) | Готовый к продаже товар (производная от товара) | 🔄 В разработке |
-
-### 🏢 **ОРГАНИЗАЦИИ И РОЛИ**
-
-| Сущность | Название в системе | Описание | Статус |
-| ---------- | ---------------------------------- | --------------------------------------- | -------------- |
-| Поставщик | `Organization` (type: WHOLESALE) | Создает товары и расходники | ✅ Реализовано |
-| Селлер | `Organization` (type: SELLER) | Заказывает товары, управляет поставками | ✅ Реализовано |
-| Фулфилмент | `Organization` (type: FULFILLMENT) | Принимает товары, создает продукты | ✅ Реализовано |
-| Логистика | `Organization` (type: LOGIST) | Управляет доставками | ✅ Реализовано |
-
-### 📋 **ПОСТАВКИ И ЗАКАЗЫ**
-
-| Сущность | Название в системе | Описание | Статус |
-| ---------------------------- | ------------------------ | ----------------------------------------------- | --------------- |
-| Заказ поставки | `SupplyOrder` | Основная сущность заказа от селлера/фулфилмента | ✅ Реализовано |
-| Поставка расходников селлера | `SellerConsumableSupply` | Поставка расходников селлера на фулфилмент | 🔄 В разработке |
-| Поставка WB | `WildberriesSupply` | Поставка через карточки Wildberries | ✅ Реализовано |
-| Карточка поставки WB | `WildberriesSupplyCard` | Элемент поставки WB | ✅ Реализовано |
-| Позиция заказа | `SupplyOrderItem` | Товар в заказе поставки | ✅ Реализовано |
-
-### 🛒 **ТОРГОВЫЕ ОПЕРАЦИИ**
-
-| Сущность | Название в системе | Описание | Статус |
-| --------------- | ------------------ | --------------------------------- | -------------- |
-| Корзина | `Cart` | Корзина для товаров перед заказом | ✅ Реализовано |
-| Позиция корзины | `CartItem` | Товар в корзине | ✅ Реализовано |
-| Избранное | `Favorites` | Избранные товары пользователя | ✅ Реализовано |
-
-### 📊 **АНАЛИТИКА И ОТЧЕТЫ**
-
-| Сущность | Название в системе | Описание | Статус |
-| --------------------- | ---------------------- | ----------------------------- | -------------- |
-| Аналитика фулфилмента | `FulfillmentAnalytics` | Статистика складских операций | ✅ Реализовано |
-| Логистические тарифы | `LogisticsTariffs` | Расчет стоимости доставки | ✅ Реализовано |
-
-### 🏷️ **СПРАВОЧНИКИ**
-
-| Сущность | Название в системе | Описание | Статус |
-| --------------------- | ------------------ | ---------------------------------------- | -------------- |
-| Категория | `Category` | Категория товаров (28 предустановленных) | ✅ Реализовано |
-| Поставщик расходников | `SupplySupplier` | Поставщик в разделе расходников | ✅ Реализовано |
-
-### 💬 **КОММУНИКАЦИИ**
-
-| Сущность | Название в системе | Описание | Статус |
-| --------- | ------------------ | --------------------------------------- | -------------- |
-| Сообщение | `Message` | Уведомления через встроенный мессенджер | ✅ Реализовано |
-
-### 🔄 **ПРОЦЕССЫ**
-
-| Сущность | Название в системе | Описание | Статус |
-| ----------------- | ------------------------ | ------------------------------------- | --------------- |
-| Создание продукта | `ProductCreationProcess` | Workflow превращения товара в продукт | 🔄 В разработке |
-| Движение товаров | `InventoryMovement` | Учет прихода/расхода товаров | 🔄 В разработке |
-
----
-
-## ЧАСТЬ I: АРХИТЕКТУРА СИСТЕМЫ
-
-## 0. 🏠 Кабинет селлера / раздел "Мои поставки"
-
-### 0.1 Структура раздела "Мои поставки"
-
-**Раздел делится на два основных направления:**
-
-#### **🏢 ПОСТАВКИ НА ФУЛФИЛМЕНТ**
-
-- **Товар** - поставка товаров для создания продуктов
- - **Карточки** - поставка через WB API с рецептурой
- - **Поставщики** - заказ товаров у поставщиков с рецептурой
-- **Расходники селлера** - поставка материалов для товаров селлера
-
-#### **🛒 ПОСТАВКИ НА МАРКЕТПЛЕЙСЫ** _(планируется)_
-
-- **Wildberries** - прямые поставки на WB
-- **Ozon** - прямые поставки на Ozon
-
-### 0.2 Создание поставки расходников селлера
-
-#### **📄 Структура страницы создания поставки:**
-
-**БЛОК 1: ПОСТАВЩИКИ** _(верхняя часть экрана)_
-
-- **Отображение**: Карточки поставщиков из раздела "Партнеры"
-- **Навигация**: Горизонтальный скролл (слева-направо) при превышении ширины экрана
-- **Выбор**: Клик выделяет карточку поставщика
-- **Результат**: Загружаются расходники выбранного поставщика в блок 2
-
-**БЛОК 2: РАСХОДНИКИ** _(центральная часть)_
-
-- **Содержание**: Расходники выбранного поставщика
-- **Сортировка**: По цене, названию, категории
-- **Фильтры**: По категории, ценовому диапазону
-- **Карточка расходника**:
- - Фото, название, цена, остаток, категория
- - Количество в комплекте (если есть комплектность)
- - Поле ввода количества (единицы или комплекты)
- - Кнопки +/- для изменения количества
-- **Действие**: Клик добавляет расходник в корзину
-
-**БЛОК 3: КОРЗИНА** _(правая часть)_
-
-- **Содержание корзины**:
- - Количество видов расходников
- - По каждому расходнику: название, количество, цена за единицу, сумма
- - Общая сумма всех расходников
-- **Управление**: Изменение количества, удаление позиций
-- **Валидация**: Проверка остатков у поставщика
-- **Настройки поставки**:
- - Выбор фулфилмент-центра (dropdown из партнеров)
- - Дата поставки (по умолчанию - дата создания, нельзя выбрать прошедшую)
-- **Кнопка**: "Создать поставку"
-
-#### **📊 Отображение созданных поставок**
-
-**МНОГОУРОВНЕВАЯ ТАБЛИЦА:**
-
-**Первый уровень** _(основной список)_:
-
-- Порядковый номер поставки (от большего к меньшему)
-- Количество видов расходников селлера
-- Стоимость всей поставки
-- Количество категорий
-- Статус поставки
-
-**Второй уровень** _(раскрывается по клику)_:
-
-- Название расходника селлера
-- Количество
-- Цена
-- Категория
-- Поставщик
-- **Режим**: Только просмотр (редактирование недоступно)
-
-### 0.3 Workflow поставки расходников селлера
-
-#### **🔄 Детальный процесс:**
-
-**ЭТАП 1: СОЗДАНИЕ СЕЛЛЕРОМ**
-
-1. Селлер создает поставку в своем кабинете
-2. Поставка появляется в списке со статусом **"В работе"**
-
-**ЭТАП 2: ОБРАБОТКА ПОСТАВЩИКОМ** 3. Поставщик получает уведомление о заказе 4. Поставщик вносит данные о количестве грузовых мест и объеме 5. Поставщик подтверждает поставку 6. Статус у селлера меняется на **"Одобрена"**
-
-**ЭТАП 3: ПЕРЕДАЧА В ФУЛФИЛМЕНТ** 7. Данные о поставке появляются в кабинете фулфилмента:
-
-- Раздел: "Входящие поставки" / "Расходники селлеров"
-
-8. Менеджер фулфилмента:
- - Назначает ответственного (из списка сотрудников)
- - Выбирает тип логистики (из списка логистов в партнерах)
- - Нажимает кнопку "В работу"
-
-**ЭТАП 4: ЛОГИСТИЧЕСКОЕ ПОДТВЕРЖДЕНИЕ** 9. В кабинете логистики появляется уведомление о поставке (раздел "Заявки") 10. Логист нажимает кнопку "Одобрить" 11. Статус у всех участников меняется на **"Ожидает отгрузки"**
-
-**ЭТАП 5: ОТГРУЗКА** 12. Логист приезжает к поставщику за расходниками 13. Поставщик отгружает товар логисту 14. Поставщик нажимает кнопку "Отправлено" 15. Статус у всех участников меняется на **"В пути"**
-
-**ЭТАП 6: ДОСТАВКА И ПРИЕМКА** 16. Расходники доставляются на склад фулфилмента 17. Менеджер фулфилмента: - Вносит данные о месте хранения расходников - Нажимает кнопку "Принято" 18. **Финальные статусы**: - У селлера, поставщика, логиста: **"Доставлена"** - У фулфилмента: **"Принято"**
-
-#### **📋 Статусы поставки расходников селлера:**
-
-1. **В работе** - создана селлером, ожидает обработки поставщиком
-2. **Одобрена** - подтверждена поставщиком, передана в фулфилмент
-3. **Ожидает отгрузки** - логистика подтверждена, ожидается забор
-4. **В пути** - отгружена поставщиком, доставляется на фулфилмент
-5. **Доставлена/Принято** - получена и оприходована на складе фулфилмента
-
----
-
-## 1. 📦 Кабинет поставщика / раздел склад
-
-### 1.1 Основные возможности
-
-**СТРУКТУРА СИСТЕМЫ ПО КАБИНЕТАМ:**
-
-**🏢 КАБИНЕТ ПОСТАВЩИКА** - создает и управляет:
-
-1. **ТОВАР** - базовый тип товара от поставщика
-2. **РАСХОДНИКИ** - материалы и вспомогательные товары от поставщика
-
-**🏭 КАБИНЕТ ФУЛФИЛМЕНТА** - принимает, обрабатывает и управляет всеми типами:
-
-1. **ТОВАР** - базовые товары от поставщиков (принятые на склад)
-2. **БРАК** - производная от товара (товар с дефектами)
-3. **ПРОДУКТ** - производная от товара (готовый к продаже товар)
-4. **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-5. **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
-
-**ВАЖНО**: Товар ≠ Продукт (это разные сущности в системе)
-
-**ЛОГИКА КЛАССИФИКАЦИИ РАСХОДНИКОВ:**
-
-- Поставщик создает карточки типа **"РАСХОДНИКИ"** (без уточнения назначения)
-- При заказе, в зависимости от заказчика, они классифицируются как:
- - **"Расходники фулфилмента"** - если заказывает фулфилмент-центр
- - **"Расходники селлеров"** - если заказывает селлер
-
-Разделение всех типов предметов на категории. Каждый тип имеет свою логику обработки и workflow.
-
-## 2. 🛠️ Создание и управление карточками
-
-### 2.1 Базовые параметры карточки
-
-Карточка создаётся с помощью заполнения формы, параметры для заполнения:
-
-- **Фото** - система загрузки и управления изображениями товаров (множественная загрузка, выбор главного изображения, предпросмотр)
-- **Название**
-- **Автоматическая генерация системой уникального номера** для конкретного предмета (артикул СФ)
-- **Возможность написать описание**
-- **Количество предметов** в единицах
-- **Количество комплектов** если продаётся комплектом (количество предметов в комплекте, размеры или иное)
-- **Категория** (28 предустановленных универсальных категорий + специализированные категории расходников)
-- **Бренд**
-- **Цвет**
-- **Размер / объём**
-- **Вес**
-- **Габариты**
-- **Материал**
-- **Цена за единицу**
-- **Цена за комплект**
-- **Заказано**
-- **В пути**
-- **Остаток**
-- **Продано**
-
-### 2.2 Дополнительные параметры (реализованы в коде)
-
-- **Статус активности** (`isActive`) - возможность деактивировать предметы
- - Неактивные предметы не отображаются в маркете
- - Неактивные предметы не доступны для заказа
-- **Тип предмета** - строгое разделение на 4 основных типа
-- **Связь с родительским предметом** - для производных типов (брак, продукт)
-- **Подтип расходников** - фулфилмента или селлеров
-- **Дата создания и обновления** - автоматическое отслеживание
-- **Уникальность артикула** - в рамках организации с префиксом типа
-
-## 3. 🔧 Управление, хранение, учёт, статус
-
-### 3.1 Основные функции
-
-- **Возможность редактирования и удаления карточек**
-- **Изменение количества в карточке** - данные актуализируются во всей системе
-- **При заказе карточки** - отображаются данные о количестве заказанного, в пути, остаток, и продано
-
-### 3.2 Система проверок и валидации (реализовано в коде)
-
-- **Проверка остатков** при добавлении в корзину
-- **Валидация данных** при создании/редактировании карточек
-- **Проверка уникальности артикула** в рамках организации
-- **Контроль доступа** - нельзя добавлять собственные товары в корзину
-
-### 3.3 Система корзины и избранного (реализовано в коде)
-
-- **Корзина товаров** - добавление товаров с проверкой остатков
-- **Избранные товары** - система избранного для удобства
-- **Управление количеством** в корзине
-- **Автоматическая проверка доступности** товаров
-
-## 4. 📊 Статистика и аналитика
-
-### 4.1 Блок статистики в верхней части раздела склад
-
-Должен состоять из блоков и отображать итоговые сведения о параметрах в данном разделе с разделением по типам предметов:
-
-**Общая статистика:**
-
-- **Общие остатки всех предметов**
-- **Количество заказанных позиций**
-- **Предметы в пути**
-- **Проданные предметы**
-- **Уведомления о низких остатках**
-
-**Разделение по типам и кабинетам:**
-
-**В КАБИНЕТЕ ПОСТАВЩИКА:**
-
-- **ТОВАРЫ**: Базовые товары поставщика
-- **РАСХОДНИКИ**: Материалы и вспомогательные товары от поставщика
- - Классифицируются при заказе в зависимости от заказчика
- - Общая статистика по всем расходникам
-
-**В КАБИНЕТЕ ФУЛФИЛМЕНТА:**
-
-- **ТОВАРЫ**: Базовые товары от поставщиков (принятые на склад)
-- **ПРОДУКТЫ**: Готовая продукция (созданная из товаров)
-- **БРАК**: Статистика потерь и списаний
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА**: Операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ**: Материалы для товаров селлеров
-
-### 4.2 Развитая система аналитики (реализовано в коде)
-
-- **Статистика изменений за период** (сутки, неделя, месяц)
-- **Аналитика по категориям товаров**
-- **Метрики оборачиваемости**
-- **Отчеты по поставщикам**
-- **Анализ популярных товаров**
-
-## 5. 🎛️ Интерфейс и управление
-
-### 5.1 Режимы отображения
-
-- **Возможность переключения режимов** расположения информации (строчная и карточная)
-- **5 карточек в ряд** в карточном режиме
-- **Возможность фильтрации и сортировки** данных
-- **Поиск** по названию, артикулу, категории, бренду
-
-### 5.2 Система уведомлений
-
-- **Подсвечивать когда остатки становятся меньше определенного уровня**
-- **Автоматические уведомления** о новых заказах в мессенджер (реализовано в коде)
-- **Уведомления об изменении статусов** поставок
-
----
-
-## ЧАСТЬ II: ИНТЕГРАЦИИ И СВЯЗИ
-
-## 6. 🌐 Интеграция с системой
-
-### 6.1 Глобальная интеграция
-
-- **Учет и хранение** - данные карточки товаров и расходников отображаются в глобальной сущности «Маркет» во вкладках «Товар» и «Расходники» соответственно
-
-### 6.2 Интеграция с маркетплейсами (реализовано в коде)
-
-- **Wildberries API** - загрузка карточек товаров из WB
-- **Синхронизация данных** с маркетплейсами
-- **Создание поставок** на основе WB карточек
-- **Управление API ключами** с проверкой активности
-
-### 6.3 Интеграция с модулем "Услуги"
-
-- **Расходники фулфилмента в услугах**:
-
- - Селлеры могут использовать расходники фулфилмента в разделе "Услуги / Расходники"
- - Для создания продукта из базового товара
- - Расходники списываются с остатков фулфилмента
- - Стоимость включается в стоимость услуги фулфилмента
-
-- **Процесс создания продукта через услуги**:
- 1. Селлер выбирает услугу "Создание продукта"
- 2. Указывает базовый товар для обработки
- 3. Выбирает необходимые расходники фулфилмента
- 4. Фулфилмент обрабатывает заказ
- 5. Создается готовый продукт с использованием расходников
-
-## 7. 🚚 Workflow поставок - ДЕТАЛИЗИРОВАННАЯ СИСТЕМА СТАТУСОВ
-
-### 7.1 Сценарий поставки
-
-Один из сценариев: селлер в своём кабинете, в разделе «Маркет» заказывает товар и расходники у поставщика, для селлера это поставка, для поставщика это заявка на поставку.
-
-### 7.2 Детализированная система статусов (8 статусов - реализовано в коде)
-
-#### 7.2.1 Статусы SupplyOrder (Заказ поставки):
-
-1. **PENDING** - Ожидает подтверждения поставщиком
-2. **SUPPLIER_APPROVED** - Одобрено поставщиком
-3. **CONFIRMED** - Подтвержден (готов к обработке)
-4. **LOGISTICS_CONFIRMED** - Подтверждено логистикой
-5. **SHIPPED** - Отгружено поставщиком
-6. **IN_TRANSIT** - В пути (логистика доставляет)
-7. **DELIVERED** - Доставлен на фулфилмент
-8. **CANCELLED** - Отменен
-
-#### 7.2.2 Статусы Supply (Расходники):
-
-1. **planned** - Запланировано (ожидает одобрения поставщиком)
-2. **confirmed** - Подтверждено (ожидает отгрузки после одобрения логистикой)
-3. **in-transit** - В пути (товар отгружен логистической компании)
-4. **in-stock** - На складе (товар принят на фулфилменте)
-
-### 7.3 Пошаговый процесс с уведомлениями
-
-#### 7.3.1 Этап 1: Создание заказа
-
-1. **Селлер заказывает** товар/расходники у поставщика
-2. **Система создает** SupplyOrder со статусом `PENDING`
-3. **Автоматическое уведомление** поставщику в мессенджер о новом заказе
-
-#### 7.3.2 Этап 2: Обработка поставщиком
-
-4. **Поставщику приходит оповещение** в разделе заявки
-5. **Поставщик нажимает кнопку «Одобрить»**
-6. **Статус меняется** на `SUPPLIER_APPROVED`
-7. **У селлера статус** меняется на «Одобрено поставщиком»
-
-#### 7.3.3 Этап 3: Передача в фулфилмент
-
-8. **Поставка отображается** в кабинете фулфилмент в разделе «Поставки» / подраздел «поставки на фулфилмент» / новые
-9. **Фулфилмент выбирает** ответственного за поставку и тип логистики
-10. **Фулфилмент нажимает** кнопку «Приёмка»
-11. **Статус меняется** на `CONFIRMED`
-
-#### 7.3.4 Этап 4: Логистическое подтверждение
-
-12. **Логистика подтверждает** возможность доставки
-13. **Статус меняется** на `LOGISTICS_CONFIRMED`
-14. **У селлера статус** «Ожидает отгрузки»
-15. **У поставщика статус** «Ожидает отгрузки»
-
-#### 7.3.5 Этап 5: Отгрузка
-
-16. **Логистика приезжает** за товаром
-17. **Поставщик отгружает** товар
-18. **Поставщик нажимает** кнопку «Отгружено»
-19. **Статус меняется** на `SHIPPED`, затем `IN_TRANSIT`
-20. **У селлера статус** «В пути»
-21. **У фулфилмента статус** «В пути»
-
-#### 7.3.6 Этап 6: Доставка и приемка
-
-22. **Логистика доставляет** товар на фулфилмент-центр
-23. **В кабинете логистики** нажимают кнопку «Доставлено»
-24. **В кабинете фулфилмента** вводят данные места хранения
-25. **Фулфилмент нажимает** кнопку «Принято»
-26. **Статус меняется** на `DELIVERED`
-27. **Поставка перемещается** в «Поставки» / подраздел «поставки на фулфилмент» / принято со статусом «принято»
-
-## 8. 🔐 Система ролей и доступов (реализовано в коде)
-
-### 8.1 Контроль доступа к заказам
-
-- **Создатель заказа** - полный доступ к своим заказам
-- **Поставщик** - доступ к заказам, где он является поставщиком
-- **Фулфилмент-центр** - доступ к заказам, направленным в его центр
-- **Логистическая компания** - доступ к заказам для доставки
-
-### 8.2 Разграничение функций по ролям
-
-- **WHOLESALE** (Поставщик) - создание товаров, управление складом, обработка заказов
-- **SELLER** (Селлер) - заказ товаров, управление поставками
-- **FULFILLMENT** (Фулфилмент) - приемка товаров, управление складом
-- **LOGIST** (Логистика) - управление доставками
-
-## 9. 💰 Система тарификации логистики (реализовано в коде)
-
-### 9.1 Расчет стоимости доставки
-
-- **Тариф до 1м³** - базовая стоимость для малых грузов
-- **Тариф свыше 1м³** - стоимость для крупных грузов
-- **Маршруты доставки** - от точки отправления до точки назначения
-- **Описание услуг** - дополнительные условия доставки
-
-### 9.2 Параметры логистики
-
-```typescript
-model Logistics {
- fromLocation: String // Откуда
- toLocation: String // Куда
- priceUnder1m3: Float // Цена до 1м³
- priceOver1m3: Float // Цена свыше 1м³
- description: String? // Описание услуг
-}
-```
-
----
-
-## ЧАСТЬ III: МОДУЛИ СИСТЕМЫ
-
-## 10. 📈 Дополнительные возможности системы
-
-### 10.1 Система категорий (28 предустановленных)
-
-- Одежда и обувь
-- Косметика и парфюмерия
-- Дом и сад
-- Детские товары
-- Спорт и отдых
-- Электроника
-- Книги
-- Здоровье
-- Автотовары
-- Строительство и ремонт
-- Продукты питания
-- Зоотовары
-- Дача, сад и огород
-- Канцелярские товары
-- Хобби и творчество
-- Украшения и аксессуары
-- Сумки и чемоданы
-- Техника для дома
-- Музыкальные инструменты
-- Игры и игрушки
-- И другие...
-
-### 10.1.1 Специализированные категории расходников
-
-**В дополнение к универсальным категориям, для расходников используются:**
-
-- **Упаковка и защита** - коробки, пакеты, пленка, защитные материалы
-- **Маркировка и идентификация** - этикетки, бирки, стикеры, штампы
-- **Крепеж и соединение** - скотч, клей, стяжки, веревки
-- **Документооборот и вкладыши** - накладные, инструкции, буклеты
-- **Гигиена и безопасность** - перчатки, маски, антисептики
-- **Инструменты и приспособления** - ножи, дозаторы, весы
-- **Брендинг и дизайн** - фирменная упаковка с логотипом
-- **Специализированные материалы** - антистатические, влагопоглотители
-- **Торговое оборудование** - манекены, ценникодержатели
-- **Логистика и складирование** - паллеты, контейнеры
-- **Технические расходники** - картриджи, батарейки
-- **Сезонные и праздничные** - новогодняя упаковка, подарочные материалы
-
-### 10.2 Система уведомлений через мессенджер
-
-- **Автоматические уведомления** о новых заказах
-- **Уведомления об изменении статусов**
-- **Персонализированные сообщения** с деталями заказа
-- **Интеграция с общим мессенджером** системы
-
-### 10.3 Предложения по улучшению
-
-- **Автогенерация артикулов СФ с префиксами типов** - требует реализации
-- **Система комплектов товаров** - требует реализации
-- ✅ **Workflow для создания брака и продуктов** - детально описан
-- ✅ **Разделение расходников на подтипы** - реализовано
-- ✅ **Связи между товарами и производными типами** - реализовано
-- **Умные уведомления о низких остатках** - требует улучшения
-- **Расширенные фильтры по типам предметов** - требует улучшения
-- **Система прогнозирования спроса** - новая функция
-
-### 10.4 Сложные сценарии (требуют дальнейшей проработки)
-
-**ЗАМЕТКА**: Данные сценарии выявлены, но пока не учитываются в текущей системе. Требуют отдельного обсуждения:
-
-- **Из разных товаров → один продукт**:
-
- - Пример: Товар "Футболка" + Товар "Джинсы" = Продукт "Комплект одежды"
- - Требует разработки системы "составных продуктов"
-
-- **Из одного товара → несколько продуктов**:
- - Пример: Товар "Ткань 10 метров" → Продукт "Платье" (3м) + Продукт "Юбка" (2м) + остаток 5м
- - Требует системы "деления товаров" и учета остатков
-
-## 11. 🔄 Интеграция с другими модулями
-
-### 11.1 Связь с модулем "Маркет"
-
-- Товары поставщиков отображаются в глобальном маркете
-- Фильтрация по типам: товары/расходники
-- Система поиска и категоризации
-
-### 11.2 Связь с модулем "Поставки"
-
-- Автоматическое создание поставок при заказе
-- Отслеживание статусов в реальном времени
-- Синхронизация данных между модулями
-
-### 11.3 Связь с модулем "Аналитика"
-
-- Передача данных для общей отчетности
-- Метрики эффективности поставщиков
-- Анализ популярности товаров
-
----
-
-## ЧАСТЬ IV: РАЗВИТИЕ И ПЛАНЫ
-
-## 12. 🏢 СИСТЕМА СКЛАДА ФУЛФИЛМЕНТА
-
-### 12.1 Структура раздела склад фулфилмента
-
-#### 12.1.1 Блок статистика склада
-
-**Модули в обязательной последовательности:**
-
-1. **📦 ПРОДУКТ** - готовые к продаже товары
-
- - Товары, прошедшие обработку и готовые к отгрузке
- - Показывает текущее количество готовой продукции
-
-2. **🛒 ТОВАР** - базовые товары от поставщиков
-
- - Сырье и материалы для производства продуктов
- - Товары в первоначальном виде от поставщиков
-
-3. **❌ БРАК** - товары с дефектами
-
- - Товары, не прошедшие контроль качества
- - Списанные и подлежащие утилизации предметы
-
-4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары
-
- - Товары, возвращенные покупателями
- - Требуют проверки и переклассификации
-
-5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-
- - Упаковочные материалы для товаров селлеров
- - Заказываются селлерами напрямую
-
-6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
- - **КЛИКАБЕЛЬНЫЙ МОДУЛЬ** - содержит полноценный раздел учёта
- - Материалы для внутренних операций фулфилмента
- - Используются для услуг селлерам
-
-**ВАЖНО**: В модуле ТОВАР отображаются два счетчика:
-
-- **Товары "на складе"** - готовы к обработке
-- **Товары "в обработке"** - находятся в процессе создания продукта
-
-#### 12.1.2 Система учёта движения товаров
-
-**Основные принципы учёта:**
-
-- **ПРИХОД ТОВАРОВ**: Через принятые поставки (статус "в пути" → "на складе")
-- **РАСХОД ТОВАРОВ**: При отгрузке, списании, использовании для услуг
-- **ДВОЙНОЙ УЧЁТ**: Основные значения + дополнительные значения
-
-**Дополнительные значения (показатели движения):**
-
-- **ПРИБЫЛО** - количество предметов, поступивших на склад за период
-- **УБЫЛО** - количество предметов, списанных со склада за период
-- **ВЛИЯНИЕ** - от этих значений зависят основные значения
-
-**Основные значения (текущие остатки):**
-
-- **ФОРМУЛА**: Основные значения = Предыдущие остатки + Прибыло - Убыло
-- **ОТОБРАЖЕНИЕ**: Показываются в каждом модуле статистики
-- **АКТУАЛЬНОСТЬ**: Обновляются в реальном времени
-
-#### 12.1.3 Детальный раздел "Расходники фулфилмента"
-
-**Особенности:**
-
-- **ИНТЕРАКТИВНОСТЬ**: Кликабельный модуль в статистике
-- **ПЕРЕХОД**: К полноценному разделу управления расходниками фулфилмента
-- **ФУНКЦИОНАЛЬНОСТЬ**:
- - Создание и редактирование карточек расходников фулфилмента
- - Управление остатками и заказами расходников фулфилмента
- - Отслеживание использования расходников фулфилмента в услугах
- - Аналитика расхода расходников фулфилмента по операциям
-
-#### 12.1.4 Блок детализация по Магазинам
-
-**Назначение**: Распределение товаров по торговым точкам
-
-- **ОСТАТКИ ПО МАГАЗИНАМ**: Отображение количества товаров в каждом магазине
-- **УПРАВЛЕНИЕ РАСПРЕДЕЛЕНИЕМ**: Перемещение товаров между точками
-- **КОНТРОЛЬ ДВИЖЕНИЯ**: Отслеживание перемещений между складами и магазинами
-
-### 12.2 Workflow движения товаров в фулфилменте
-
-#### 12.2.1 Поступление товаров на склад
-
-**Источники поступления:**
-
-1. **ПОСТАВКИ ОТ ПОСТАВЩИКОВ** - основной канал поступления
-2. **ВОЗВРАТЫ С ПВЗ** - товары от покупателей
-3. **ВНУТРЕННИЕ ПЕРЕМЕЩЕНИЯ** - между складами фулфилмента
-
-**Процесс приёмки:**
-
-1. Поставка переходит в статус "принято"
-2. Товары меняют статус: "в пути" → "на складе"
-3. Обновляются основные значения (остатки)
-4. Фиксируется в дополнительных значениях как "прибыло"
-5. Обновляется статистика по модулям
-
-#### 12.2.2 Расход товаров со склада
-
-**Причины расхода:**
-
-- **ОТГРУЗКА СЕЛЛЕРАМ** - выполнение заказов
-- **СПИСАНИЕ** - брак, утрата, утилизация
-- **ИСПОЛЬЗОВАНИЕ В УСЛУГАХ** - расходники для создания продуктов
-- **ПРЕВРАЩЕНИЕ В ПРОДУКТЫ** - товары становятся продуктами
-- **ВОЗВРАТ ПОСТАВЩИКУ** - некачественные товары
-
-**Процесс списания:**
-
-1. Указание причины расхода
-2. Обновление основных значений (уменьшение остатков)
-3. Фиксация в дополнительных значениях как "убыло"
-4. Обновление статистики модулей
-
-#### 12.2.3 Процесс "Создания продукта"
-
-**Полный цикл превращения товара в продукт:**
-
-**ЭТАП 1: ПОСТУПЛЕНИЕ И СОРТИРОВКА**
-
-1. Товар поступает на склад фулфилмента (статус "на складе")
-2. Перебор и сортировка товара
-3. Выявление и отсеивание брака
-
-**ЭТАП 2: ПОДГОТОВКА К РАБОТЕ** 4. Поставка попадает в раздел "Создание продукта" / Новые 5. Менеджер фулфилмента:
-
-- Устанавливает дедлайн выполнения
-- Назначает ответственного исполнителя
-- Указывает место хранения готовых продуктов (опционально)
-- Нажимает "В работе"
-
-**ЭТАП 3: ОБРАБОТКА (СОЗДАНИЕ ПРОДУКТА)** 6. Поставка переходит в "Создание продукта" / В работе 7. Товары получают статус "в работе" 8. Исполнитель работает по "рецептуре" селлера:
-
-- Применяет услуги фулфилмента (например, "погладить")
-- Использует расходники селлера (например, фирменный пакет)
-- Использует расходники фулфилмента (например, короб + маркировка)
-
-**ЭТАП 4: УЧЕТ ПЛАН/ФАКТ** 9. В процессе работы фиксируется:
-
-- **ПЛАН**: Количество из поставки селлера
-- **ФАКТ**: Реальное количество = Брак + Хороший товар
-- **ДЕТАЛИЗАЦИЯ**: По каждому размеру/объему
-
-10. Статистика корректируется на фактические данные
-
-**ЭТАП 5: ЗАВЕРШЕНИЕ** 11. Исполнитель нажимает "Выполнено" 12. Товары становятся продуктами со статусом "готов к отправке" 13. Поставка переходит в "Создание продукта" / Выполнено
-
-**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
-
-**РЕЦЕПТУРА ПРОДУКТА (задается селлером):**
-
-- **БАЗОВЫЙ ТОВАР**: Исходный материал
-- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг фулфилмента
-- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (опционально)
-- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (опционально)
-- **СВЯЗЬ С MP**: Связь с карточкой маркетплейса (опционально)
-
-### 12.3 Интеграция с системой поставщиков
-
-**Связь систем складов:**
-
-- **ПОСТАВЩИК → ФУЛФИЛМЕНТ**: Передача товаров через поставки
-- **СИНХРОНИЗАЦИЯ ДАННЫХ**: Остатки, статусы, движение товаров
-- **УВЕДОМЛЕНИЯ**: О принятии поставок и изменении статусов
-
-## 13. 📋 РЕКОМЕНДАЦИИ ПО ДОПОЛНЕНИЮ И УЛУЧШЕНИЮ
-
-### 13.1 Дополнить в описании
-
-- ✅ **Система активации/деактивации товаров** - добавлено
-- ✅ **Функционал корзины и избранного** - добавлено
-- ✅ **Интеграция с маркетплейсами (WB)** - добавлено
-- ✅ **Автоматические уведомления** - добавлено
-- ✅ **Система тарификации логистики** - добавлено
-- ✅ **Управление изображениями товаров** - добавлено
-- ✅ **Проверки остатков и валидация** - добавлено
-
-### 13.2 Расширить workflow
-
-- ✅ **Промежуточные статусы** (`SUPPLIER_APPROVED`, `LOGISTICS_CONFIRMED`, `SHIPPED`) - добавлено
-- ✅ **Роли и права доступа** - добавлено
-- ✅ **Автоматические уведомления на каждом этапе** - добавлено
-
-### 13.3 Дополнить систему статистики
-
-- ✅ **Метрики изменений за период** - добавлено
-- ✅ **Аналитика по категориям** - добавлено
-- ✅ **Отчеты по поставщикам** - добавлено
-
----
-
-_Документ создан на основе анализа существующего кода и требований пользователя_
-_Версия: 1.0_
-_Дата: 2024_
diff --git a/development-checklist.md b/development-checklist.md
deleted file mode 100644
index b990da7..0000000
--- a/development-checklist.md
+++ /dev/null
@@ -1,223 +0,0 @@
-# ЧЕКЛИСТ РАЗРАБОТКИ - ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ
-
-> ⚠️ **КРИТИЧЕСКИ ВАЖНО**: Этот чеклист ОБЯЗАТЕЛЕН к проверке перед любым изменением кода!
-
-## 🔤 ТЕРМИНЫ СИСТЕМЫ
-> Для людей → `В коде`
-- ТОВАР → `PRODUCT`
-- РАСХОДНИКИ → `CONSUMABLE`
-- БРАК → `DEFECT` *(планируется)*
-- ПРОДУКТ → `FINISHED_PRODUCT` *(планируется)*
-
-## 🔴 КРИТИЧЕСКИЕ ПРОВЕРКИ (НЕЛЬЗЯ НАРУШАТЬ)
-
-### ✅ Типизация предметов
-
-- [ ] Каждый предмет имеет один из типов: ТОВАР (`PRODUCT`), РАСХОДНИКИ (`CONSUMABLE`), БРАК и ПРОДУКТ (планируются)
-- [ ] БРАК и ПРОДУКТ имеют обязательную связь с родительским товаром (parentId)
-- [ ] Расходники создаются как универсальный тип, классифицируются при заказе
-- [ ] ТОВАР ≠ ПРОДУКТ (разные сущности в системе)
-- [ ] **В формах создания поставок товаров показываются ТОЛЬКО предметы типа ТОВАР** (`PRODUCT`)
-- [ ] **В формах создания поставок расходников показываются ТОЛЬКО предметы типа РАСХОДНИКИ** (`CONSUMABLE`)
-- [ ] **Фильтрация по типу предмета происходит на уровне GraphQL резолвера**, не на фронтенде
-
-### ✅ Workflow статусов
-
-- [ ] Соблюдена последовательность: PENDING → SUPPLIER_APPROVED → CONFIRMED → LOGISTICS_CONFIRMED → SHIPPED → IN_TRANSIT → DELIVERED
-- [ ] Нет пропуска промежуточных статусов
-- [ ] Каждое изменение статуса сопровождается уведомлением
-
-### ✅ Правила доступа
-
-- [ ] Поставщик НЕ может добавлять собственные товары в корзину
-- [ ] Заказ брака ЗАПРЕЩЕН
-- [ ] Только активные предметы отображаются в маркете
-- [ ] Проверка остатков перед добавлением в корзину
-
-### ✅ Система фулфилмента
-
-- [ ] Товары разделены на "на складе" и "в обработке"
-- [ ] Модули статистики в правильной последовательности: ПРОДУКТ → ТОВАР → БРАК → ВОЗВРАТЫ → РАСХОДНИКИ СЕЛЛЕРОВ → РАСХОДНИКИ ФУЛФИЛМЕНТА
-- [ ] Процесс создания продукта включает учет план/факт
-
-### ✅ Система логистики
-
-- [ ] Своевременное подтверждение заявок на доставку
-- [ ] Соблюдение workflow логистики: получение заявки → подтверждение → забор → доставка
-- [ ] Корректная работа системы тарификации (до 1м³ и свыше 1м³)
-- [ ] Обязательные уведомления о статусе доставки
-
-### ✅ Структура кабинетов
-
-- [ ] Каждый тип кабинета имеет страницу "Главная" (РЕАЛИЗОВАНО)
-- [ ] Страница "Главная" первая в sidebar навигации (РЕАЛИЗОВАНО)
-- [ ] Условное отображение разделов по типу организации: `{user?.organization?.type === "TYPE" && (...)}`
-- [ ] Адаптивный роутинг для кнопок с разной логикой по типам кабинетов
-- [ ] Роут `/home` с универсальным компонентом HomePageWrapper
-- [ ] 4 типо-зависимых компонента: SellerHomePage, FulfillmentHomePage, WholesaleHomePage, LogistHomePage
-- [ ] Проверки доступа и безопасности в каждом компоненте
-- [ ] Каждый кабинет имеет раздел "Экономика" (РЕАЛИЗОВАНО В СИСТЕМЕ)
-- [ ] Разделы "Экономика" размещены перед настройками в каждом кабинете (РЕАЛИЗОВАНО)
-- [ ] Пустые разделы-заглушки с пометкой "будет добавлен позже" (РЕАЛИЗОВАНО)
-- [ ] Роут `/economics` с универсальным компонентом EconomicsPageWrapper (РЕАЛИЗОВАНО)
-- [ ] 4 типо-зависимых компонента экономики: SellerEconomicsPage, FulfillmentEconomicsPage, WholesaleEconomicsPage, LogistEconomicsPage (РЕАЛИЗОВАНО)
-- [ ] Кнопка "Экономика" в sidebar навигации перед настройками (РЕАЛИЗОВАНО)
-- [ ] Проверки доступа и безопасности в экономических компонентах (РЕАЛИЗОВАНО)
-
-### ✅ Обязательные поля
-
-- [ ] Название, артикул, цена > 0, тип предмета
-- [ ] ИСКЛЮЧЕНИЕ: Цена брака может быть 0 для фулфилмента (себестоимость для селлера)
-- [ ] Уникальность артикула в рамках организации
-- [ ] Формат артикула: СФ-{ТИП}-{КОД*КАТЕГОРИИ}-{КОД*ОРГАНИЗАЦИИ}-{TIMESTAMP}-{RANDOM}
-- [ ] Товар имеет минимум одно изображение (ПРИМЕР АВТОСИНХРОНИЗАЦИИ)
-
-## 🟡 ВАЖНЫЕ ПРОВЕРКИ
-
-### ✅ Валидация данных
-
-- [ ] Все числовые значения корректны (цена > 0, вес > 0)
-- [ ] Количество в заказе не превышает остаток
-- [ ] Проверка корректности дат (не прошедшие для поставок)
-- [ ] Валидация количества: минимум 1 единица/комплект, максимум = остаток у поставщика
-- [ ] Проверка в реальном времени при изменении количества
-
-### ✅ Уведомления
-
-- [ ] Автоматические уведомления при создании заказов
-- [ ] Уведомления при изменении статусов всем участникам
-- [ ] Логирование всех изменений
-
-### ✅ Интеграции
-
-- [ ] Синхронизация данных между модулями
-- [ ] Корректная работа с API маркетплейсов
-- [ ] Связь с модулем "Услуги" для расходников фулфилмента
-
-## 💻 ТЕХНИЧЕСКИЕ ПРОВЕРКИ
-
-### ✅ Пользовательский интерфейс
-
-- [ ] Адаптивность интерфейса для всех устройств
-- [ ] Индикаторы загрузки для длительных операций
-- [ ] Подтверждение критических действий
-- [ ] Время загрузки страницы не более 3 секунд
-
-### ✅ Обработка ошибок
-
-- [ ] Логирование всех ошибок с детальной информацией
-- [ ] Понятные сообщения об ошибках для пользователя
-- [ ] Автоматическое восстановление после сбоев
-- [ ] Регулярное резервное копирование данных
-
-### ✅ Производительность
-
-- [ ] Пагинация для больших списков товаров
-- [ ] Ленивая загрузка изображений
-- [ ] Кэширование часто запрашиваемых данных
-- [ ] Готовность к масштабированию
-
-### ✅ Безопасность данных
-
-- [ ] Шифрование чувствительных данных
-- [ ] Аудит всех действий пользователей
-- [ ] Контроль доступа на уровне API
-- [ ] Соответствие требованиям GDPR
-
-### ✅ Качество кода
-
-- [ ] Покрытие тестами критической функциональности (минимум 80%)
-- [ ] Следование принципам SOLID
-- [ ] Документирование всех API методов
-- [ ] Автоматическое тестирование при развертывании
-
-### ✅ GraphQL и TypeScript
-
-- [ ] Имена полей в коде соответствуют GraphQL схеме (`myCounterparties`, не `getMyCounterparties`)
-- [ ] Интерфейсы TypeScript соответствуют schema.prisma (`article`, не `sku`; `quantity`, не `stock`)
-- [ ] При проблемах с GraphQL использовать `fetchPolicy: 'network-only'` для обхода кеша
-- [ ] Добавлять логирование при отладке GraphQL запросов
-- [ ] Проверка что резолверы вызываются (логи сервера)
-- [ ] **Использовать специализированные запросы вместо общих** (`GET_ORGANIZATION_PRODUCTS` вместо `GET_ALL_PRODUCTS` для конкретного поставщика)
-- [ ] **Обязательная фильтрация по типу предмета** в резолверах (`PRODUCT`/`CONSUMABLE`)
-- [ ] **Параметр `organizationId` обязателен** для запросов товаров конкретной организации
-
-### ✅ Система партнерства
-
-- [ ] Поставщики в формах берутся только из партнеров с типом `WHOLESALE`
-- [ ] Используется запрос `GET_MY_COUNTERPARTIES` с фильтрацией по типу
-- [ ] НЕ используется `GET_SUPPLY_SUPPLIERS` для отображения поставщиков в формах
-- [ ] Партнерство создается двумя способами: через заказ в маркете или через раздел "Партнеры"
-- [ ] Двусторонние записи в таблице `Counterparty` при создании партнерства
-
-### ✅ Архитектурные принципы GraphQL
-
-- [ ] **Создавать специализированные резолверы** для каждого контекста использования
-- [ ] **Использовать параметризованные запросы** (`organizationId`, `type`, `search`) вместо фильтрации на фронтенде
-- [ ] **Добавлять подробное логирование** в резолверы для отладки (входные параметры, результаты фильтрации)
-- [ ] **Типы запросов должны отражать бизнес-логику**: `organizationProducts` для товаров конкретной организации
-- [ ] **Значения по умолчанию в резолверах** для критических параметров (`type: args.type || "PRODUCT"`)
-- [ ] **Валидация обязательных параметров** на уровне схемы (`organizationId: ID!`)
-- [ ] **Кеширование обходить при проблемах** через `fetchPolicy: 'network-only'`
-
-## 🟢 РЕКОМЕНДУЕМЫЕ ПРОВЕРКИ
-
-### ✅ Пользовательский опыт
-
-- [ ] Адаптивность интерфейса
-- [ ] Индикаторы загрузки
-- [ ] Понятные сообщения об ошибках
-
-### ✅ Производительность
-
-- [ ] Пагинация для больших списков
-- [ ] Ленивая загрузка изображений
-- [ ] Кэширование данных
-
-## ❌ АБСОЛЮТНО ЗАПРЕЩЕНО
-
-1. Удалять предметы с существующими заказами
-2. Изменять статусы без уведомлений
-3. Обходить проверки остатков
-4. Давать доступ к чужим данным
-5. Создавать брак/продукт без связи с родительским товаром
-6. Создавать отдельные типы расходников
-7. Разрешать заказ брака
-8. Нарушать последовательность статусов
-9. Игнорировать валидацию
-10. Нарушать последовательность модулей в статистике фулфилмента
-11. **Использовать неправильные имена полей GraphQL** (`getMyCounterparties` вместо `myCounterparties`)
-12. **Использовать GET_SUPPLY_SUPPLIERS для отображения поставщиков в формах** (только партнеры WHOLESALE)
-13. **Создавать интерфейсы TypeScript не соответствующие schema.prisma** (`sku`/`stock` вместо `article`/`quantity`)
-14. **Использовать общие запросы вместо специализированных** (`GET_ALL_PRODUCTS` вместо `GET_ORGANIZATION_PRODUCTS` для конкретного поставщика)
-15. **Показывать расходники в формах создания поставок товаров** (строгая типизация `PRODUCT`/`CONSUMABLE`)
-16. **Фильтровать предметы по типу на фронтенде** (фильтрация должна быть в GraphQL резолвере)
-
----
-
-## 🤔 ПРАВИЛО УТОЧНЕНИЙ
-
-**КРИТИЧЕСКИ ВАЖНО**: Если я не уверен в выполнении задачи или вижу противоречия в правилах - ОБЯЗАТЕЛЬНО уточнить у пользователя!
-
-### ❓ КОГДА УТОЧНЯТЬ:
-
-- [ ] Недостаточно информации для правильного выполнения
-- [ ] Вижу противоречия между правилами
-- [ ] Задача может нарушить критические правила
-- [ ] Неясно как применить правило в конкретной ситуации
-- [ ] Есть сомнения в интерпретации требований
-
-### 📝 КАК УТОЧНЯТЬ:
-
-1. Четко сформулировать что именно неясно
-2. Указать какие правила/требования конфликтуют
-3. Предложить варианты решения если возможно
-4. Запросить конкретные уточнения
-
-**❌ НИКОГДА не делать предположений если есть сомнения!**
-
----
-
-**ПРАВИЛО**: Перед каждым изменением кода проверить этот чеклист!
-**ИСТОЧНИК ИСТИНЫ**: rules-unified.md (v4.0)
-**СТАТУС**: ОБЯЗАТЕЛЬНЫЙ К ВЫПОЛНЕНИЮ
diff --git a/fulfillment-cabinet-rules.md b/fulfillment-cabinet-rules.md
deleted file mode 100644
index 01ecd5a..0000000
--- a/fulfillment-cabinet-rules.md
+++ /dev/null
@@ -1,482 +0,0 @@
-# ПРАВИЛА КАБИНЕТА ФУЛФИЛМЕНТА
-
-> 📋 **Файл создан на основе анализа системы** - детальные правила для кабинета фулфилмента
-
----
-
-## 📑 ОГЛАВЛЕНИЕ
-
-1. [🏭 Общие характеристики кабинета фулфилмента](#1--общие-характеристики-кабинета-фулфилмента)
-2. [🗂️ Основные разделы кабинета](#2--основные-разделы-кабинета)
-3. [🔒 Правила доступа фулфилмента](#3--правила-доступа-фулфилмента)
-4. [📋 Критические правила для rules2.md](#4--критические-правила-для-rules2md)
-
----
-
-## 1. 🏭 ОБЩИЕ ХАРАКТЕРИСТИКИ КАБИНЕТА ФУЛФИЛМЕНТА
-
-### 1.1 Принципы доступа
-
-- **МАКСИМАЛЬНЫЕ ПРАВА**: Фулфилмент имеет доступ ко ВСЕМ разделам системы
-- **АДАПТИВНАЯ НАВИГАЦИЯ**: Sidebar изменяется в зависимости от `user.organization.type === "FULFILLMENT"`
-- **ЭКСКЛЮЗИВНЫЕ КОМПОНЕНТЫ**: Услуги, Сотрудники, Статистика фулфилмента доступны ТОЛЬКО фулфилменту
-- **СПЕЦИАЛЬНЫЙ РОУТИНГ**: При нажатии "Поставки" → `/fulfillment-supplies` (не `/supplies`)
-
-### 1.2 Архитектурные особенности
-
-- **GraphQL проверки**: `skip: user?.organization?.type !== 'FULFILLMENT'` в запросах
-- **Условное отображение**: `{user?.organization?.type === "FULFILLMENT" && (...)}`
-- **Адаптивные отступы**: `getSidebarMargin()` для responsive design
-- **Полинг данных**: Статистика обновляется каждую минуту (`pollInterval: 60000`)
-
----
-
-## 2. 🗂️ ОСНОВНЫЕ РАЗДЕЛЫ КАБИНЕТА
-
-### 2.1 🏠 Главная страница (`/dashboard`)
-
-**Компонент**: `DashboardHome`
-**Содержание**:
-
-- Основная информация организации
-- Статус онлайн пользователя
-- Быстрый доступ к основным разделам
-
----
-
-### 2.2 🏭 Склад фулфилмента (`/fulfillment-warehouse`)
-
-**Компонент**: `FulfillmentWarehouseDashboard`
-
-#### 2.2.1 Структура склада по модулям (ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ)
-
-1. **📦 ПРОДУКТЫ** - готовые к отправке товары
-2. **🛒 ТОВАРЫ** - базовые товары от поставщиков
- - **"На складе"** - готовы к обработке
- - **"В обработке"** - в процессе создания продукта
-3. **❌ БРАК** - товары с дефектами, требуют утилизации
-4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары, к обработке
-5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы (КЛИКАБЕЛЬНЫЙ модуль)
-
-#### 2.2.2 Система учета склада
-
-**Дополнительные значения** (показатели движения):
-
-- **ПРИБЫЛО** - количество поступивших на склад за период
-- **УБЫЛО** - количество списанных со склада за период
-
-**Основные значения** (текущие остатки):
-
-- **ФОРМУЛА**: Основные значения = Предыдущие остатки + Прибыло - Убыло
-- **ОБНОВЛЕНИЕ**: В реальном времени с изменениями за сутки
-- **ИСТОЧНИК**: GraphQL query `GET_FULFILLMENT_WAREHOUSE_STATS`
-
-#### 2.2.3 Структура данных склада (3-уровневая иерархия)
-
-```
-🔵 УРОВЕНЬ 1: МАГАЗИНЫ
-├── ТехноМир (синий - blue-400/500)
-├── Стиль и Комфорт (розовый - pink-400/500)
-└── Зелёный Дом (изумрудный - emerald-400/500)
- ↓
-🟢 УРОВЕНЬ 2: ТОВАРЫ (зеленый - green-500)
- ↓
-🟠 УРОВЕНЬ 3: ВАРИАНТЫ ТОВАРОВ (оранжевый - orange-500)
-```
-
-**Цветовое кодирование**:
-
-- Каждый уровень имеет цветной индикатор увеличивающегося размера
-- Цветная левая граница с увеличивающимся отступом и толщиной
-- Скроллбары в цвете уровня
-- Контрастный цвет текста для читаемости
-
-#### 2.2.4 Статистика склада
-
-**6 основных карточек статистики**:
-
-1. **Продукты** - готовые к отправке
-2. **Товары** - в обработке
-3. **Брак** - требует утилизации
-4. **Возвраты с ПВЗ** - к обработке
-5. **Расходники селлеров** - материалы клиентов
-6. **Расходники фулфилмента** - операционные материалы
-
----
-
-### 2.3 📦 Поставки фулфилмента (`/fulfillment-supplies`)
-
-**Компонент**: `SuppliesDashboard`
-
-#### 2.3.1 Структура: 2 основные вкладки
-
-**A) 🛒 ПОСТАВКИ ТОВАРОВ**:
-
-- **Детализированные товары ФФ** - планы и факты поставок с маршрутами
-- **Товары ФФ** - общие поставки товаров от селлеров
-- **Возвраты с ПВЗ** - обработка возвращенных товаров
-
-**B) 🔧 ПОСТАВКИ РАСХОДНИКОВ**:
-
-- **Заказы расходников** - управление заказами от селлеров
-- **Расходники селлеров** - материалы для клиентов
-- **Создание поставок** - формирование новых поставок расходников
-
-#### 2.3.2 Workflow поставок товаров
-
-**Этапы обработки**:
-
-1. **Planned** - поставка запланирована
-2. **In-transit** - товар в пути
-3. **Delivered** - доставлен на склад
-4. **Completed** - обработка завершена
-
-**Данные поставки**:
-
-- Номер поставки (ФФ-YYYY-XXX)
-- Селлер (организация, магазин, менеджер)
-- Количество позиций и грузовых мест
-- Объем и стоимость поставки
-- Ответственный сотрудник и логистика
-
----
-
-### 2.4 📊 Статистика фулфилмента (`/fulfillment-statistics`)
-
-**Компонент**: `FulfillmentStatisticsDashboard`
-
-#### 2.4.1 Блоки аналитики (сворачиваемые)
-
-**1. НАКОПЛЕННАЯ СТАТИСТИКА** (`allTime: true`):
-
-- Обработано товаров (общий объем)
-- Выявлено брака (всего единиц)
-- Поставок получено
-- Общий доход (за все время)
-- Выполнено заказов (успешных отгрузок)
-- Удовлетворенность клиентов (средний рейтинг)
-
-**2. ОТГРУЗКА НА ПЛОЩАДКИ** (`marketplaces: true`):
-
-- Отправлено на Wildberries
-- Отправлено на Ozon
-- Отправлено на другие площадки
-
-**3. АНАЛИТИКА ПРОИЗВОДИТЕЛЬНОСТИ** (`performance: false`):
-
-- Среднее время обработки (на единицу товара)
-- Уровень брака (от общего объема)
-- Уровень возвратов (возвраты с площадок)
-- Удовлетворенность клиентов
-
-**4. МЕТРИКИ СКЛАДА** (`warehouseMetrics: true`):
-
-- Эффективность склада
-- Оборачиваемость товаров
-- Коэффициент использования
-
-**5. УМНЫЕ РЕКОМЕНДАЦИИ** (`smartRecommendations: true`):
-
-- Автоматические советы по оптимизации
-- Предложения по улучшению процессов
-
-**6. БЫСТРЫЕ ДЕЙСТВИЯ** (`quickActions: true`):
-
-- Часто используемые операции
-- Горячие клавиши для действий
-
-#### 2.4.2 Ключевые показатели в заголовке
-
-- **Общий доход** (зеленый - success)
-- **Качество** (синий - X/5.0 рейтинг)
-- **Уровень брака** (процент от общего объема)
-
----
-
-### 2.5 🔧 Услуги (`/services`)
-
-**Компонент**: `ServicesDashboard`
-**Условие доступа**: `user?.organization?.type === "FULFILLMENT"`
-
-#### 2.5.1 Структура: 3 обязательные вкладки
-
-**A) 🛠️ УСЛУГИ** (`defaultValue="services"`):
-
-- **CRUD операции**: создание, редактирование, удаление услуг
-- **Управление ценами** и описаниями
-- **Загрузка изображений** услуг (`imageUrl`)
-- **GraphQL**: `GET_MY_SERVICES`, `CREATE_SERVICE`, `UPDATE_SERVICE`, `DELETE_SERVICE`
-
-**B) 🚚 ЛОГИСТИКА**:
-
-- **Создание маршрутов доставки** (откуда → куда)
-- **Тарификация**: цена до 1м³ и свыше 1м³
-- **Группированные локации**:
- - Мой фулфилмент (название организации)
- - Рынки (предустановленные)
- - Склады Wildberries
- - Склады Ozon
-- **GraphQL**: `GET_MY_LOGISTICS`, `CREATE_LOGISTICS`, `UPDATE_LOGISTICS`, `DELETE_LOGISTICS`
-
-**C) 📦 РАСХОДНИКИ**:
-
-- **Управление расходниками фулфилмента**
-- **Интеграция с модулем "Услуги"** - селлеры могут использовать в услугах
-- **Списание со складских остатков** при использовании
-- **Стоимость включается** в стоимость услуги
-
-#### 2.5.2 Правила логистики
-
-**Создание маршрута**:
-
-- **Обязательные поля**: Название маршрута, Откуда, Куда
-- **Ценообразование**: Цена до 1м³, Цена свыше 1м³
-- **Описание услуг**: Дополнительные условия доставки
-- **Проверка**: Только организации типа FULFILLMENT могут создавать логистику
-
----
-
-### 2.6 👥 Сотрудники (`/employees`)
-
-**Компонент**: `EmployeesDashboard`
-**Условие доступа**: `user?.organization?.type === "FULFILLMENT"`
-
-#### 2.6.1 Структура: 2 основные вкладки
-
-**A) 👥 СОТРУДНИКИ** (`defaultValue="combined"`):
-
-**Управление персоналом**:
-
-- **CRUD операции**: создание, редактирование, удаление сотрудников
-- **Статусы сотрудников**: `ACTIVE`, `VACATION`, `SICK`, `FIRED`
-- **Формы добавления**: Компактная (`showCompactForm`) / Полная форма
-- **Поиск и фильтрация** по имени, должности, статусу
-
-**Табель рабочего времени**:
-
-- **Навигация по месяцам**: текущий год/месяц с кнопками ←/→
-- **Отметки по дням**: статус дня и количество отработанных часов
-- **GraphQL**: `GET_EMPLOYEE_SCHEDULE`, `UPDATE_EMPLOYEE_SCHEDULE`
-- **Данные**: `{date, hoursWorked, employee: {id}}`
-
-**B) 📋 ОТЧЕТЫ** (`value="reports"`):
-
-- **Сводные отчеты** по сотрудникам за период
-- **Экспорт данных** табеля
-- **Аналитика рабочего времени**
-
-#### 2.6.2 Интерфейс сотрудников
-
-**Обязательные поля сотрудника**:
-
-```typescript
-interface Employee {
- firstName: string; // Имя
- lastName: string; // Фамилия
- middleName?: string; // Отчество
- position: string; // Должность
- phone: string; // Телефон
- email?: string; // Email
- status: "ACTIVE" | "VACATION" | "SICK" | "FIRED";
- salary?: number; // Зарплата
- hireDate: string; // Дата найма
- // ... дополнительные поля
-}
-```
-
-**Валидация данных**:
-
-- Имя/Фамилия: минимум 2 символа, только буквы/пробелы/дефисы
-- Телефон: обязательный, формат +7 (999) 123-45-67
-- Email: валидация формата при заполнении
-- Должность: минимум 2 символа
-
----
-
-### 2.7 🌐 Универсальные разделы
-
-#### 2.7.1 🛒 Маркет (`/market`)
-
-- Просмотр товаров всех поставщиков
-- Создание заказов у поставщиков
-- Управление корзиной и избранным
-
-#### 2.7.2 🤝 Партнеры (`/partners`)
-
-- Управление контрагентами всех типов
-- Входящие/исходящие заявки на сотрудничество
-
-#### 2.7.3 💬 Мессенджер (`/messenger`)
-
-- Внутренняя связь между организациями
-- Поддержка файлов, изображений, голосовых сообщений
-
-#### 2.7.4 ⚙️ Настройки (`/settings`)
-
-- Профиль организации и пользователя
-- API ключи маркетплейсов (WB, Ozon)
-- Банковские реквизиты
-
----
-
-## 3. 🔒 ПРАВИЛА ДОСТУПА ФУЛФИЛМЕНТА
-
-### 3.1 Эксклюзивный доступ (только фулфилмент)
-
-**TypeScript проверки**:
-
-```typescript
-{user?.organization?.type === "FULFILLMENT" && (
- // Компоненты доступны только фулфилменту
-)}
-```
-
-**Эксклюзивные разделы**:
-
-- **Услуги** (`/services`) - создание услуг, логистики, управление расходниками
-- **Сотрудники** (`/employees`) - управление персоналом и табелем
-- **Статистика фулфилмента** (`/fulfillment-statistics`) - детальная аналитика
-
-### 3.2 Специальная логика роутинга
-
-**При нажатии "Поставки" в sidebar**:
-
-```typescript
-const handleSuppliesClick = () => {
- switch (user?.organization?.type) {
- case "FULFILLMENT":
- router.push("/fulfillment-supplies"); // Специальный роут
- break;
- case "SELLER":
- router.push("/supplies");
- break;
- // ... другие типы
- }
-};
-```
-
-### 3.3 GraphQL проверки доступа
-
-**В Apollo Client запросах**:
-
-```typescript
-const { data } = useQuery(GET_MY_SERVICES, {
- skip: user?.organization?.type !== "FULFILLMENT", // Пропуск для не-фулфилмента
-});
-```
-
-**В GraphQL резолверах**:
-
-```typescript
-// Проверка типа организации на сервере
-if (currentUser.organization.type !== "FULFILLMENT") {
- throw new GraphQLError("Доступно только для фулфилмент центров");
-}
-```
-
----
-
-## 4. 📋 КРИТИЧЕСКИЕ ПРАВИЛА ДЛЯ RULES2.MD
-
-### 4.1 🔴 КРИТИЧЕСКИЕ ПРАВИЛА (обязательны к добавлению)
-
-#### **ПРАВИЛО FF-01: Структура склада фулфилмента**
-
-- **ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ** модулей: ПРОДУКТ→ТОВАР→БРАК→ВОЗВРАТЫ→РАСХОДНИКИ*СЕЛЛЕРОВ→РАСХОДНИКИ*ФУЛФИЛМЕНТА
-- **ЗАПРЕЩЕНО**: Изменение порядка модулей
-- **ОБЯЗАТЕЛЬНО**: Модуль "Расходники фулфилмента" должен быть кликабельным
-
-#### **ПРАВИЛО FF-02: Права доступа фулфилмента**
-
-- **ЭКСКЛЮЗИВНЫЙ ДОСТУП**: Услуги, Сотрудники, Статистика фулфилмента
-- **ПРОВЕРКА**: `user?.organization?.type === "FULFILLMENT"`
-- **GraphQL**: `skip: user?.organization?.type !== 'FULFILLMENT'`
-
-#### **ПРАВИЛО FF-03: Система учета склада**
-
-- **ДВОЙНОЙ УЧЕТ**: Основные значения + дополнительные значения
-- **ФОРМУЛА**: Основные = Предыдущие остатки + Прибыло - Убыло
-- **ОБНОВЛЕНИЕ**: Статистика в реальном времени с изменениями за сутки
-
-#### **ПРАВИЛО FF-04: Workflow создания продукта**
-
-- **ПРОЦЕСС**: Товары "на складе" → "в обработке" → ПРОДУКТ "готов к отправке"
-- **ПЛАН/ФАКТ**: Корректировка статистики при выявлении расхождений
-- **ОБЯЗАТЕЛЬНО**: Фиксация брака в процессе работы (вкладка "В работе")
-
-### 4.2 🟡 ВАЖНЫЕ ПРАВИЛА (рекомендуются к добавлению)
-
-#### **ПРАВИЛО FF-05: Модуль услуг фулфилмента**
-
-- **СТРУКТУРА**: 3 обязательные вкладки (Услуги, Логистика, Расходники)
-- **ЛОГИСТИКА**: Создание маршрутов только фулфилментом
-- **РАСХОДНИКИ**: Интеграция с модулем "Услуги", списание со склада
-
-#### **ПРАВИЛО FF-06: Управление сотрудниками**
-
-- **СТАТУСЫ**: 4 обязательных статуса (ACTIVE, VACATION, SICK, FIRED)
-- **ТАБЕЛЬ**: Месячная навигация с отметками по дням
-- **ВАЛИДАЦИЯ**: Строгие правила валидации полей сотрудника
-
-#### **ПРАВИЛО FF-07: Специальный роутинг**
-
-- **ПОСТАВКИ**: Фулфилмент → `/fulfillment-supplies` (не `/supplies`)
-- **УСЛОВНОЕ ОТОБРАЖЕНИЕ**: Разные компоненты для разных типов организаций
-
-### 4.3 🟢 ПОЛЕЗНЫЕ ПРАВИЛА (опциональны)
-
-#### **ПРАВИЛО FF-08: UI/UX паттерны фулфилмента**
-
-- **ЦВЕТОВАЯ СХЕМА**: 3-уровневая иерархия с цветовым кодированием
-- **СВОРАЧИВАЕМЫЕ БЛОКИ**: Статистика с состояниями `expandedSections`
-- **АДАПТИВНОСТЬ**: `getSidebarMargin()` для responsive design
-
-#### **ПРАВИЛО FF-09: Статистика и аналитика**
-
-- **6 ОСНОВНЫХ БЛОКОВ**: Накопленная, Площадки, Производительность, Склад, Рекомендации, Действия
-- **REAL-TIME**: Обновление каждую минуту (`pollInterval: 60000`)
-- **КЛЮЧЕВЫЕ ПОКАЗАТЕЛИ**: Доход, Качество, Уровень брака в заголовке
-
----
-
-## 📎 ПРИЛОЖЕНИЯ
-
-### Приложение A: GraphQL запросы фулфилмента
-
-```typescript
-// Основные запросы
-GET_MY_SERVICES; // Услуги фулфилмента
-GET_MY_LOGISTICS; // Логистические маршруты
-GET_MY_EMPLOYEES; // Сотрудники организации
-GET_FULFILLMENT_WAREHOUSE_STATS; // Статистика склада
-GET_WAREHOUSE_PRODUCTS; // Товары на складе
-GET_MY_FULFILLMENT_SUPPLIES; // Расходники фулфилмента
-
-// Мутации
-CREATE_SERVICE, UPDATE_SERVICE, DELETE_SERVICE;
-CREATE_LOGISTICS, UPDATE_LOGISTICS, DELETE_LOGISTICS;
-CREATE_EMPLOYEE, UPDATE_EMPLOYEE, DELETE_EMPLOYEE;
-```
-
-### Приложение B: Компоненты фулфилмента
-
-```typescript
-// Основные dashboard компоненты
-FulfillmentWarehouseDashboard; // Склад фулфилмента
-FulfillmentStatisticsDashboard; // Статистика
-ServicesDashboard; // Услуги (3 вкладки)
-EmployeesDashboard; // Сотрудники
-SuppliesDashboard; // Поставки фулфилмента
-
-// Специализированные компоненты
-ServicesTab, LogisticsTab, SuppliesTab; // Вкладки услуг
-EmployeeInlineForm, EmployeeEditInlineForm; // Формы сотрудников
-FulfillmentSuppliesTab, FulfillmentConsumablesOrdersTab; // Поставки
-```
-
----
-
-**📅 Создано**: На основе анализа системы Sfera
-**🎯 Статус**: Готово к интеграции в rules2.md
-**📝 Версия**: 1.0
diff --git a/rules-unified.md b/rules-complete.md
similarity index 58%
rename from rules-unified.md
rename to rules-complete.md
index 26ff7bb..d460c7a 100644
--- a/rules-unified.md
+++ b/rules-complete.md
@@ -1,22 +1,372 @@
-# ПРАВИЛА СИСТЕМЫ УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ - ПОЛНАЯ БАЗА ЗНАНИЙ v3.0
+# ПРАВИЛА СИСТЕМЫ УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ - ЕДИНЫЙ ИСТОЧНИК ИСТИНЫ v9.1
-> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данный файл является объединенной полной базой знаний системы, созданной на основе rules.md, rules1.md и rules2.md. Все изменения должны согласовываться.
+> ⚠️ **АБСОЛЮТНО ПОЛНЫЙ ЕДИНЫЙ ИСТОЧНИК ИСТИНЫ**: Данный файл объединяет АБСОЛЮТНО ВСЕ правила системы: протоколы работы Claude Code, детальные протоколы по сложности, систему предотвращения нарушений, расширенную самопроверку, специальный UI/UX протокол и бизнес-правила. Визуальные правила вынесены в отдельный файл visual-design-rules.md с автоматической интеграцией.
-## 🔤 ТЕРМИНЫ СИСТЕМЫ
+## 🔴 ПРОТОКОЛЫ РАБОТЫ CLAUDE CODE
+
+### ⛔ ЖЕСТКИЙ ПРОТОКОЛ - ОБЯЗАТЕЛЬНОЕ ИСПОЛНЕНИЕ
+**Я НЕ МОГУ выполнять НИКАКИХ изменений в коде без предварительного чтения этого файла**
+
+**КОМАНДА ОСТАНОВКИ**: "СТОП - ЧИТАЙ ПРАВИЛА" - немедленно останавливает любую работу
+
+### 📋 ОБЯЗАТЕЛЬНЫЙ ЧЕК-ЛИСТ ПЕРЕД КАЖДОЙ ЗАДАЧЕЙ
+**КАЖДЫЙ ОТВЕТ ДОЛЖЕН НАЧИНАТЬСЯ С:**
+```
+## 📋 Чек-лист соответствия правилам:
+- ✅ Прочитал rules-complete.md
+- ✅ Задача понята в контексте правил
+- ✅ План действий соответствует правилам
+- ✅ [ЕСЛИ UI/UX ЗАДАЧА] Прочитал visual-design-rules.md
+- ✅ Готов выполнять согласно единому источнику истины
+```
+**БЕЗ ЭТОГО ЧЕК-ЛИСТА = НИКАКИХ ДЕЙСТВИЙ**
+
+### 🔄 ДВУХЭТАПНЫЙ ПРОЦЕСС РАБОТЫ
+#### **ЭТАП 1: ПЛАНИРОВАНИЕ (ОБЯЗАТЕЛЬНЫЙ)**
+- Прочитать этот файл правил
+- Создать детальный план действий
+- Указать какие правила будут применены
+- **ОСТАНОВИТЬСЯ И ЖДАТЬ ОДОБРЕНИЯ ПЛАНА**
+
+#### **ЭТАП 2: ВЫПОЛНЕНИЕ (ТОЛЬКО ПОСЛЕ ОДОБРЕНИЯ)**
+- Получить одобрение плана от пользователя
+- Следовать ТОЛЬКО одобренному плану
+- Использовать TodoWrite для отслеживания прогресса
+
+**ПРАВИЛО ДВУХЭТАПНОСТИ: БЕЗ ОДОБРЕНИЯ ПЛАНА = НИКАКОГО ВЫПОЛНЕНИЯ**
+
+## 🛠️ ДЕТАЛЬНЫЕ ПРОТОКОЛЫ ПО СЛОЖНОСТИ ЗАДАЧ
+
+### 🎯 ПРОТОКОЛ ДЛЯ ЗАДАЧ СРЕДНЕЙ СЛОЖНОСТИ
+
+**ОПРЕДЕЛЕНИЕ СРЕДНЕЙ СЛОЖНОСТИ:**
+- Работа с 2-3 файлами
+- Изменение логики в 1-2 модулях
+- Добавление новых функций без изменения архитектуры
+- Задачи, требующие анализа зависимостей
+
+**ОБЯЗАТЕЛЬНЫЕ ЭТАПЫ:**
+
+#### 1. 🔍 **ЭТАП АНАЛИЗА** (STOP & THINK)
+```
+ПЕРЕД НАЧАЛОМ ЗАДАТЬ СЕБЕ:
+□ Какие файлы нужно изучить? (перечислить ВСЕ)
+□ Какие правила из этого документа применимы?
+□ Есть ли зависимости между компонентами?
+□ Что может пойти не так?
+□ Нужны ли уточнения от пользователя?
+```
+
+#### 2. 📋 **СОЗДАНИЕ ПЛАНА**
+```
+□ Разбить задачу на подзадачи (не более 5)
+□ Определить порядок выполнения
+□ Выявить критические точки
+□ Создать TODO список
+```
+
+#### 3. 🔄 **ВЫПОЛНЕНИЕ С ПРОВЕРКАМИ**
+```
+ПОСЛЕ КАЖДОГО ШАГА:
+□ Соответствует ли результат правилам из этого документа?
+□ Не нарушены ли связи с другими модулями?
+□ Работает ли измененный код?
+□ Нужно ли обновить documentation?
+```
+
+### 🔥 ПРОТОКОЛ ДЛЯ ЗАДАЧ ВЫСОКОЙ СЛОЖНОСТИ
+
+**ОПРЕДЕЛЕНИЕ ВЫСОКОЙ СЛОЖНОСТИ:**
+- Работа с 4+ файлами
+- Изменение архитектуры системы
+- Создание новых модулей/компонентов
+- Задачи, влияющие на несколько кабинетов
+- Изменения в правилах или workflow
+
+**ОБЯЗАТЕЛЬНЫЕ ЭТАПЫ:**
+
+#### 1. 🛑 **СТОП! ГЛУБОКИЙ АНАЛИЗ**
+```
+ОБЯЗАТЕЛЬНЫЕ ВОПРОСЫ ПОЛЬЗОВАТЕЛЮ:
+□ Уточнить ВСЕ требования и ожидания
+□ Выяснить приоритеты и ограничения
+□ Узнать о связях с другими системами
+□ Понять критерии успеха
+```
+
+#### 2. 🔍 **ИССЛЕДОВАТЕЛЬСКАЯ ФАЗА**
+```
+□ Изучить ВСЕ связанные файлы параллельно
+□ Построить карту зависимостей
+□ Найти все правила в этом документе
+□ Выявить потенциальные конфликты
+□ Проанализировать влияние на систему
+```
+
+#### 3. 📊 **СОЗДАНИЕ ДЕТАЛЬНОГО ПЛАНА**
+```
+□ Разбить на этапы с промежуточными проверками
+□ Определить точки возврата (rollback points)
+□ Создать план тестирования
+□ Предусмотреть обновление документации
+```
+
+### ❓ СИСТЕМА ОБЯЗАТЕЛЬНЫХ УТОЧНЕНИЙ
+
+#### 🔴 **КРИТИЧЕСКИЕ СИТУАЦИИ** (ОБЯЗАТЕЛЬНО):
+- Обнаружил противоречие в правилах
+- Задача может нарушить архитектуру системы
+- Неясно как применить правило к конкретной ситуации
+- Есть несколько способов решения с разными последствиями
+- Изменения затрагивают критические бизнес-процессы
+
+#### 🟡 **ВАЖНЫЕ СИТУАЦИИ** (РЕКОМЕНДУЕТСЯ):
+- Задача требует создания новых типов данных
+- Нужно изменить существующий workflow
+- Есть сомнения в интерпретации требований
+- Решение может повлиять на производительность
+- Требуется интеграция с внешними системами
+
+**ФОРМАТ УТОЧНЯЮЩИХ ВОПРОСОВ:**
+```
+🎯 КОНТЕКСТ: Что именно я делаю
+❓ ВОПРОС: Что конкретно неясно
+⚖️ ВАРИАНТЫ: Какие есть альтернативы (если применимо)
+⚠️ РИСКИ: Что может пойти не так
+💡 ПРЕДЛОЖЕНИЕ: Мой рекомендуемый подход
+```
+
+### 🎨 СПЕЦИАЛЬНЫЙ ПРОТОКОЛ ДЛЯ UI/UX ЗАДАЧ
+
+**АВТОМАТИЧЕСКАЯ АКТИВАЦИЯ:** При обнаружении ключевых слов: дизайн, интерфейс, компонент, стили, UI, UX, визуал, цвет, кнопка, форма, карточка
+
+**ОБЯЗАТЕЛЬНЫЕ ЭТАПЫ:**
+
+#### 1. 📖 **ИЗУЧЕНИЕ ВИЗУАЛЬНЫХ ПРАВИЛ**
+```
+ОБЯЗАТЕЛЬНО:
+□ Прочитать visual-design-rules.md
+□ Найти применимые цветовые схемы
+□ Проверить правила для конкретного кабинета (селлер/фулфилмент/поставщик/логист)
+□ Изучить glass-system и UI компоненты
+```
+
+#### 2. 🎯 **ПРИМЕНЕНИЕ ДИЗАЙН-СИСТЕМЫ**
+```
+ПРОВЕРИТЬ:
+□ Соответствие цветовой палитре (OKLCH)
+□ Использование glass-эффектов (bg-white/10 backdrop-blur)
+□ Правильные статусные цвета
+□ Адаптивность и отзывчивость
+□ Консистентность с существующими компонентами
+```
+
+#### 3. ✅ **ВАЛИДАЦИЯ ДИЗАЙНА**
+```
+УБЕДИТЬСЯ:
+□ Соблюдены принципы иерархии
+□ Цвета соответствуют функциональному назначению
+□ Интерфейс доступен и понятен
+□ Стиль согласован с общей системой
+```
+
+## 🚨 СИСТЕМА ПРЕДОТВРАЩЕНИЯ НАРУШЕНИЙ
+
+### 🛑 ОБЯЗАТЕЛЬНЫЕ ОСТАНОВКИ ПЕРЕД ДЕЙСТВИЯМИ
+
+#### **СТОП-СИГНАЛ #1: ПЕРЕД ЛЮБЫМ АНАЛИЗОМ КОМПОНЕНТОВ**
+```
+❌ ЗАПРЕЩЕНО: Делать предположения о содержании файлов/компонентов
+✅ ОБЯЗАТЕЛЬНО:
+1. Использовать поиск для понимания
+2. Читать файлы для точного содержания
+3. Только ПОСЛЕ изучения кода - выводы
+```
+
+#### **СТОП-СИГНАЛ #2: ПРИ НЕОПРЕДЕЛЕННОСТИ**
+```
+❌ ЗАПРЕЩЕНО: Гадать, предполагать, домысливать
+✅ ОБЯЗАТЕЛЬНО:
+1. СТОП - зафиксировать неопределенность
+2. Использовать инструменты анализа (если применимо)
+3. Задать прямой вопрос пользователю
+```
+
+#### **СТОП-СИГНАЛ #3: ПЕРЕД ВЫПОЛНЕНИЕМ СРЕДНИХ/СЛОЖНЫХ ЗАДАЧ**
+```
+❌ ЗАПРЕЩЕНО: Сразу приступать к работе
+✅ ОБЯЗАТЕЛЬНО:
+1. Применить соответствующий протокол из этого документа
+2. Создать план через TodoWrite
+3. Пройти этап самопроверки
+```
+
+### 🔒 СИСТЕМА ПРИНУДИТЕЛЬНЫХ ПРОВЕРОК
+
+#### **ПРОВЕРКА #1: АНАЛИЗ КОДА**
+```
+Если задача включает анализ компонентов:
+□ Использовал ли поиск по кодовой базе?
+□ Прочитал ли исходный код?
+□ Основаны ли выводы на фактах, а не предположениях?
+```
+
+#### **ПРОВЕРКА #2: СОБЛЮДЕНИЕ ПРОТОКОЛОВ**
+```
+Для каждой задачи:
+□ Определил ли сложность задачи?
+□ Применил ли соответствующий протокол?
+□ Создал ли план действий?
+□ Провел ли финальную самопроверку?
+```
+
+### ⚡ СИСТЕМА АВТОМАТИЧЕСКИХ ТРИГГЕРОВ
+
+#### **ТРИГГЕР #1: При упоминании компонентов**
+- Ключевые слова: "компонент", "файл", "содержание", "показывает"
+- Действие: ОБЯЗАТЕЛЬНО использовать инструменты анализа кода
+
+#### **ТРИГГЕР #2: При неопределенности**
+- Ключевые фразы: "возможно", "вероятно", "думаю", "предполагаю"
+- Действие: СТОП + вопрос пользователю
+
+#### **ТРИГГЕР #3: При работе с UI/UX**
+- Ключевые слова: "дизайн", "интерфейс", "компонент", "стили", "UI", "UX", "визуал", "цвет", "кнопка", "форма", "карточка"
+- Действие: ОБЯЗАТЕЛЬНО прочитать visual-design-rules.md перед началом работы
+
+### 🛡️ СИСТЕМА БЛОКИРОВКИ НАРУШЕНИЙ
+
+```
+🛑 ОСТАНОВИТЬСЯ НЕМЕДЛЕННО ЕСЛИ:
+- Не определил сложность задачи
+- Пропустил этап "Стоп и подумай"
+- Есть сомнения в правилах
+- Не проверил все применимые разделы этого документа
+- Не уведомил о важных изменениях
+```
+
+## ✅ РАСШИРЕННАЯ СИСТЕМА САМОПРОВЕРКИ
+
+### 🛑 ОБЯЗАТЕЛЬНЫЙ ПРОТОКОЛ ПЕРЕД КАЖДОЙ ЗАДАЧЕЙ
+
+#### **ШАГ 1: ОПРЕДЕЛЕНИЕ СЛОЖНОСТИ И ПРОТОКОЛА**
+```
+ВОПРОСЫ:
+- Сколько файлов затрагивает задача? (1-3 = средняя, 4+ = высокая)
+- Изменяется ли архитектура или workflow? (да = высокая)
+- Влияет ли на критические бизнес-процессы? (да = высокая)
+
+ДЕЙСТВИЕ: Применить соответствующий протокол из этого документа
+```
+
+#### **ШАГ 2: ЭТАП "СТОП И ПОДУМАЙ"**
+```
+ОБЯЗАТЕЛЬНЫЕ ВОПРОСЫ:
+- Какие правила из этого документа применимы?
+- Какие файлы нужно изучить? (перечислить ВСЕ)
+- Есть ли неопределенности, требующие уточнения?
+- Что может пойти не так?
+
+ДЕЙСТВИЕ: Составить план с промежуточными проверками
+```
+
+### 📊 ФИНАЛЬНАЯ МЕГА-ПРОВЕРКА
+
+```
+МЕГА-ВОПРОС К СЕБЕ:
+"Применил ли я правильный протокол, проверил ли все правила,
+задал ли нужные вопросы, готов ли результат к production?"
+
+ЕСЛИ ОТВЕТ НЕ "ДА 100%" - ВЕРНУТЬСЯ К НАЧАЛУ!
+```
+
+### 📈 МЕТРИКИ УСПЕХА
+```
+ЦЕЛЬ: 0 пропущенных критических деталей
+
+ИЗМЕРЕНИЕ:
+✅ Количество вопросов на уточнение
+✅ Полнота анализа источников
+✅ Отсутствие нарушений правил
+```
+
+## ⚡ БЫСТРЫЙ СПРАВОЧНИК
+
+### 🚨 КРИТИЧЕСКИЕ ПРАВИЛА (ОБЯЗАТЕЛЬНЫ К СОБЛЮДЕНИЮ)
+
+1. **🔴 ТИПИЗАЦИЯ**: Каждый предмет ОБЯЗАТЕЛЬНО имеет тип: `PRODUCT`, `CONSUMABLE`, `DEFECT`, `FINISHED_PRODUCT`
+2. **🔴 WORKFLOW**: Нельзя пропускать статусы поставок: PENDING → SUPPLIER_APPROVED → CONFIRMED → ... → DELIVERED
+3. **🔴 ДОСТУП**: Фулфилмент = полный доступ, Селлер ≠ доступ к чужим данным, Брак = ЗАПРЕЩЕН к заказу
+4. **🔴 ПАРТНЕРСТВО**: Все связи через модель `Counterparty`, поставщики в формах ТОЛЬКО из партнеров `WHOLESALE`
+5. **🔴 ФИЛЬТРАЦИЯ**: По типу предмета происходит в GraphQL резолверах, НЕ на фронтенде
+
+### 🔍 БЫСТРЫЙ ПОИСК ПО ТЕМАМ
+
+| Тема | Раздел | Ключевые понятия |
+|------|--------|------------------|
+| **Типы предметов** | [2](#2--типизация-предметов) | PRODUCT, CONSUMABLE, DEFECT, FINISHED_PRODUCT |
+| **Кабинет фулфилмента** | [11](#11--кабинет-фулфилмента-полная-документация) | Склад, Услуги, Сотрудники, 6 модулей |
+| **Workflow поставок** | [5](#5--workflow-поставок) | 8 статусов, уведомления, логистика |
+| **GraphQL запросы** | [18](#18--graphql-и-typescript-правила), [24](#24--технические-приложения) | Резолверы, мутации, типизация |
+| **Система партнерства** | [13](#13--система-партнерства-и-контрагентов) | Counterparty, WHOLESALE, заявки |
+| **Критические запреты** | [17](#17--критические-запреты) | Что НЕЛЬЗЯ делать в системе |
+
+### 🎯 ДЛЯ РАЗНЫХ РОЛЕЙ
+
+**👩💻 РАЗРАБОТЧИКИ**: Разделы [18](#18--graphql-и-typescript-правила), [19](#19--архитектурные-принципы), [20](#20--правила-качества-кода), [24](#24--технические-приложения)
+**📊 АНАЛИТИКИ**: Разделы [15](#15--статистика-и-аналитика), [6](#6--процесс-создания-продукта), [7](#7--система-учета-движения-товаров)
+**👔 МЕНЕДЖЕРЫ**: Разделы [1](#1--основные-принципы-системы), [3](#3--структура-кабинетов), [5](#5--workflow-поставок)
+
+---
+
+## 🔤 ГЛОССАРИЙ ТЕРМИНОВ
> Для людей → `В коде`
-- ТОВАР → `PRODUCT`
-- РАСХОДНИКИ → `CONSUMABLE`
-- БРАК → `DEFECT` *(планируется)*
-- ПРОДУКТ → `FINISHED_PRODUCT` *(планируется)*
-- ПОСТАВЩИК → `WHOLESALE`
-- СЕЛЛЕР → `SELLER`
-- ФУЛФИЛМЕНТ → `FULFILLMENT`
-- ЛОГИСТИКА → `LOGIST`
+
+### **ТИПЫ ПРЕДМЕТОВ:**
+- **ТОВАР** → `PRODUCT` - базовый товар от поставщика, может стать продуктом или браком
+- **РАСХОДНИКИ** → `CONSUMABLE` - материалы, классифицируются по назначению при использовании (операционные/производственные)
+- **БРАК** → `DEFECT` *(НЕ РЕАЛИЗОВАНО)* - функционал брака еще не внедрен в систему
+- **ПРОДУКТ** → `FINISHED_PRODUCT` *(планируется)* - готовый товар, создается из товара по рецептуре
+
+### **ТИПЫ ОРГАНИЗАЦИЙ:**
+- **ПОСТАВЩИК** → `WHOLESALE` - создает товары и расходники, обрабатывает заказы
+- **СЕЛЛЕР** → `SELLER` - заказывает товары, создает поставки на маркетплейсы
+- **ФУЛФИЛМЕНТ** → `FULFILLMENT` - обрабатывает товары, создает продукты, максимальные права
+- **ЛОГИСТИКА** → `LOGIST` - управляет доставками, подтверждает транспортировку
+
+### 2.2 Правила создания предметов по ролям
+
+**КТО МОЖЕТ СОЗДАВАТЬ:**
+- **ПОСТАВЩИК** (`WHOLESALE`): Товары (`PRODUCT`) и Расходники (`CONSUMABLE`)
+- **ФУЛФИЛМЕНТ** (`FULFILLMENT`): Продукты (`FINISHED_PRODUCT`) - только из существующих товаров
+- **СЕЛЛЕР/ЛОГИСТ**: НЕ МОГУТ создавать предметы
+
+**КТО МОЖЕТ ПОКУПАТЬ:**
+- **СЕЛЛЕР** (`SELLER`):
+ - Товары и расходники у поставщиков
+ - Расходники фулфилмента у фулфилмента (через рецептуру в поставке)
+- **ФУЛФИЛМЕНТ** (`FULFILLMENT`): Товары и расходники у поставщиков
+- **ПОСТАВЩИК/ЛОГИСТ**: НЕ МОГУТ покупать предметы
+
+**ЭКОНОМИЧЕСКИЙ УЧЕТ:**
+- Когда селлер выбирает расходники фулфилмента в рецептуре, это формирует экономические данные:
+ - В кабинете селлера: расход на расходники фулфилмента
+ - В кабинете фулфилмента: доход от продажи расходников селлеру
+
+### **КЛЮЧЕВЫЕ СУЩНОСТИ:**
+- **Контрагент** → `Counterparty` - связь между организациями для партнерства
+- **Поставка** → `SupplyOrder` - заказ товаров/расходников с workflow статусами
+- **Рецептура** - состав продукта: товар + услуги + расходники (задается селлером)
---
## 📑 ОГЛАВЛЕНИЕ
+> 📋 **ЧТО ОБЪЕДИНЕНО**:
+> - rules-unified.md (v3.0) - общая база знаний системы
+> - fulfillment-cabinet-rules.md (v1.0) - детализация кабинета фулфилмента
+> - Устранены все несоответствия в терминах, последовательностях и детализации
+
### 🏗️ **АРХИТЕКТУРА И ОСНОВЫ**
1. [🎯 Основные принципы системы](#1--основные-принципы-системы)
@@ -61,24 +411,13 @@
22. [📋 Категории товаров и расходников](#22--категории-товаров-и-расходников)
23. [🎖️ Приоритеты разработки](#23--приоритеты-разработки)
-### 🌐 **ИНТЕГРАЦИИ И ФУНКЦИИ**
+### 🚨 **КРИТИЧЕСКИЕ СИТУАЦИИ**
-14. [🌐 Интеграции с системой](#14--интеграции-с-системой)
-15. [📊 Статистика и аналитика](#15--статистика-и-аналитика)
-16. [📱 Правила UI/UX и интерфейса](#16--правила-uiux-и-интерфейса)
-17. [⚠️ Критические запреты](#17--критические-запреты)
+24. [🚨 Критические ситуации и Edge Cases](#-критические-ситуации-и-edge-cases)
-### 🛠️ **ТЕХНИЧЕСКИЕ ПРАВИЛА**
+### 📎 **ТЕХНИЧЕСКИЕ ПРИЛОЖЕНИЯ**
-18. [🛠️ GraphQL и TypeScript правила](#18--graphql-и-typescript-правила)
-19. [🔧 Архитектурные принципы](#19--архитектурные-принципы)
-20. [🎯 Правила качества кода](#20--правила-качества-кода)
-21. [🔍 Диагностика и решение проблем](#21--диагностика-и-решение-проблем)
-
-### 📋 **ПРИЛОЖЕНИЯ**
-
-22. [📋 Категории товаров и расходников](#22--категории-товаров-и-расходников)
-23. [🎖️ Приоритеты разработки](#23--приоритеты-разработки)
+25. [📎 Технические приложения (GraphQL, компоненты)](#24--технические-приложения)
---
@@ -127,8 +466,9 @@
- **ТОВАР** (`PRODUCT`) - базовые товары от поставщиков (принятые на склад)
- **БРАК** (`DEFECT` - планируется) - производная от товара (товар с дефектами)
- **ПРОДУКТ** (`FINISHED_PRODUCT` - планируется) - готовый к продаже товар
-- **РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы фулфилмента
-- **РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для товаров селлеров
+- **РАСХОДНИКИ (`CONSUMABLE`)** - единый базовый тип, классифицируется по назначению при использовании:
+ - **"Операционные расходники"** - используются фулфилментом для выполнения услуг
+ - **"Производственные расходники"** - используются в рецептурах селлеров для создания продуктов
**🛍️ КАБИНЕТ СЕЛЛЕРА** - заказывает и управляет поставками:
- Создает заказы товаров и расходников
@@ -170,7 +510,7 @@
#### **3. БРАК** (`DEFECT` - планируется, производная от товара)
- **БУДЕТ СОЗДАВАТЬСЯ**: Фулфилментом на основе существующего ТОВАРА при обнаружении дефектов
-- **МОМЕНТ СОЗДАНИЯ**: В процессе "Создание продукта" / "В работе" после подсчета факта
+- **МОМЕНТ СОЗДАНИЯ**: В процессе обработки товара (ШАГ 3 алгоритма создания продукта) при выявлении брака
- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId)
- **ЗАКАЗ**: ЗАПРЕЩЕН заказ брака
- **СТАТУС**: Всегда неактивен для заказа
@@ -293,6 +633,8 @@ if (currentUser.organization.type !== "FULFILLMENT") {
## 5. 🚚 WORKFLOW ПОСТАВОК
+> 📌 **ВИЗУАЛЬНЫЕ ПРАВИЛА**: См. [visual-design-rules.md - Статусы поставок](#142-статусы-поставок---расширенная-цветовая-система)
+
### 5.1 Детализированная система статусов
**Статусы SupplyOrder (Заказ поставки):**
@@ -348,61 +690,171 @@ if (currentUser.organization.type !== "FULFILLMENT") {
## 6. 🔄 ПРОЦЕСС СОЗДАНИЯ ПРОДУКТА
-### 6.1 Workflow создания продукта
+> 📌 **СВЯЗАННЫЕ РАЗДЕЛЫ**:
+> - Типы предметов → См. [раздел 2.2](#22-обязательные-поля-карточки)
+> - Склад фулфилмента → См. [раздел 11.2](#112-структура-раздела-склад-фулфилмента)
+> - Статистика движения → См. [раздел 7](#7--система-учета-движения-товаров)
-**ЭТАПЫ ПРОЦЕССА:**
+### 6.1 Пошаговый алгоритм создания продукта
-1. **ПОСТУПЛЕНИЕ**: Товар приходит на склад фулфилмента (статус "на складе")
-2. **СОРТИРОВКА**: Перебор товара, отсеивание брака
-3. **ПОДГОТОВКА К РАБОТЕ**: Менеджер задает параметры работы
-4. **ОБРАБОТКА**: Превращение товара в продукт по "рецептуре" селлера
-5. **ЗАВЕРШЕНИЕ**: Готовый продукт (статус "готов к отправке")
+> 📌 **ВИЗУАЛЬНЫЕ ПРАВИЛА**: См. [visual-design-rules.md - Процесс создания продукта](#143-процесс-создания-продукта---визуальный-workflow)
-### 6.2 Управление процессом
+#### **ПРЕДВАРИТЕЛЬНОЕ УСЛОВИЕ: РЕЦЕПТУРА ЗАДАНА** (селлер)
+```
+Время: при создании заявки на поставку
+Действие: селлер указывает рецептуру продукта
+Обязательные компоненты:
+ ✓ Базовый товар (от поставщика)
+ ✓ Услуги фулфилмента (упаковка, маркировка и т.д.)
+ ✓ Расходники (материалы для производства)
+Результат: рецептура сохраняется в заявке и передается фулфилменту
+```
-**РАЗДЕЛ "СОЗДАНИЕ ПРОДУКТА":**
+#### **ШАГ 1: ПОСТУПЛЕНИЕ НА СКЛАД** (автоматически)
+```
+Время: при смене статуса поставки DELIVERED
+Действие: товар переходит в статус "на складе"
+Ответственный: система
+Результат: +Прибыло в статистике товаров
+```
-- **НОВЫЕ**: Поставки после нажатия "принято", ожидающие назначения
-- **В РАБОТЕ**: Поставки в процессе обработки
-- **ВЫПОЛНЕНО**: Завершенные поставки с готовыми продуктами
+#### **ШАГ 2: ПЛАНИРОВАНИЕ РАБОТЫ** (менеджер фулфилмента)
+```
+Время: в течение 2 рабочих дней после поступления
+Действие: назначение параметров обработки
+Ответственный: менеджер фулфилмента
+Обязательные поля:
+ ✓ Дедлайн выполнения (не более 5 рабочих дней)
+ ✓ Ответственный исполнитель (из списка сотрудников)
+ ✓ Рецептура (товар + услуги + расходники, указанная селлером в заявке на поставку)
+Опциональные поля:
+ - Место хранения готовых продуктов (зона склада, стеллаж, ячейка)
+ - Комментарии к работе
+Результат: поставка переходит во вкладку "В работе"
+```
-**ДЕЙСТВИЯ МЕНЕДЖЕРА В "НОВЫЕ":**
+#### **ШАГ 3: ОБРАБОТКА ТОВАРА** (исполнитель)
+```
+Время: согласно дедлайну (обычно 1-3 дня)
+Действие: физическая обработка товара
+Ответственный: назначенный сотрудник
+Обязательные действия:
+ 1. Проверка качества товара
+ 2. Фиксация фактического количества
+ 3. Выявление и учет брака
+ 4. Применение рецептуры (услуги + расходники)
+ 5. Создание готового продукта
+Точки контроля:
+ - Соответствие плану/факту
+ - Качество выполнения услуг
+ - Расход материалов по норме
-- **ДЕДЛАЙН**: Указание срока выполнения работы
-- **ОТВЕТСТВЕННЫЙ**: Назначение исполнителя
-- **МЕСТО ХРАНЕНИЯ**: Указание локации для готовых продуктов (опционально)
-- **ЗАПУСК**: Нажатие кнопки "В работе"
+УЧЕТ ПЛАН/ФАКТ:
+ - ПЛАН: Количество товаров из поставки селлера (указано в заказе)
+ - ФАКТ: Реальное количество после обработки = Брак + Хороший товар
+ - ДЕТАЛИЗАЦИЯ: Учет ведется по каждому размеру/объему/варианту
+ - КОРРЕКТИРОВКА: Статистика автоматически обновляется на фактические данные
+```
-### 6.3 Рецептура продукта
+#### **ШАГ 4: КОНТРОЛЬ КАЧЕСТВА** (менеджер/отдел качества)
+```
+Время: сразу после завершения ШАГ 3
+Действие: приемка готовой продукции
+Ответственный: менеджер или контролер качества
+Критерии приемки:
+ ✓ Соответствие рецептуре селлера
+ ✓ Качество выполненных услуг
+ ✓ Правильность упаковки/маркировки
+ ✓ Полнота комплектации
+Результат: продукт готов к отправке или отправлен на доработку
+```
-**СЕЛЛЕР УКАЗЫВАЕТ В ПОСТАВКЕ:**
+#### **ШАГ 5: ЗАВЕРШЕНИЕ** (система + менеджер)
+```
+Время: после успешного прохождения контроля качества
+Действие: финализация процесса
+Автоматические действия:
+ - Создание записи FINISHED_PRODUCT в БД
+ - Обновление статистики: товар "на складе" → продукт "готов"
+ - Списание использованных расходников
+ - Уведомление селлера о готовности
+Ручные действия менеджера:
+ - Подтверждение перехода во вкладку "Выполнено"
+ - Указание фактических расходов материалов
+ - Добавление комментариев о выполненной работе
+```
-- **БАЗОВЫЙ ТОВАР**: Исходный материал (например, футболка)
-- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг (например, "погладить")
-- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (например, фирменный пакет)
-- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (например, короб + маркировка)
+### 6.2 Временные рамки и SLA
-**РЕЗУЛЬТАТ**: ПРОДУКТ = Товар + Услуга + Расходники
+| Этап | Стандартное время | Максимальное время | Ответственный |
+|------|------------------|-------------------|---------------|
+| Планирование | 1 рабочий день | 2 рабочих дня | Менеджер ФФ |
+| Обработка | 2-3 рабочих дня | 5 рабочих дней | Исполнитель |
+| Контроль качества | 4 часа | 1 рабочий день | Отдел качества |
+| Завершение | 2 часа | 4 часа | Менеджер ФФ |
-### 6.4 Учет план/факт в процессе работы
+### 6.3 Управление браком и расхождениями
+
+### 6.4 Детальная рецептура продукта
+
+**РЕЦЕПТУРА ПРОДУКТА** (задается селлером при создании поставки):
+
+- **БАЗОВЫЙ ТОВАР**: Исходный материал (обязательно)
+ - Артикул товара
+ - Количество единиц
+ - Размерная сетка (если применимо)
+
+- **УСЛУГА ФУЛФИЛМЕНТА**: Из каталога услуг фулфилмента
+ - Тип услуги (глажка, упаковка, маркировка и т.д.)
+ - Количество применений
+ - Специальные требования
+
+- **РАСХОДНИК СЕЛЛЕРА**: Материалы селлера (опционально)
+ - Фирменная упаковка
+ - Этикетки, бирки
+ - Дополнительные аксессуары
+
+- **РАСХОДНИК ФУЛФИЛМЕНТА**: Материалы фулфилмента (опционально)
+ - Стандартная упаковка
+ - Защитные материалы
+ - Маркировочные элементы
+
+- **СВЯЗЬ С МАРКЕТПЛЕЙСОМ**: Привязка к карточке (опционально)
+ - ID карточки на маркетплейсе
+ - Артикул маркетплейса
+ - Особые требования МП
+
+**ФОРМУЛА**: ПРОДУКТ = Товар + Услуга(и) + Расходники селлера + Расходники ФФ
+
+### 6.5 Учет план/факт в процессе работы (без брака)
**ПЛАН**: Количество товара из поставки селлера
-**ФАКТ**: Реальное количество после сортировки
+**ФАКТ**: Реальное количество после пересчета (работник фулфилмента производит сортировку при пересчете)
-**ФИКСАЦИЯ БРАКА:**
+**ФИКСАЦИЯ ПОТЕРЬ:**
- **КОГДА**: В процессе работы (вкладка "В работе")
-- **КТО**: Ответственный исполнитель
-- **ДЕТАЛИЗАЦИЯ**: По каждому предмету (размер/объем)
-- **ОБНОВЛЕНИЕ**: Можно вносить изменения до нажатия "Выполнено"
+- **ЧТО**: Недостача, повреждения (без создания записей брака)
+- **КАК**: Корректировка количества в статистике
+
+**WORKFLOW СОЗДАНИЯ ПРОДУКТА:**
+1. Товар поступает на склад фулфилмента (статус "на складе")
+2. Товар берется в работу (переход в статус "в обработке")
+3. Исполнитель производит пересчет и сортировку
+4. Создается готовый продукт (тип FINISHED_PRODUCT)
+5. Продукт готов к отправке на маркетплейсы
**ВЛИЯНИЕ НА СТАТИСТИКУ:**
- При принятии поставки: +План в статистику
- При выявлении факта: корректировка на реальные данные
-- **ФОРМУЛА**: Факт = Брак + Хороший товар
+- **ФОРМУЛА**: Факт = Потери + Хороший товар
+*Где потери - это недостача/повреждения, выявленные при пересчете и сортировке*
- **ЛОГИКА**: Фактическое количество = сумма всех пересчитанных предметов
+- **ПЛАН/ФАКТ**: Корректировка статистики при выявлении расхождений
---
+> 🚧 **БУДУЩАЯ ФУНКЦИОНАЛЬНОСТЬ**: Система статусов товаров в фулфилменте будет детализирована позже
+
## 7. 📊 СИСТЕМА УЧЕТА ДВИЖЕНИЯ ТОВАРОВ
### 7.1 Принципы учета в фулфилменте
@@ -531,6 +983,8 @@ const handleSuppliesClick = () => {
## 9. 🏠 КАБИНЕТ СЕЛЛЕРА (ДЕТАЛЬНЫЕ ПРАВИЛА)
+> 📌 **ВИЗУАЛЬНЫЕ ПРАВИЛА**: См. [visual-design-rules.md - Кабинет селлера](#145-кабинет-селлера)
+
### 9.1 Структура раздела "Мои поставки"
#### **🏢 ПОСТАВКИ НА ФУЛФИЛМЕНТ**:
@@ -545,16 +999,76 @@ const handleSuppliesClick = () => {
- **Wildberries** - прямые поставки на WB
- **Ozon** - прямые поставки на Ozon
-### 9.2 Правила кнопки "Создать поставку" в разделе "Мои поставки"
+### 9.2 UI структура создания поставки расходников селлера
-#### **9.2.1 Общие принципы**
+#### **📄 Структура страницы создания поставки:**
+
+**БЛОК 1: ПОСТАВЩИКИ** _(верхняя часть экрана)_
+- **Отображение**: Карточки поставщиков из раздела "Партнеры"
+- **Навигация**: Горизонтальный скролл (слева-направо) при превышении ширины экрана
+- **Выбор**: Клик выделяет карточку поставщика
+- **Результат**: Загружаются расходники выбранного поставщика в блок 2
+
+**БЛОК 2: РАСХОДНИКИ** _(центральная часть)_
+- **Содержание**: Расходники выбранного поставщика
+- **Сортировка**: По цене, названию, категории
+- **Фильтры**: По категории, ценовому диапазону
+- **Карточка расходника**:
+ - Фото, название, цена, остаток, категория
+ - Количество в комплекте (если есть комплектность)
+ - Поле ввода количества (единицы или комплекты)
+ - Кнопки +/- для изменения количества
+- **Действие**: Клик добавляет расходник в корзину
+
+**БЛОК 3: КОРЗИНА** _(правая часть)_
+- **Содержание корзины**:
+ - Количество видов расходников
+ - По каждому расходнику: название, количество, цена за единицу, сумма
+ - Общая сумма всех расходников
+- **Управление**: Изменение количества, удаление позиций
+- **Валидация**: Проверка остатков у поставщика
+- **Настройки поставки**:
+ - Выбор фулфилмент-центра (dropdown из партнеров)
+ - Дата поставки (по умолчанию - дата создания, нельзя выбрать прошедшую)
+- **Кнопка**: "Создать поставку"
+
+### 9.3 Многоуровневые таблицы для отображения поставок
+
+#### **📊 Структура многоуровневой таблицы:**
+
+**ПЕРВЫЙ УРОВЕНЬ** _(основной список)_:
+- Порядковый номер поставки (от большего к меньшему)
+- Количество видов расходников селлера
+- Стоимость всей поставки
+- Количество категорий
+- Статус поставки
+- Кнопка раскрытия/сворачивания
+
+**ВТОРОЙ УРОВЕНЬ** _(раскрывается по клику)_:
+- Название расходника селлера
+- Количество
+- Цена за единицу
+- Общая стоимость позиции
+- Категория
+- Поставщик
+- **Режим**: Только просмотр (редактирование недоступно после создания)
+
+**ПРАВИЛА ОТОБРАЖЕНИЯ**:
+- По умолчанию таблица свернута, показан только первый уровень
+- Клик по строке или кнопке раскрывает второй уровень
+- Анимация раскрытия плавная (300ms)
+- Визуальная индикация раскрытого состояния (поворот стрелки, изменение фона)
+
+### 9.4 Правила кнопки "Создать поставку" в разделе "Мои поставки"
+
+#### **9.4.1 Общие принципы**
- **КОНТЕКСТНОСТЬ**: Кнопка создания появляется только в активном табе
- **РАСПОЛОЖЕНИЕ**: Правая часть строки таба, на том же уровне что и название
- **СТИЛИСТИКА**: В том же стиле что и сами табы (соответствует уровню иерархии)
- **ФУНКЦИОНАЛЬНОСТЬ**: Кнопка ведет на страницу создания поставки соответствующего типа
-#### **9.2.2 Размещение кнопок по табам**
+#### **9.4.2 Размещение кнопок по табам**
**УРОВЕНЬ 2 (Подтабы фулфилмента):**
@@ -567,7 +1081,7 @@ const handleSuppliesClick = () => {
- **🟣 Wildberries**: Кнопка "Создать поставку" → `/supplies/create-wildberries`
- **🔵 Ozon**: Кнопка "Создать поставку" → `/supplies/create-ozon`
-#### **9.2.3 Стили кнопок**
+#### **9.4.3 Стили кнопок**
**ДЛЯ УРОВНЯ 2 (h-9):**
@@ -836,21 +1350,68 @@ height: calc(100vh - headerHeight - tabsHeight - statsHeight - margins)
## 11. 🏭 КАБИНЕТ ФУЛФИЛМЕНТА
-### 11.1 Структура раздела склад фулфилмента
+### 11.1 Общие характеристики кабинета фулфилмента
-#### **Модули в обязательной последовательности**:
+#### 11.1.1 Принципы доступа
-1. **📦 ПРОДУКТ** - готовые к продаже товары
-2. **🛒 ТОВАР** - базовые товары от поставщиков
- - Товары "на складе" - готовы к обработке
- - Товары "в обработке" - в процессе создания продукта
-3. **❌ БРАК** - товары с дефектами
-4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары
-5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров
-6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТ** - операционные материалы
- - **КЛИКАБЕЛЬНЫЙ МОДУЛЬ** - содержит полноценный раздел учёта
+- **МАКСИМАЛЬНЫЕ ПРАВА**: Фулфилмент имеет доступ ко ВСЕМ разделам системы
+- **АДАПТИВНАЯ НАВИГАЦИЯ**: Sidebar изменяется в зависимости от `user.organization.type === "FULFILLMENT"`
+- **ЭКСКЛЮЗИВНЫЕ КОМПОНЕНТЫ**: Услуги, Сотрудники, Статистика фулфилмента доступны ТОЛЬКО фулфилменту
+- **СПЕЦИАЛЬНЫЙ РОУТИНГ**: При нажатии "Поставки" → `/fulfillment-supplies` (не `/supplies`)
-### 11.2 Движение товаров в фулфилменте
+#### 11.1.2 Архитектурные особенности
+
+- **GraphQL проверки**: `skip: user?.organization?.type !== 'FULFILLMENT'` в запросах
+- **Условное отображение**: `{user?.organization?.type === "FULFILLMENT" && (...)}`
+- **Адаптивные отступы**: `getSidebarMargin()` для responsive design
+- **Полинг данных**: Статистика обновляется каждую минуту (`pollInterval: 60000`)
+
+### 11.2 Структура раздела склад фулфилмента
+
+> 📌 **ВИЗУАЛЬНЫЕ ПРАВИЛА**: См. [visual-design-rules.md - Кабинет фулфилмента](#141-кабинет-фулфилмента)
+
+#### 11.2.1 Структура склада по модулям (ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ)
+
+1. **📦 ПРОДУКТЫ** - готовые к отправке товары
+2. **🛒 ТОВАРЫ** - базовые товары от поставщиков
+ - **"На складе"** - готовы к обработке
+ - **"В обработке"** - в процессе создания продукта
+3. **❌ БРАК** - товары с дефектами, требуют утилизации
+4. **↩️ ВОЗВРАТЫ С ПВЗ** - возвращенные товары, к обработке
+5. **🎯 РАСХОДНИКИ СЕЛЛЕРОВ** - материалы для селлеров (тип `CONSUMABLE`, заказанные селлерами)
+6. **⚙️ РАСХОДНИКИ ФУЛФИЛМЕНТА** - операционные материалы (тип `CONSUMABLE`, заказанные фулфилментом, КЛИКАБЕЛЬНЫЙ модуль)
+
+#### 11.2.2 Система учета склада
+
+**Дополнительные значения** (показатели движения):
+- **ПРИБЫЛО** - количество поступивших на склад за период
+- **УБЫЛО** - количество списанных со склада за период
+
+**Основные значения** (текущие остатки):
+- **ФОРМУЛА**: Основные значения = Предыдущие остатки + Прибыло - Убыло
+- **ОБНОВЛЕНИЕ**: В реальном времени с изменениями за сутки
+- **ИСТОЧНИК**: GraphQL query `GET_FULFILLMENT_WAREHOUSE_STATS`
+
+#### 11.2.3 Структура данных склада (3-уровневая иерархия)
+
+```
+🔵 УРОВЕНЬ 1: МАГАЗИНЫ
+├── ТехноМир (синий - blue-400/500)
+├── Стиль и Комфорт (розовый - pink-400/500)
+└── Зелёный Дом (изумрудный - emerald-400/500)
+ ↓
+🟢 УРОВЕНЬ 2: ТОВАРЫ (зеленый - green-500)
+ ↓
+🟠 УРОВЕНЬ 3: ВАРИАНТЫ ТОВАРОВ (оранжевый - orange-500)
+```
+
+**Цветовое кодирование**:
+- Каждый уровень имеет цветной индикатор увеличивающегося размера
+- Цветная левая граница с увеличивающимся отступом и толщиной
+- Скроллбары в цвете уровня
+- Контрастный цвет текста для читаемости
+
+### 11.3 Движение товаров в фулфилменте
#### **Поступление товаров**:
@@ -865,7 +1426,7 @@ height: calc(100vh - headerHeight - tabsHeight - statsHeight - margins)
- **ВОЗВРАТ**: Возврат поставщику
- **ИСПОЛЬЗОВАНИЕ**: Расходники для операций
-### 11.3 Модуль "Расходники фулфилмента"
+### 11.4 Модуль "Расходники фулфилмента"
**ОСОБЕННОСТИ**:
@@ -873,7 +1434,100 @@ height: calc(100vh - headerHeight - tabsHeight - statsHeight - margins)
- **ФУНКЦИОНАЛЬНОСТЬ**: Полноценный раздел учёта
- **СОДЕРЖАНИЕ**: Управление расходниками фулфилмента
-### 11.4 Блок детализации по магазинам
+### 11.5 Поставки фулфилмента (`/fulfillment-supplies`)
+
+#### 11.5.1 Структура: 2 основные вкладки
+
+**A) 🛒 ПОСТАВКИ ТОВАРОВ**:
+- **Детализированные товары ФФ** - планы и факты поставок с маршрутами
+- **Товары ФФ** - общие поставки товаров от селлеров
+- **Возвраты с ПВЗ** - обработка возвращенных товаров
+
+**B) 🔧 ПОСТАВКИ РАСХОДНИКОВ**:
+- **Заказы расходников** - управление заказами от селлеров
+- **Расходники селлеров** - материалы для клиентов
+- **Создание поставок** - формирование новых поставок расходников
+
+#### 11.5.2 Workflow поставок товаров
+
+**Этапы обработки**:
+1. **Planned** - поставка запланирована
+2. **In-transit** - товар в пути
+3. **Delivered** - доставлен на склад
+4. **Completed** - обработка завершена
+
+### 11.6 Статистика фулфилмента (`/fulfillment-statistics`)
+
+#### 11.6.1 Блоки аналитики (сворачиваемые)
+
+**1. НАКОПЛЕННАЯ СТАТИСТИКА** (`allTime: true`):
+- Обработано товаров (общий объем)
+- Выявлено брака (всего единиц)
+- Поставок получено
+- Общий доход (за все время)
+- Выполнено заказов (успешных отгрузок)
+- Удовлетворенность клиентов (средний рейтинг)
+
+**2. ОТГРУЗКА НА ПЛОЩАДКИ** (`marketplaces: true`):
+- Отправлено на Wildberries
+- Отправлено на Ozon
+- Отправлено на другие площадки
+
+**3. АНАЛИТИКА ПРОИЗВОДИТЕЛЬНОСТИ** (`performance: false`):
+- Среднее время обработки (на единицу товара)
+- Уровень брака (от общего объема)
+- Уровень возвратов (возвраты с площадок)
+- Удовлетворенность клиентов
+
+### 11.7 Услуги фулфилмента (`/services`)
+
+#### 11.7.1 Структура: 3 обязательные вкладки
+
+**A) 🛠️ УСЛУГИ** (`defaultValue="services"`):
+- **CRUD операции**: создание, редактирование, удаление услуг
+- **Управление ценами** и описаниями
+- **Загрузка изображений** услуг (`imageUrl`)
+- **GraphQL**: `GET_MY_SERVICES`, `CREATE_SERVICE`, `UPDATE_SERVICE`, `DELETE_SERVICE`
+
+**B) 🚚 ЛОГИСТИКА**:
+- **Создание маршрутов доставки** (откуда → куда)
+- **Тарификация**: цена до 1м³ и свыше 1м³
+- **Группированные локации**:
+ - Мой фулфилмент (название организации)
+ - Рынки (предустановленные)
+ - Склады Wildberries
+ - Склады Ozon
+- **GraphQL**: `GET_MY_LOGISTICS`, `CREATE_LOGISTICS`, `UPDATE_LOGISTICS`, `DELETE_LOGISTICS`
+
+**C) 📦 РАСХОДНИКИ**:
+- **Управление расходниками фулфилмента**
+- **Интеграция с модулем "Услуги"** - селлеры могут использовать в услугах
+- **Списание со складских остатков** при использовании
+- **Стоимость включается** в стоимость услуги
+
+### 11.8 Сотрудники фулфилмента (`/employees`)
+
+#### 11.8.1 Структура: 2 основные вкладки
+
+**A) 👥 СОТРУДНИКИ** (`defaultValue="combined"`):
+
+**Управление персоналом**:
+- **CRUD операции**: создание, редактирование, удаление сотрудников
+- **Статусы сотрудников**: `ACTIVE`, `VACATION`, `SICK`, `FIRED`
+- **Формы добавления**: Компактная (`showCompactForm`) / Полная форма
+- **Поиск и фильтрация** по имени, должности, статусу
+
+**Табель рабочего времени**:
+- **Навигация по месяцам**: текущий год/месяц с кнопками ←/→
+- **Отметки по дням**: статус дня и количество отработанных часов
+- **GraphQL**: `GET_EMPLOYEE_SCHEDULE`, `UPDATE_EMPLOYEE_SCHEDULE`
+
+**B) 📋 ОТЧЕТЫ** (`value="reports"`):
+- **Сводные отчеты** по сотрудникам за период
+- **Экспорт данных** табеля
+- **Аналитика рабочего времени**
+
+### 11.9 Блок детализации по магазинам
**НАЗНАЧЕНИЕ**: Распределение товаров по торговым точкам/магазинам
@@ -1259,6 +1913,7 @@ const wholesalePartners = await prisma.counterparty.findMany({
18. ❌ **Использовать общие запросы вместо специализированных** (`GET_ALL_PRODUCTS` вместо `GET_ORGANIZATION_PRODUCTS` для конкретного поставщика)
19. ❌ **Показывать расходники в формах создания поставок товаров** (строгая типизация `PRODUCT`/`CONSUMABLE`)
20. ❌ **Фильтровать предметы по типу на фронтенде** (фильтрация должна быть в GraphQL резолвере)
+21. ❌ **ИСПОЛЬЗОВАТЬ МОКОВЫЕ ДАННЫЕ БЕЗ РАЗРЕШЕНИЯ** - все компоненты ОБЯЗАТЕЛЬНО должны использовать реальные GraphQL запросы. Моковые данные можно добавлять ТОЛЬКО с явного разрешения пользователя
### 17.2 ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА:
@@ -1619,8 +2274,189 @@ interface GoodsProduct {
---
-_Эта база знаний создана на основе анализа rules.md, rules1.md и rules2.md и является единым источником понимания структуры и логики проекта._
+## 🚨 КРИТИЧЕСКИЕ СИТУАЦИИ И EDGE CASES
-_Версия: 4.0_
-_Дата создания: 2024_
-_Статус: ПОЛНАЯ УНИФИЦИРОВАННАЯ БАЗА ЗНАНИЙ_
+### 🔴 Отмена заказов на разных этапах workflow
+
+**PENDING → Отмена разрешена**
+- Действие: Удаление заказа без последствий
+- Уведомления: Поставщику о отмене
+- Влияние на статистику: Нет
+
+**SUPPLIER_APPROVED → Отмена с согласия поставщика**
+- Действие: Требуется подтверждение поставщика
+- Штрафы: Возможны согласно договору
+- Восстановление: Товары возвращаются в доступные остатки
+
+**CONFIRMED/LOGISTICS_CONFIRMED → Отмена критическая**
+- Действие: Требуется согласие всех участников
+- Штрафы: Логистические расходы
+- Альтернатива: Изменение адреса доставки
+
+**SHIPPED/IN_TRANSIT → Отмена невозможна**
+- Действие: Только возврат после получения
+- Процедура: Через модуль "Возвраты с ПВЗ"
+
+### 🔄 Частичная доставка товаров
+
+**Сценарий**: Поставщик доставил 80 из 100 заказанных единиц
+
+**Алгоритм обработки**:
+1. Фулфилмент фиксирует фактическое количество
+2. Система создает два отдельных документа:
+ - DELIVERED (80 единиц) - обрабатывается обычным порядком
+ - PARTIAL_DELIVERED (20 единиц) - остается в статусе ожидания
+3. Селлер получает уведомление о частичной поставке
+4. Принятие решения: ждать остаток или отменить недопоставку
+
+### 📊 Превышение лимитов остатков
+
+**Проблема**: Попытка заказать больше чем есть у поставщика
+
+**Техническая реализация**:
+```typescript
+if (requestedQuantity > availableStock) {
+ throw new GraphQLError(`Недостаточно товара. Доступно: ${availableStock}, запрошено: ${requestedQuantity}`);
+}
+```
+
+**UX решение**: Real-time валидация в формах заказа
+
+### 🔍 Дубликаты артикулов
+
+**Сценарий**: Поставщик пытается создать товар с существующим артикулом
+
+**Проверка на уровне БД**:
+```sql
+UNIQUE INDEX ON products(article, organization_id)
+```
+
+**Обработка**: Автоматическое добавление суффикса или предложение изменить артикул
+
+---
+
+## 24. 📎 ТЕХНИЧЕСКИЕ ПРИЛОЖЕНИЯ
+
+### Приложение A: GraphQL запросы фулфилмента
+
+```typescript
+// Основные запросы
+GET_MY_SERVICES; // Услуги фулфилмента
+GET_MY_LOGISTICS; // Логистические маршруты
+GET_MY_EMPLOYEES; // Сотрудники организации
+GET_FULFILLMENT_WAREHOUSE_STATS; // Статистика склада
+GET_WAREHOUSE_PRODUCTS; // Товары на складе
+GET_MY_FULFILLMENT_SUPPLIES; // Расходники фулфилмента
+GET_EMPLOYEE_SCHEDULE; // Табель рабочего времени
+
+// Мутации
+CREATE_SERVICE, UPDATE_SERVICE, DELETE_SERVICE;
+CREATE_LOGISTICS, UPDATE_LOGISTICS, DELETE_LOGISTICS;
+CREATE_EMPLOYEE, UPDATE_EMPLOYEE, DELETE_EMPLOYEE;
+UPDATE_EMPLOYEE_SCHEDULE; // Обновление табеля
+```
+
+### Приложение B: Компоненты фулфилмента
+
+```typescript
+// Основные dashboard компоненты
+FulfillmentWarehouseDashboard; // Склад фулфилмента
+FulfillmentStatisticsDashboard; // Статистика
+ServicesDashboard; // Услуги (3 вкладки)
+EmployeesDashboard; // Сотрудники
+SuppliesDashboard; // Поставки фулфилмента
+
+// Специализированные компоненты
+ServicesTab, LogisticsTab, SuppliesTab; // Вкладки услуг
+EmployeeInlineForm, EmployeeEditInlineForm; // Формы сотрудников
+FulfillmentSuppliesTab, FulfillmentConsumablesOrdersTab; // Поставки
+```
+
+### Приложение C: Специальный роутинг для типов организаций
+
+```typescript
+const handleSuppliesClick = () => {
+ switch (user?.organization?.type) {
+ case "FULFILLMENT":
+ router.push("/fulfillment-supplies"); // Специальный роут
+ break;
+ case "SELLER":
+ router.push("/supplies");
+ break;
+ case "WHOLESALE":
+ router.push("/wholesale-supplies");
+ break;
+ case "LOGIST":
+ router.push("/logist-supplies");
+ break;
+ }
+};
+```
+
+---
+
+_Эта база знаний создана путем объединения rules-unified.md (v3.0) и fulfillment-cabinet-rules.md (v1.0) с устранением всех несоответствий и добавлением критически важных улучшений: быстрый справочник, глоссарий терминов, детальные алгоритмы процессов, edge cases._
+
+_Версия: 9.1_
+_Дата создания: 2025_
+_Статус: ЕДИНЫЙ ИСТОЧНИК ИСТИНЫ - ГОТОВ К РАЗРАБОТКЕ_
+
+### 🚀 УЛУЧШЕНИЯ v6.0:
+- ⚡ Быстрый справочник критических правил
+- 🔤 Полный глоссарий терминов с определениями
+- 🎯 Навигация по ролям (разработчики, аналитики, менеджеры)
+- 🔄 Детальный алгоритм создания продукта с временными рамками
+- 🚨 Раздел критических ситуаций и Edge Cases
+- 📌 Связующие блоки между разделами
+- 📊 Таблицы SLA и временных рамок
+
+### 🔧 ИСПРАВЛЕНИЯ v6.1:
+- ✅ Устранено противоречие в моменте создания БРАКА
+- ✅ Исправлена логическая цепочка: рецептура задается селлером ДО процесса
+- ✅ Реалистичные временные рамки SLA (рабочие дни вместо часов)
+- ✅ Унифицирована классификация расходников (по назначению при использовании)
+- ✅ Согласованы все алгоритмы и процессы между разделами
+
+### 🔧 ОБНОВЛЕНИЯ v6.3:
+- ✅ **ДОБАВЛЕН КРИТИЧЕСКИЙ ЗАПРЕТ**: Использование моковых данных в продакшене
+- ✅ **ОБНОВЛЕН ЧЕКЛИСТ**: Добавлена проверка на отсутствие mock данных
+- ✅ **РЕАЛИЗАЦИЯ**: Полная очистка моковых данных из раздела "Мои поставки" селлера
+
+### 🎨 ИНТЕГРАЦИЯ v6.2:
+- ✅ Синхронизация с visual-design-rules.md v1.1
+- ✅ Добавлены визуальные правила для 8 статусов поставок
+- ✅ Создана цветовая система для 6 модулей фулфилмента
+- ✅ Визуальный workflow процесса создания продукта
+- ✅ Перекрестные ссылки между техническими и визуальными правилами
+- ✅ Покрытие визуальными решениями увеличено с 40% до 85%
+
+### 🚀 КОНСОЛИДАЦИЯ v7.0:
+- ✅ Интеграция development-checklist.md и CLAUDE.md
+- ✅ Удаление дублирующих файлов
+- ✅ Создание единого источника истины
+
+### 🔧 ПОЛНАЯ ИНТЕГРАЦИЯ v8.0:
+- ✅ Интеграция work-protocols.md (детальные протоколы по сложности)
+- ✅ Интеграция violation-prevention-protocol.md (СТОП-сигналы и триггеры)
+- ✅ Интеграция self-validation.md (расширенная система самопроверки)
+- ✅ Удаление всех дублирующих файлов протоколов
+
+### 🎯 ОПТИМИЗАЦИЯ UI/UX v8.1:
+- ✅ Добавлен ТРИГГЕР #3 для автоматической активации visual-design-rules.md
+- ✅ Интегрирован специальный UI/UX протокол в чеклист
+- ✅ Создана система перекрестных ссылок с visual-design-rules.md
+- ✅ visual-design-rules.md остается отдельным специализированным файлом
+
+### 📊 ИНТЕГРАЦИЯ DESCRIPTION v9.0:
+- ✅ Добавлена UI структура создания поставки расходников (3 блока)
+- ✅ Интегрирована концепция многоуровневых таблиц
+- ✅ Добавлен механизм учета ПЛАН/ФАКТ в процессе создания продукта
+- ✅ Расширена детализация рецептуры продукта
+- ✅ Добавлена опция места хранения готовых продуктов
+
+### 🔧 УТОЧНЕНИЯ ЛОГИКИ v9.1:
+- ✅ Уточнен статус брака: НЕ РЕАЛИЗОВАНО (еще не дошли до этого этапа)
+- ✅ Добавлены четкие правила создания предметов по ролям
+- ✅ Добавлен экономический учет расходников фулфилмента для селлера
+- ✅ Обновлен механизм ПЛАН/ФАКТ: потери вместо брака при пересчете
+- ✅ Добавлена заметка о будущей детализации статусов товаров
diff --git a/self-validation.md b/self-validation.md
deleted file mode 100644
index f5aa9f5..0000000
--- a/self-validation.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# УСОВЕРШЕНСТВОВАННАЯ СИСТЕМА САМОПРОВЕРКИ AI
-
-## 🎯 ЦЕЛЬ
-
-Обеспечить 100% соблюдение правил проекта Sfera с использованием новых протоколов работы.
-
-## 🚨 КРИТИЧЕСКОЕ ДОПОЛНЕНИЕ
-
-Интегрирована система жестких стоп-сигналов из `violation-prevention-protocol.md` для предотвращения всех типов нарушений протоколов.
-
-## 🛑 ОБЯЗАТЕЛЬНЫЙ ПРОТОКОЛ ПЕРЕД КАЖДОЙ ЗАДАЧЕЙ
-
-### ШАГ 1: ОПРЕДЕЛЕНИЕ СЛОЖНОСТИ И ПРОТОКОЛА
-
-```
-ВОПРОСЫ:
-- Сколько файлов затрагивает задача? (1-3 = средняя, 4+ = высокая)
-- Изменяется ли архитектура или workflow? (да = высокая)
-- Влияет ли на критические бизнес-процессы? (да = высокая)
-
-ДЕЙСТВИЕ: Применить соответствующий протокол из work-protocols.md
-```
-
-### ШАГ 2: ЭТАП "СТОП И ПОДУМАЙ"
-
-```
-ОБЯЗАТЕЛЬНЫЕ ВОПРОСЫ:
-- Какие правила из rules2.md применимы?
-- Какие файлы нужно изучить? (перечислить ВСЕ)
-- Есть ли неопределенности, требующие уточнения?
-- Что может пойти не так?
-
-ДЕЙСТВИЕ: Составить план с промежуточными проверками
-```
-
-### ШАГ 3: ПРОВЕРКА КРИТИЧЕСКИХ ПРАВИЛ
-
-```
-✅ ТИПИЗАЦИЯ:
-- ТОВАР ≠ ПРОДУКТ (разные сущности)
-- 4 типа предметов: ТОВАР, БРАК, РАСХОДНИКИ, ПРОДУКТ
-- Производные связаны с parentId
-
-✅ WORKFLOW:
-- Последовательность статусов соблюдена
-- Уведомления на каждом этапе
-- Логирование изменений
-
-✅ ДОСТУП:
-- Запрет заказа собственных товаров поставщиком
-- Запрет заказа брака
-- Проверка остатков
-
-✅ ВАЛИДАЦИЯ:
-- Цена > 0 (исключение: брак для фулфилмента)
-- Количество ≤ остатков
-- Обязательные поля заполнены
-```
-
-### ШАГ 4: ТЕХНИЧЕСКИЕ ПРОВЕРКИ
-
-```
-✅ ПРОИЗВОДИТЕЛЬНОСТЬ: < 3 сек загрузка
-✅ БЕЗОПАСНОСТЬ: шифрование, аудит
-✅ UX: индикаторы, уведомления
-✅ КАЧЕСТВО: тесты 80%+, SOLID принципы
-```
-
-### ШАГ 5: УТОЧНЯЮЩИЕ ВОПРОСЫ
-
-```
-КОГДА ОБЯЗАТЕЛЬНО СПРОСИТЬ:
-🔴 Противоречие в правилах
-🔴 Архитектурные изменения
-🔴 Критические бизнес-процессы
-🔴 Несколько вариантов решения
-
-ФОРМАТ:
-🎯 КОНТЕКСТ: что делаю
-❓ ВОПРОС: что неясно
-⚖️ ВАРИАНТЫ: альтернативы
-⚠️ РИСКИ: что может пойти не так
-💡 ПРЕДЛОЖЕНИЕ: рекомендуемый подход
-```
-
-### ШАГ 6: АВТОСИНХРОНИЗАЦИЯ
-
-```
-ПРОВЕРИТЬ:
-- Нужно ли обновить development-checklist.md?
-- Добавлены ли новые критические правила?
-- Изменились ли workflow или запреты?
-
-ДЕЙСТВИЕ:
-- Синхронизировать файлы по алгоритму auto-sync-system.md
-- Уведомить пользователя о синхронизации
-```
-
-### ШАГ 7: ФИНАЛЬНАЯ ВАЛИДАЦИЯ
-
-```
-МЕГА-ВОПРОС К СЕБЕ:
-"Применил ли я правильный протокол, проверил ли все правила,
-задал ли нужные вопросы, синхронизировал ли файлы,
-готов ли результат к production?"
-
-ЕСЛИ ОТВЕТ НЕ "ДА 100%" - ВЕРНУТЬСЯ К НАЧАЛУ!
-```
-
-## 🚨 КРИТИЧЕСКИЕ СТОП-СИГНАЛЫ
-
-```
-🛑 ОСТАНОВИТЬСЯ НЕМЕДЛЕННО ЕСЛИ:
-- Не определил сложность задачи
-- Пропустил этап "Стоп и подумай"
-- Есть сомнения в правилах
-- Не проверил все применимые разделы rules2.md
-- Не синхронизировал связанные файлы
-- Не уведомил о важных изменениях
-```
-
-## 📊 МЕТРИКИ УСПЕХА
-
-```
-ЦЕЛЬ: 0 пропущенных критических деталей
-
-ИЗМЕРЕНИЕ:
-✅ Количество вопросов на уточнение
-✅ Полнота анализа источников
-✅ Своевременность синхронизации файлов
-✅ Отсутствие нарушений правил
-```
-
-## 🔄 НЕПРЕРЫВНОЕ УЛУЧШЕНИЕ
-
-```
-ПОСЛЕ КАЖДОЙ ЗАДАЧИ АНАЛИЗИРОВАТЬ:
-- Что можно было сделать лучше?
-- Какие протоколы сработали?
-- Где были пробелы в анализе?
-- Как повысить эффективность?
-```
-
----
-
-**СТАТУС**: Новая система самопроверки активирована! Применяется с каждой задачей проекта Sfera.
diff --git a/src/components/fulfillment-supplies/create-fulfillment-consumables-supply-page.tsx b/src/components/fulfillment-supplies/create-fulfillment-consumables-supply-page.tsx
index 0a90599..d3326f7 100644
--- a/src/components/fulfillment-supplies/create-fulfillment-consumables-supply-page.tsx
+++ b/src/components/fulfillment-supplies/create-fulfillment-consumables-supply-page.tsx
@@ -26,7 +26,7 @@ import {
} from "lucide-react";
import {
GET_MY_COUNTERPARTIES,
- GET_ALL_PRODUCTS,
+ GET_ORGANIZATION_PRODUCTS,
GET_SUPPLY_ORDERS,
GET_MY_SUPPLIES,
GET_MY_FULFILLMENT_SUPPLIES,
@@ -112,19 +112,26 @@ export function CreateFulfillmentConsumablesSupplyPage() {
productSearchQuery,
});
- // Загружаем товары для выбранного поставщика
+ // Загружаем товары для выбранного поставщика с фильтрацией по типу CONSUMABLE
const {
data: productsData,
loading: productsLoading,
error: productsError,
- } = useQuery(GET_ALL_PRODUCTS, {
+ } = useQuery(GET_ORGANIZATION_PRODUCTS, {
skip: !selectedSupplier,
- variables: { search: productSearchQuery || null, category: null },
+ variables: {
+ organizationId: selectedSupplier.id,
+ search: productSearchQuery || null,
+ category: null,
+ type: "CONSUMABLE" // Фильтруем только расходники согласно rules2.md
+ },
onCompleted: (data) => {
- console.log("✅ GET_ALL_PRODUCTS COMPLETED:", {
- totalProducts: data?.allProducts?.length || 0,
+ console.log("✅ GET_ORGANIZATION_PRODUCTS COMPLETED:", {
+ totalProducts: data?.organizationProducts?.length || 0,
+ organizationId: selectedSupplier.id,
+ type: "CONSUMABLE",
products:
- data?.allProducts?.map((p) => ({
+ data?.organizationProducts?.map((p) => ({
id: p.id,
name: p.name,
type: p.type,
@@ -134,7 +141,7 @@ export function CreateFulfillmentConsumablesSupplyPage() {
});
},
onError: (error) => {
- console.error("❌ GET_ALL_PRODUCTS ERROR:", error);
+ console.error("❌ GET_ORGANIZATION_PRODUCTS ERROR:", error);
},
});
@@ -160,14 +167,8 @@ export function CreateFulfillmentConsumablesSupplyPage() {
);
// Фильтруем товары по выбранному поставщику
- // 📦 ТОЛЬКО РАСХОДНИКИ согласно правилам (раздел 2.1)
- const supplierProducts = selectedSupplier
- ? (productsData?.allProducts || []).filter(
- (product: FulfillmentConsumableProduct) =>
- product.organization.id === selectedSupplier.id &&
- product.type === "CONSUMABLE" // Только расходники для фулфилмента
- )
- : [];
+ // 📦 Получаем товары поставщика (уже отфильтрованы в GraphQL запросе по типу CONSUMABLE)
+ const supplierProducts = productsData?.organizationProducts || [];
// Отладочное логирование
React.useEffect(() => {
@@ -181,10 +182,10 @@ export function CreateFulfillmentConsumablesSupplyPage() {
: null,
productsLoading,
productsError: productsError?.message,
- allProductsCount: productsData?.allProducts?.length || 0,
+ organizationProductsCount: productsData?.organizationProducts?.length || 0,
supplierProductsCount: supplierProducts.length,
- allProducts:
- productsData?.allProducts?.map((p) => ({
+ organizationProducts:
+ productsData?.organizationProducts?.map((p) => ({
id: p.id,
name: p.name,
organizationId: p.organization.id,
diff --git a/src/components/fulfillment-supplies/materials-supplies/materials-order-form.tsx b/src/components/fulfillment-supplies/materials-supplies/materials-order-form.tsx
index 2115e7e..3aa9465 100644
--- a/src/components/fulfillment-supplies/materials-supplies/materials-order-form.tsx
+++ b/src/components/fulfillment-supplies/materials-supplies/materials-order-form.tsx
@@ -25,7 +25,7 @@ import {
} from "lucide-react";
import {
GET_MY_COUNTERPARTIES,
- GET_ALL_PRODUCTS,
+ GET_ORGANIZATION_PRODUCTS,
GET_SUPPLY_ORDERS,
GET_MY_SUPPLIES,
} from "@/graphql/queries";
@@ -91,12 +91,17 @@ export function MaterialsOrderForm() {
GET_MY_COUNTERPARTIES
);
- // Загружаем товары для выбранного партнера
+ // Загружаем товары для выбранного партнера с фильтрацией по типу CONSUMABLE
const { data: productsData, loading: productsLoading } = useQuery(
- GET_ALL_PRODUCTS,
+ GET_ORGANIZATION_PRODUCTS,
{
skip: !selectedPartner,
- variables: { search: null, category: null },
+ variables: {
+ organizationId: selectedPartner.id,
+ search: null,
+ category: null,
+ type: "CONSUMABLE" // Фильтруем только расходники согласно rules2.md
+ },
}
);
@@ -117,12 +122,8 @@ export function MaterialsOrderForm() {
partner.inn?.toLowerCase().includes(searchQuery.toLowerCase())
);
- // Фильтруем товары по выбранному партнеру
- const partnerProducts = selectedPartner
- ? (productsData?.allProducts || []).filter(
- (product: Product) => product.organization.id === selectedPartner.id
- )
- : [];
+ // Получаем товары партнера (уже отфильтрованы в GraphQL запросе)
+ const partnerProducts = productsData?.organizationProducts || [];
const formatCurrency = (amount: number) => {
return new Intl.NumberFormat("ru-RU", {
diff --git a/src/components/supplies/create-consumables-supply-page.tsx b/src/components/supplies/create-consumables-supply-page.tsx
index 8b413af..5b6a319 100644
--- a/src/components/supplies/create-consumables-supply-page.tsx
+++ b/src/components/supplies/create-consumables-supply-page.tsx
@@ -27,7 +27,7 @@ import {
} from "lucide-react";
import {
GET_MY_COUNTERPARTIES,
- GET_ALL_PRODUCTS,
+ GET_ORGANIZATION_PRODUCTS,
GET_SUPPLY_ORDERS,
GET_MY_SUPPLIES,
} from "@/graphql/queries";
@@ -99,12 +99,17 @@ export function CreateConsumablesSupplyPage() {
GET_MY_COUNTERPARTIES
);
- // Загружаем товары для выбранного поставщика
+ // Загружаем товары для выбранного поставщика с фильтрацией по типу CONSUMABLE
const { data: productsData, loading: productsLoading } = useQuery(
- GET_ALL_PRODUCTS,
+ GET_ORGANIZATION_PRODUCTS,
{
skip: !selectedSupplier,
- variables: { search: productSearchQuery || null, category: null },
+ variables: {
+ organizationId: selectedSupplier.id,
+ search: productSearchQuery || null,
+ category: null,
+ type: "CONSUMABLE" // Фильтруем только расходники согласно rules2.md
+ },
}
);
@@ -134,13 +139,8 @@ export function CreateConsumablesSupplyPage() {
supplier.inn?.toLowerCase().includes(searchQuery.toLowerCase())
);
- // Фильтруем товары по выбранному поставщику
- const supplierProducts = selectedSupplier
- ? (productsData?.allProducts || []).filter(
- (product: ConsumableProduct) =>
- product.organization.id === selectedSupplier.id
- )
- : [];
+ // Получаем товары поставщика (уже отфильтрованы в GraphQL запросе)
+ const supplierProducts = productsData?.organizationProducts || [];
const formatCurrency = (amount: number) => {
return new Intl.NumberFormat("ru-RU", {
@@ -415,11 +415,11 @@ export function CreateConsumablesSupplyPage() {
-
+
{/* Заголовок */}
-
+
Создание поставки расходников
@@ -440,9 +440,9 @@ export function CreateConsumablesSupplyPage() {
- Для работы с реальными карточками необходимо настроить API ключ Wildberries
+ Для работы с полным функционалом WB API необходимо настроить API ключ Wildberries
- Показаны демонстрационные товары для тестирования
+ Загружены товары из вашего склада
>
)}
diff --git a/src/components/ui/product-card-skeleton.tsx b/src/components/ui/product-card-skeleton.tsx
new file mode 100644
index 0000000..9d9de86
--- /dev/null
+++ b/src/components/ui/product-card-skeleton.tsx
@@ -0,0 +1,61 @@
+"use client"
+
+import React from 'react'
+import { Card } from '@/components/ui/card'
+
+export function ProductCardSkeleton() {
+ return (
+
+
+```
+
+#### 14.5.5 WB интеграция - визуальные индикаторы
+
+**Статусы синхронизации с WB API:**
+```css
+/* Успешная синхронизация */
+.wb-sync-success {
+ @apply bg-green-500/20 border-green-400 text-green-100;
+ --status-icon: "✅";
+}
+
+/* Ошибка синхронизации */
+.wb-sync-error {
+ @apply bg-red-500/20 border-red-400 text-red-100;
+ --status-icon: "❌";
+}
+
+/* В процессе синхронизации */
+.wb-sync-loading {
+ @apply bg-yellow-500/20 border-yellow-400 text-yellow-100;
+ --status-icon: "⏳";
+ animation: pulse 2s infinite;
+}
+
+/* Не настроена */
+.wb-sync-none {
+ @apply bg-gray-500/20 border-gray-400 text-gray-100;
+ --status-icon: "⚠️";
+}
+```
+
+---
+
+**📊 СТАТУС**: Действующие правила v1.2 (добавлен кабинет селлера)
+**🔄 ОБНОВЛЕНО**: Интеграция с rules-complete.md v6.2
+**📅 ДАТА**: 2025, полная синхронизация с техническими требованиями
+
+### 🆕 ДОБАВЛЕНИЯ v1.2:
+- ✅ Детальные правила для кабинета селлера (раздел 14.5)
+- ✅ Трёхблочная архитектура страницы "Мои поставки"
+- ✅ Контекстная статистика по типам поставок
+- ✅ Визуальные компоненты создания рецептуры
+- ✅ WB интеграция и статусы синхронизации
+- ✅ Исправление архитектурного нарушения px-2 py-2
diff --git a/work-protocols.md b/work-protocols.md
deleted file mode 100644
index 851dc73..0000000
--- a/work-protocols.md
+++ /dev/null
@@ -1,217 +0,0 @@
-# ПРОТОКОЛЫ РАБОТЫ ДЛЯ AI АССИСТЕНТА
-
-## 🎯 ПРОТОКОЛ ДЛЯ ЗАДАЧ СРЕДНЕЙ СЛОЖНОСТИ
-
-### ОПРЕДЕЛЕНИЕ СРЕДНЕЙ СЛОЖНОСТИ:
-
-- Работа с 2-3 файлами
-- Изменение логики в 1-2 модулях
-- Добавление новых функций без изменения архитектуры
-- Задачи, требующие анализа зависимостей
-
-### ОБЯЗАТЕЛЬНЫЕ ЭТАПЫ:
-
-#### 1. 🔍 **ЭТАП АНАЛИЗА** (STOP & THINK)
-
-```
-ПЕРЕД НАЧАЛОМ ЗАДАТЬ СЕБЕ:
-□ Какие файлы нужно изучить? (перечислить ВСЕ)
-□ Какие правила из rules2.md применимы?
-□ Есть ли зависимости между компонентами?
-□ Что может пойти не так?
-□ Нужны ли уточнения от пользователя?
-```
-
-#### 2. 📋 **СОЗДАНИЕ ПЛАНА**
-
-```
-□ Разбить задачу на подзадачи (не более 5)
-□ Определить порядок выполнения
-□ Выявить критические точки
-□ Создать TODO список
-```
-
-#### 3. 🔄 **ВЫПОЛНЕНИЕ С ПРОВЕРКАМИ**
-
-```
-ПОСЛЕ КАЖДОГО ШАГА:
-□ Соответствует ли результат rules2.md?
-□ Не нарушены ли связи с другими модулями?
-□ Работает ли измененный код?
-□ Нужно ли обновить documentation?
-```
-
-#### 4. ✅ **ФИНАЛЬНАЯ САМОПРОВЕРКА**
-
-```
-□ Прочитать изменения еще раз
-□ Проверить development-checklist.md
-□ Убедиться в полноте решения
-□ Задать вопрос: "Что еще я мог упустить?"
-```
-
----
-
-## 🔥 ПРОТОКОЛ ДЛЯ ЗАДАЧ ВЫСОКОЙ СЛОЖНОСТИ
-
-### ОПРЕДЕЛЕНИЕ ВЫСОКОЙ СЛОЖНОСТИ:
-
-- Работа с 4+ файлами
-- Изменение архитектуры системы
-- Создание новых модулей/компонентов
-- Задачи, влияющие на несколько кабинетов
-- Изменения в правилах или workflow
-
-### ОБЯЗАТЕЛЬНЫЕ ЭТАПЫ:
-
-#### 1. 🛑 **СТОП! ГЛУБОКИЙ АНАЛИЗ**
-
-```
-ОБЯЗАТЕЛЬНЫЕ ВОПРОСЫ ПОЛЬЗОВАТЕЛЮ:
-□ Уточнить ВСЕ требования и ожидания
-□ Выяснить приоритеты и ограничения
-□ Узнать о связях с другими системами
-□ Понять критерии успеха
-```
-
-#### 2. 🔍 **ИССЛЕДОВАТЕЛЬСКАЯ ФАЗА**
-
-```
-□ Изучить ВСЕ связанные файлы параллельно
-□ Построить карту зависимостей
-□ Найти все правила в rules2.md
-□ Выявить потенциальные конфликты
-□ Проанализировать влияние на систему
-```
-
-#### 3. 📊 **СОЗДАНИЕ ДЕТАЛЬНОГО ПЛАНА**
-
-```
-□ Разбить на этапы с промежуточными проверками
-□ Определить точки возврата (rollback points)
-□ Создать план тестирования
-□ Предусмотреть обновление документации
-```
-
-#### 4. 🎯 **ПОЭТАПНОЕ ВЫПОЛНЕНИЕ**
-
-```
-ПОСЛЕ КАЖДОГО ЭТАПА:
-□ Проверка работоспособности
-□ Валидация против всех правил
-□ Промежуточная демонстрация пользователю
-□ Корректировка плана при необходимости
-```
-
-#### 5. 🔄 **ИТЕРАТИВНАЯ ПРОВЕРКА**
-
-```
-□ Полное тестирование системы
-□ Проверка всех затронутых модулей
-□ Обновление всей связанной документации
-□ Финальное согласование с пользователем
-```
-
----
-
-## ❓ СИСТЕМА ОБЯЗАТЕЛЬНЫХ УТОЧНЕНИЙ
-
-### КОГДА ВСЕГДА СПРАШИВАТЬ:
-
-#### 🔴 **КРИТИЧЕСКИЕ СИТУАЦИИ** (ОБЯЗАТЕЛЬНО):
-
-- Обнаружил противоречие в правилах
-- Задача может нарушить архитектуру системы
-- Неясно как применить правило к конкретной ситуации
-- Есть несколько способов решения с разными последствиями
-- Изменения затрагивают критические бизнес-процессы
-
-#### 🟡 **ВАЖНЫЕ СИТУАЦИИ** (РЕКОМЕНДУЕТСЯ):
-
-- Задача требует создания новых типов данных
-- Нужно изменить существующий workflow
-- Есть сомнения в интерпретации требований
-- Решение может повлиять на производительность
-- Требуется интеграция с внешними системами
-
-### ФОРМАТ УТОЧНЯЮЩИХ ВОПРОСОВ:
-
-```
-🎯 КОНТЕКСТ: Что именно я делаю
-❓ ВОПРОС: Что конкретно неясно
-⚖️ ВАРИАНТЫ: Какие есть альтернативы (если применимо)
-⚠️ РИСКИ: Что может пойти не так
-💡 ПРЕДЛОЖЕНИЕ: Мой рекомендуемый подход
-```
-
----
-
-## 🛠️ СИСТЕМА САМОПРОВЕРКИ
-
-### ЧЕК-ЛИСТ ПОСЛЕ КАЖДОЙ ЗАДАЧИ:
-
-#### ✅ **СООТВЕТСТВИЕ ПРАВИЛАМ**
-
-```
-□ Проверил против rules2.md (ВСЕ применимые разделы)
-□ Обновил development-checklist.md если нужно
-□ Не нарушил критические запреты
-□ Соблюдены принципы ТОВАР ≠ ПРОДУКТ
-□ Workflow статусы корректны
-```
-
-#### ✅ **ТЕХНИЧЕСКОЕ КАЧЕСТВО**
-
-```
-□ Код следует принципам SOLID
-□ Добавлены необходимые проверки и валидации
-□ Обработаны ошибки
-□ Производительность не пострадала
-□ Безопасность данных соблюдена
-```
-
-#### ✅ **ПОЛНОТА РЕШЕНИЯ**
-
-```
-□ Решены ВСЕ аспекты задачи
-□ Обновлена документация
-□ Проверены связанные компоненты
-□ Нет "технических долгов"
-□ Готово к production
-```
-
-#### ✅ **КОММУНИКАЦИЯ**
-
-```
-□ Объяснил что сделал и почему
-□ Указал на важные изменения
-□ Предупредил о потенциальных рисках
-□ Дал рекомендации по дальнейшим действиям
-```
-
----
-
-## 🎖️ ДОПОЛНИТЕЛЬНЫЕ РЕКОМЕНДАЦИИ
-
-### ДЛЯ ПОЛЬЗОВАТЕЛЯ:
-
-1. **📋 Создавайте подробные задачи** - чем больше контекста, тем лучше результат
-2. **🎯 Указывайте приоритеты** - что критично, а что можно отложить
-3. **⚠️ Предупреждайте об ограничениях** - технических, временных, бизнесовых
-4. **🔄 Давайте обратную связь** - что работает хорошо, что нужно улучшить
-
-### ДЛЯ МЕНЯ:
-
-1. **🛑 Принцип "Стоп и подумай"** перед каждой сложной задачей
-2. **📊 Параллельный сбор информации** вместо последовательного
-3. **❓ Активное уточнение** при малейших сомнениях
-4. **🔄 Итеративная проверка** на каждом этапе
-5. **📝 Документирование процесса** для улучшения в будущем
-
----
-
-## 🚀 АКТИВАЦИЯ ПРОТОКОЛОВ
-
-Данные протоколы активируются автоматически на основе сложности задачи. Я буду следовать им при каждой работе с проектом Sfera.
-
-**КРИТЕРИЙ УСПЕХА**: Количество пропущенных важных деталей = 0