Files
sfera/development-checklist.md

179 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ЧЕКЛИСТ РАЗРАБОТКИ - ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ
> ⚠️ **КРИТИЧЕСКИ ВАЖНО**: Этот чеклист ОБЯЗАТЕЛЕН к проверке перед любым изменением кода!
## 🔴 КРИТИЧЕСКИЕ ПРОВЕРКИ (НЕЛЬЗЯ НАРУШАТЬ)
### ✅ Типизация предметов
- [ ] Каждый предмет имеет один из 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
**СТАТУС**: ОБЯЗАТЕЛЬНЫЙ К ВЫПОЛНЕНИЮ