# ЧЕКЛИСТ РАЗРАБОТКИ - ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ

> ⚠️ **КРИТИЧЕСКИ ВАЖНО**: Этот чеклист ОБЯЗАТЕЛЕН к проверке перед любым изменением кода!

## 🔴 КРИТИЧЕСКИЕ ПРОВЕРКИ (НЕЛЬЗЯ НАРУШАТЬ)

### ✅ Типизация предметов

- [ ] Каждый предмет имеет один из 4 типов: ТОВАР, БРАК, РАСХОДНИКИ, ПРОДУКТ
- [ ] БРАК и ПРОДУКТ имеют обязательную связь с родительским товаром (parentId)
- [ ] Расходники создаются как универсальный тип, классифицируются при заказе
- [ ] ТОВАР ≠ ПРОДУКТ (разные сущности в системе)

### ✅ 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 методов
- [ ] Автоматическое тестирование при развертывании

## 🟢 РЕКОМЕНДУЕМЫЕ ПРОВЕРКИ

### ✅ Пользовательский опыт

- [ ] Адаптивность интерфейса
- [ ] Индикаторы загрузки
- [ ] Понятные сообщения об ошибках

### ✅ Производительность

- [ ] Пагинация для больших списков
- [ ] Ленивая загрузка изображений
- [ ] Кэширование данных

## ❌ АБСОЛЮТНО ЗАПРЕЩЕНО

1. Удалять предметы с существующими заказами
2. Изменять статусы без уведомлений
3. Обходить проверки остатков
4. Давать доступ к чужим данным
5. Создавать брак/продукт без связи с родительским товаром
6. Создавать отдельные типы расходников
7. Разрешать заказ брака
8. Нарушать последовательность статусов
9. Игнорировать валидацию
10. Нарушать последовательность модулей в статистике фулфилмента

---

## 🤔 ПРАВИЛО УТОЧНЕНИЙ

**КРИТИЧЕСКИ ВАЖНО**: Если я не уверен в выполнении задачи или вижу противоречия в правилах - ОБЯЗАТЕЛЬНО уточнить у пользователя!

### ❓ КОГДА УТОЧНЯТЬ:

- [ ] Недостаточно информации для правильного выполнения
- [ ] Вижу противоречия между правилами
- [ ] Задача может нарушить критические правила
- [ ] Неясно как применить правило в конкретной ситуации
- [ ] Есть сомнения в интерпретации требований

### 📝 КАК УТОЧНЯТЬ:

1. Четко сформулировать что именно неясно
2. Указать какие правила/требования конфликтуют
3. Предложить варианты решения если возможно
4. Запросить конкретные уточнения

**❌ НИКОГДА не делать предположений если есть сомнения!**

---

**ПРАВИЛО**: Перед каждым изменением кода проверить этот чеклист!
**ИСТОЧНИК ИСТИНЫ**: rules2.md
**СТАТУС**: ОБЯЗАТЕЛЬНЫЙ К ВЫПОЛНЕНИЮ
