Files
sfera/development-checklist.md

11 KiB
Raw Blame History

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

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

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

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

  • Каждый предмет имеет один из 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 СТАТУС: ОБЯЗАТЕЛЬНЫЙ К ВЫПОЛНЕНИЮ