From a33adda9d7ccf12e91269150d3b2fd9d4d8f9ae0 Mon Sep 17 00:00:00 2001 From: Veronika Smirnova Date: Sat, 2 Aug 2025 13:13:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86=D0=B8=D0=B8=20"=D0=93?= =?UTF-8?q?=D0=BB=D0=B0=D0=B2=D0=BD=D0=B0=D1=8F"=20=D0=B8=20"=D0=AD=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D0=BE=D0=BC=D0=B8=D0=BA=D0=B0"=20=D0=B2=20=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=B2=D1=83=D1=8E=20=D0=BF=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C.=20=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D1=8B=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D1=87=D0=B8=D0=BA=D0=B8=20=D0=BA=D0=BB=D0=B8=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0=20=D1=81=D0=BE=D0=BE=D1=82?= =?UTF-8?q?=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B.=20?= =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81?= =?UTF-8?q?=D1=82=D0=B8=D0=BB=D0=B8=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=BE=D1=82=20=D1=81=D0=BE=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D1=8F=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto-sync-system.md | 141 +++ development-checklist.md | 178 +++ fulfillment-cabinet-rules.md | 482 ++++++++ rules2.md | 1070 +++++++++++++++++ self-validation.md | 146 +++ src/app/economics/page.tsx | 10 + src/app/home/page.tsx | 10 + src/components/dashboard/sidebar.tsx | 54 + .../economics/economics-page-wrapper.tsx | 40 + .../economics/fulfillment-economics-page.tsx | 59 + .../economics/logist-economics-page.tsx | 59 + .../economics/seller-economics-page.tsx | 59 + .../economics/wholesale-economics-page.tsx | 59 + src/components/home/fulfillment-home-page.tsx | 62 + src/components/home/home-page-wrapper.tsx | 40 + src/components/home/logist-home-page.tsx | 62 + src/components/home/seller-home-page.tsx | 61 + src/components/home/wholesale-home-page.tsx | 61 + token-optimization.md | 186 +++ violation-prevention-protocol.md | 169 +++ work-protocols.md | 217 ++++ 21 files changed, 3225 insertions(+) create mode 100644 auto-sync-system.md create mode 100644 development-checklist.md create mode 100644 fulfillment-cabinet-rules.md create mode 100644 rules2.md create mode 100644 self-validation.md create mode 100644 src/app/economics/page.tsx create mode 100644 src/app/home/page.tsx create mode 100644 src/components/economics/economics-page-wrapper.tsx create mode 100644 src/components/economics/fulfillment-economics-page.tsx create mode 100644 src/components/economics/logist-economics-page.tsx create mode 100644 src/components/economics/seller-economics-page.tsx create mode 100644 src/components/economics/wholesale-economics-page.tsx create mode 100644 src/components/home/fulfillment-home-page.tsx create mode 100644 src/components/home/home-page-wrapper.tsx create mode 100644 src/components/home/logist-home-page.tsx create mode 100644 src/components/home/seller-home-page.tsx create mode 100644 src/components/home/wholesale-home-page.tsx create mode 100644 token-optimization.md create mode 100644 violation-prevention-protocol.md create mode 100644 work-protocols.md diff --git a/auto-sync-system.md b/auto-sync-system.md new file mode 100644 index 0000000..03faf64 --- /dev/null +++ b/auto-sync-system.md @@ -0,0 +1,141 @@ +# СИСТЕМА АВТОМАТИЧЕСКОЙ СИНХРОНИЗАЦИИ + +## 🔄 ПРИНЦИП АВТОСИНХРОНИЗАЦИИ + +**ПРАВИЛО**: При любом изменении в `rules2.md` автоматически анализировать влияние на `development-checklist.md` и обновлять его. + +## 📊 АЛГОРИТМ СИНХРОНИЗАЦИИ + +### 1. 🔍 **ТРИГГЕРЫ ДЛЯ СИНХРОНИЗАЦИИ** + +``` +КОГДА СИНХРОНИЗИРОВАТЬ: +✅ Добавлено новое критическое правило в rules2.md +✅ Изменены запреты или ограничения +✅ Обновлены workflow процессы +✅ Модифицированы правила валидации +✅ Добавлены новые типы данных или сущности +✅ Изменены технические требования +``` + +### 2. 🎯 **КАТЕГОРИИ ИЗМЕНЕНИЙ** + +#### 🔴 **КРИТИЧЕСКИЕ** (обязательно добавить в checklist): + +- Новые запреты (❌ НИКОГДА НЕ ДЕЛАТЬ) +- Обязательные проверки данных +- Правила безопасности +- Критические бизнес-правила +- Валидация типов предметов + +#### 🟡 **ВАЖНЫЕ** (рекомендуется добавить): + +- Новые workflow этапы +- Правила производительности +- UX требования +- Интеграционные требования + +#### 🟢 **ДОПОЛНИТЕЛЬНЫЕ** (опционально): + +- Рекомендации по улучшению +- Косметические правила +- Экспериментальные функции + +### 3. 📋 **ПРОЦЕСС ОБНОВЛЕНИЯ CHECKLIST** + +``` +1. АНАЛИЗ ИЗМЕНЕНИЙ в rules2.md + ↓ +2. ОПРЕДЕЛЕНИЕ КАТЕГОРИИ (критическое/важное/дополнительное) + ↓ +3. ПОИСК СООТВЕТСТВУЮЩЕЙ СЕКЦИИ в development-checklist.md + ↓ +4. ДОБАВЛЕНИЕ/ОБНОВЛЕНИЕ ЧЕКБОКСА + ↓ +5. УВЕДОМЛЕНИЕ ПОЛЬЗОВАТЕЛЯ о синхронизации +``` + +## 🛠️ ПРАКТИЧЕСКИЕ ПРИМЕРЫ + +### ПРИМЕР 1: Добавлено новое правило в rules2.md + +``` +ИЗМЕНЕНИЕ: "Товар должен иметь минимум одно изображение" +↓ +ACTION: Добавить в development-checklist.md: +"- [ ] Товар имеет минимум одно изображение" +``` + +### ПРИМЕР 2: Изменен workflow статус + +``` +ИЗМЕНЕНИЕ: Добавлен новый статус "QUALITY_CHECK" +↓ +ACTION: Обновить в checklist секцию "Workflow поставок": +"- [ ] Соблюдение последовательности: PENDING → SUPPLIER_APPROVED → QUALITY_CHECK → CONFIRMED..." +``` + +### ПРИМЕР 3: Новое техническое требование + +``` +ИЗМЕНЕНИЕ: "API должно возвращать ответ за 500ms" +↓ +ACTION: Добавить в секцию "Производительность": +"- [ ] API возвращает ответ за 500ms или меньше" +``` + +## 🎯 ШАБЛОНЫ ДЛЯ СИНХРОНИЗАЦИИ + +### ФОРМАТ ДОБАВЛЕНИЯ В CHECKLIST: + +``` +- [ ] {КРАТКОЕ_ОПИСАНИЕ_ПРАВИЛА} {(ИСТОЧНИК_ЕСЛИ_НУЖНО)} +``` + +### ПРИМЕРЫ ХОРОШИХ ЧЕКБОКСОВ: + +``` +✅ - [ ] Проверить типизацию: ТОВАР ≠ ПРОДУКТ +✅ - [ ] Валидировать остатки перед добавлением в корзину +✅ - [ ] Запретить заказ предметов типа БРАК +✅ - [ ] Обеспечить связь parentId для производных типов +``` + +### ПРИМЕРЫ ПЛОХИХ ЧЕКБОКСОВ: + +``` +❌ - [ ] Проверить что все хорошо (слишком общий) +❌ - [ ] Сделать как в rules2.md (не конкретный) +❌ - [ ] Не забыть про безопасность (неизмеримый) +``` + +## 🔄 АВТОМАТИЧЕСКОЕ УВЕДОМЛЕНИЕ + +Когда я обновляю `development-checklist.md` из-за изменений в `rules2.md`, я буду сообщать: + +``` +🔄 АВТОСИНХРОНИЗАЦИЯ ВЫПОЛНЕНА: +📝 Изменения в rules2.md: {ОПИСАНИЕ} +✅ Обновлен development-checklist.md: {КОНКРЕТНЫЕ ДОБАВЛЕНИЯ} +🎯 Новых критических проверок: {КОЛИЧЕСТВО} +``` + +## 📊 МОНИТОРИНГ СИНХРОНИЗАЦИИ + +### МЕТРИКИ КАЧЕСТВА: + +- Время между изменением rules2.md и обновлением checklist +- Полнота переноса критических правил +- Отсутствие дублирования в checklist +- Актуальность формулировок + +### УСПЕШНАЯ СИНХРОНИЗАЦИЯ: + +✅ Все критические правила отражены в checklist +✅ Формулировки понятны и проверяемы +✅ Нет дублирования или противоречий +✅ Checklist остается удобным для использования + +--- + +**СТАТУС**: Система активирована и будет применяться при каждом изменении rules2.md diff --git a/development-checklist.md b/development-checklist.md new file mode 100644 index 0000000..bf70bb3 --- /dev/null +++ b/development-checklist.md @@ -0,0 +1,178 @@ +# ЧЕКЛИСТ РАЗРАБОТКИ - ОБЯЗАТЕЛЬНЫЕ ПРОВЕРКИ + +> ⚠️ **КРИТИЧЕСКИ ВАЖНО**: Этот чеклист ОБЯЗАТЕЛЕН к проверке перед любым изменением кода! + +## 🔴 КРИТИЧЕСКИЕ ПРОВЕРКИ (НЕЛЬЗЯ НАРУШАТЬ) + +### ✅ Типизация предметов + +- [ ] Каждый предмет имеет один из 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 +**СТАТУС**: ОБЯЗАТЕЛЬНЫЙ К ВЫПОЛНЕНИЮ diff --git a/fulfillment-cabinet-rules.md b/fulfillment-cabinet-rules.md new file mode 100644 index 0000000..01ecd5a --- /dev/null +++ b/fulfillment-cabinet-rules.md @@ -0,0 +1,482 @@ +# ПРАВИЛА КАБИНЕТА ФУЛФИЛМЕНТА + +> 📋 **Файл создан на основе анализа системы** - детальные правила для кабинета фулфилмента + +--- + +## 📑 ОГЛАВЛЕНИЕ + +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/rules2.md b/rules2.md new file mode 100644 index 0000000..dc3de2c --- /dev/null +++ b/rules2.md @@ -0,0 +1,1070 @@ +# ПРАВИЛА СИСТЕМЫ УПРАВЛЕНИЯ СКЛАДАМИ И ПОСТАВКАМИ - БАЗА ЗНАНИЙ v2.0 + +> ⚠️ **ВАЖНОЕ ПРИМЕЧАНИЕ**: Данный файл является объединенной базой знаний системы на основе анализа rules.md, rules1.md и description.md. Все изменения должны согласовываться. + +--- + +## 📑 ОГЛАВЛЕНИЕ + +### 🏗️ **АРХИТЕКТУРА И ОСНОВЫ** + +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. [📋 Приложение: Дополнительные возможности и планы](#-приложение-дополнительные-возможности-и-планы) + +--- + +## 🏷️ РЕЕСТР СУЩНОСТЕЙ СИСТЕМЫ + +### 📦 **ОСНОВНЫЕ ПРЕДМЕТЫ** + +| Сущность | Название в системе | Кабинет создания | Описание | Статус | +| ---------- | ---------------------------------- | ---------------- | ----------------------------------------------- | --------------- | +| Товар | `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) | Управляет доставками | ✅ Реализовано | + +--- + +## 1. 🎯 ОСНОВНЫЕ ПРИНЦИПЫ СИСТЕМЫ + +### 1.1 Главная логика системы + +**КЛЮЧЕВОЕ ПРАВИЛО**: Товар ≠ Продукт (это разные сущности в системе) + +- **ТОВАР** - сырье, базовый материал от поставщика +- **ПРОДУКТ** - готовая к продаже единица после обработки + +### 1.2 Потоки в системе + +**ПОТОК ТОВАРОВ**: Поставщик → Фулфилмент → Селлер/Маркетплейс +**ПОТОК РАСХОДНИКОВ**: Поставщик → Фулфилмент/Селлер (в зависимости от заказчика) + +### 1.3 Уникальность артикулов + +- **ФОРМАТ**: `СФ-{ТИП}-{КОД_КАТЕГОРИИ}-{КОД_ОРГАНИЗАЦИИ}-{TIMESTAMP}-{RANDOM}` +- **ТИПЫ В АРТИКУЛЕ**: + - `TOV` - Товар + - `BRK` - Брак + - `R` - Расходники + - `PRD` - Продукт + +--- + +## 2. 📦 ТИПИЗАЦИЯ ПРЕДМЕТОВ + +### 2.1 Четыре основных типа предметов + +#### **1. ТОВАР** (базовый тип) + +- **СОЗДАЕТСЯ**: Поставщиком +- **СТАТУС**: Может быть активным/неактивным +- **ЗАКАЗ**: Доступен для заказа всеми типами организаций +- **ТРАНСФОРМАЦИЯ**: Может стать ПРОДУКТОМ или БРАКОМ +- **ЦЕНА**: Обязательна, больше 0 + +#### **2. БРАК** (производная от товара) + +- **СОЗДАЕТСЯ**: Фулфилментом на основе существующего ТОВАРА при обнаружении дефектов +- **МОМЕНТ СОЗДАНИЯ**: В процессе "Создание продукта" / "В работе" после подсчета факта +- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId) +- **ЗАКАЗ**: ЗАПРЕЩЕН заказ брака +- **СТАТУС**: Всегда неактивен для заказа +- **ЦЕНА**: Для селлера - себестоимость дефектного товара, для фулфилмента - 0 +- **WORKFLOW**: Особый процесс списания и утилизации +- **УЧЕТ**: Отдельный учет в статистике потерь +- **ОТОБРАЖЕНИЕ**: Виден только для учета потерь + +#### **3. РАСХОДНИКИ** (базовый тип) + +- **СОЗДАЕТСЯ**: Поставщиком как универсальный тип +- **КЛАССИФИКАЦИЯ ПРИ ЗАКАЗЕ**: + - Фулфилмент заказывает → "Расходники фулфилмента" + - Селлер заказывает → "Расходники селлеров" +- **ДОСТУП**: Видны всем типам организаций в маркете + +#### **4. ПРОДУКТ** (производная от товара) + +- **СОЗДАЕТСЯ**: Фулфилментом на основе ТОВАРА по заказу селлера +- **ИНИЦИАТОР**: Селлер создает заказ с рецептурой, фулфилмент исполняет +- **СВЯЗЬ**: Обязательная связь с родительским товаром (parentId) +- **РЕЦЕПТУРА**: Задается селлером при создании заказа (Товар + Услуга + Расходники) +- **СТАТУСЫ**: "в работе" → "готов к отправке" +- **ЗАКАЗ**: Доступен только в статусе "готов к отправке" + +### 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 Экономика + +_Раздел находится в разработке. Будет добавлен позже._ + +--- + +## 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 Глобальная интеграция + +- **МАРКЕТ**: Товары поставщиков отображаются в глобальном маркете +- **СИНХРОНИЗАЦИЯ**: Данные склада синхронизируются с модулем аналитики +- **УВЕДОМЛЕНИЯ**: Единая система через встроенный мессенджер + +### 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. Прочие товары + +--- + +_Эта база знаний создана на основе анализа rules.md, rules1.md и description.md и является единым источником понимания структуры и логики проекта._ + +_Версия: 2.0_ +_Дата создания: 2024_ +_Статус: АКТИВНАЯ БАЗА ЗНАНИЙ_ +1 diff --git a/self-validation.md b/self-validation.md new file mode 100644 index 0000000..f5aa9f5 --- /dev/null +++ b/self-validation.md @@ -0,0 +1,146 @@ +# УСОВЕРШЕНСТВОВАННАЯ СИСТЕМА САМОПРОВЕРКИ 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/app/economics/page.tsx b/src/app/economics/page.tsx new file mode 100644 index 0000000..48af4c1 --- /dev/null +++ b/src/app/economics/page.tsx @@ -0,0 +1,10 @@ +import { AuthGuard } from "@/components/auth-guard"; +import { EconomicsPageWrapper } from "@/components/economics/economics-page-wrapper"; + +export default function EconomicsPage() { + return ( + + + + ); +} diff --git a/src/app/home/page.tsx b/src/app/home/page.tsx new file mode 100644 index 0000000..45bc8d7 --- /dev/null +++ b/src/app/home/page.tsx @@ -0,0 +1,10 @@ +import { AuthGuard } from "@/components/auth-guard"; +import { HomePageWrapper } from "@/components/home/home-page-wrapper"; + +export default function HomePage() { + return ( + + + + ); +} diff --git a/src/components/dashboard/sidebar.tsx b/src/components/dashboard/sidebar.tsx index 42afa4e..5f0e2cb 100644 --- a/src/components/dashboard/sidebar.tsx +++ b/src/components/dashboard/sidebar.tsx @@ -25,6 +25,8 @@ import { ChevronLeft, ChevronRight, BarChart3, + Home, + DollarSign, } from "lucide-react"; // Компонент для отображения уведомлений о непринятых поставках @@ -173,6 +175,16 @@ export function Sidebar() { router.push("/partners"); }; + const handleHomeClick = () => { + router.push("/home"); + }; + + const handleEconomicsClick = () => { + router.push("/economics"); + }; + + const isHomeActive = pathname === "/home"; + const isEconomicsActive = pathname === "/economics"; const isSettingsActive = pathname === "/settings"; const isMarketActive = pathname.startsWith("/market"); const isMessengerActive = pathname.startsWith("/messenger"); @@ -304,6 +316,27 @@ export function Sidebar() { {/* Навигация */}
+ {/* Кнопка Главная - первая для всех типов кабинетов */} + + +
+ ); + } + + // Роутинг по типу организации + switch (user.organization.type) { + case "SELLER": + return ; + case "FULFILLMENT": + return ; + case "WHOLESALE": + return ; + case "LOGIST": + return ; + default: + return ( +
+
+ Неподдерживаемый тип кабинета: {user.organization.type} +
+
+ ); + } +} diff --git a/src/components/economics/fulfillment-economics-page.tsx b/src/components/economics/fulfillment-economics-page.tsx new file mode 100644 index 0000000..1656683 --- /dev/null +++ b/src/components/economics/fulfillment-economics-page.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { TrendingUp } from "lucide-react"; + +export function FulfillmentEconomicsPage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Экономика фулфилмента +

+

+ Финансовые показатели {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Экономические показатели +

+
+
+

+ Раздел находится в разработке +

+

Будет добавлен позже

+
+
+
+
+
+ ); +} diff --git a/src/components/economics/logist-economics-page.tsx b/src/components/economics/logist-economics-page.tsx new file mode 100644 index 0000000..bdec2d8 --- /dev/null +++ b/src/components/economics/logist-economics-page.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { Calculator } from "lucide-react"; + +export function LogistEconomicsPage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Экономика логистики +

+

+ Финансовые показатели {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Экономические показатели +

+
+
+

+ Раздел находится в разработке +

+

Будет добавлен позже

+
+
+
+
+
+ ); +} diff --git a/src/components/economics/seller-economics-page.tsx b/src/components/economics/seller-economics-page.tsx new file mode 100644 index 0000000..f51fc34 --- /dev/null +++ b/src/components/economics/seller-economics-page.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { DollarSign } from "lucide-react"; + +export function SellerEconomicsPage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Экономика селлера +

+

+ Финансовые показатели {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Экономические показатели +

+
+
+

+ Раздел находится в разработке +

+

Будет добавлен позже

+
+
+
+
+
+ ); +} diff --git a/src/components/economics/wholesale-economics-page.tsx b/src/components/economics/wholesale-economics-page.tsx new file mode 100644 index 0000000..62d2c49 --- /dev/null +++ b/src/components/economics/wholesale-economics-page.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { BarChart3 } from "lucide-react"; + +export function WholesaleEconomicsPage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Экономика поставщика +

+

+ Финансовые показатели {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Экономические показатели +

+
+
+

+ Раздел находится в разработке +

+

Будет добавлен позже

+
+
+
+
+
+ ); +} diff --git a/src/components/home/fulfillment-home-page.tsx b/src/components/home/fulfillment-home-page.tsx new file mode 100644 index 0000000..6d1a93a --- /dev/null +++ b/src/components/home/fulfillment-home-page.tsx @@ -0,0 +1,62 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { Factory } from "lucide-react"; + +export function FulfillmentHomePage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Главная страница фулфилмента +

+

+ Добро пожаловать в кабинет фулфилмент-центра{" "} + {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Кабинет фулфилмента +

+
+
+

+ Страница находится в разработке +

+

+ Содержание будет добавлено позже +

+
+
+
+
+
+ ); +} diff --git a/src/components/home/home-page-wrapper.tsx b/src/components/home/home-page-wrapper.tsx new file mode 100644 index 0000000..d7aa7b8 --- /dev/null +++ b/src/components/home/home-page-wrapper.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { SellerHomePage } from "./seller-home-page"; +import { FulfillmentHomePage } from "./fulfillment-home-page"; +import { WholesaleHomePage } from "./wholesale-home-page"; +import { LogistHomePage } from "./logist-home-page"; + +export function HomePageWrapper() { + const { user } = useAuth(); + + // Проверка доступа - только авторизованные пользователи с организацией + if (!user?.organization?.type) { + return ( +
+
Ошибка: тип организации не определен
+
+ ); + } + + // Роутинг по типу организации + switch (user.organization.type) { + case "SELLER": + return ; + case "FULFILLMENT": + return ; + case "WHOLESALE": + return ; + case "LOGIST": + return ; + default: + return ( +
+
+ Неподдерживаемый тип кабинета: {user.organization.type} +
+
+ ); + } +} diff --git a/src/components/home/logist-home-page.tsx b/src/components/home/logist-home-page.tsx new file mode 100644 index 0000000..78449d1 --- /dev/null +++ b/src/components/home/logist-home-page.tsx @@ -0,0 +1,62 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { Truck } from "lucide-react"; + +export function LogistHomePage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Главная страница логистики +

+

+ Добро пожаловать в кабинет логистической компании{" "} + {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Кабинет логистики +

+
+
+

+ Страница находится в разработке +

+

+ Содержание будет добавлено позже +

+
+
+
+
+
+ ); +} diff --git a/src/components/home/seller-home-page.tsx b/src/components/home/seller-home-page.tsx new file mode 100644 index 0000000..7d41577 --- /dev/null +++ b/src/components/home/seller-home-page.tsx @@ -0,0 +1,61 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { Building2 } from "lucide-react"; + +export function SellerHomePage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Главная страница селлера +

+

+ Добро пожаловать в кабинет селлера {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Кабинет селлера +

+
+
+

+ Страница находится в разработке +

+

+ Содержание будет добавлено позже +

+
+
+
+
+
+ ); +} diff --git a/src/components/home/wholesale-home-page.tsx b/src/components/home/wholesale-home-page.tsx new file mode 100644 index 0000000..c4f7ee2 --- /dev/null +++ b/src/components/home/wholesale-home-page.tsx @@ -0,0 +1,61 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { Sidebar } from "@/components/dashboard/sidebar"; +import { useSidebar } from "@/hooks/useSidebar"; +import { Card } from "@/components/ui/card"; +import { Package } from "lucide-react"; + +export function WholesaleHomePage() { + const { user } = useAuth(); + const { getSidebarMargin } = useSidebar(); + + const getOrganizationName = () => { + if (user?.organization?.name) { + return user.organization.name; + } + if (user?.organization?.fullName) { + return user.organization.fullName; + } + return "Вашей организации"; + }; + + return ( +
+ +
+
+ {/* Заголовок страницы */} +
+

+ Главная страница поставщика +

+

+ Добро пожаловать в кабинет поставщика {getOrganizationName()} +

+
+ + {/* Карточка-заглушка */} + +
+ +

+ Кабинет поставщика +

+
+
+

+ Страница находится в разработке +

+

+ Содержание будет добавлено позже +

+
+
+
+
+
+ ); +} diff --git a/token-optimization.md b/token-optimization.md new file mode 100644 index 0000000..de7e28d --- /dev/null +++ b/token-optimization.md @@ -0,0 +1,186 @@ +# ОПТИМИЗАЦИЯ РАСХОДА ТОКЕНОВ + +## 🎯 ПРИНЦИПЫ ЭКОНОМИИ + +### 1. **УМНАЯ ЗАГРУЗКА КОНТЕКСТА** + +#### ✅ **ОПТИМАЛЬНАЯ СТРАТЕГИЯ:** + +``` +ВМЕСТО: Читать весь rules2.md (975 строк) +ДЕЛАТЬ: Читать только нужные разделы по запросу + +ВМЕСТО: Загружать все файлы проекта +ДЕЛАТЬ: Загружать только затронутые файлы + +ВМЕСТО: Дублировать информацию в памяти +ДЕЛАТЬ: Ссылаться на уже загруженные данные +``` + +#### 📋 **ПРАВИЛА ЗАГРУЗКИ:** + +- **Для простых задач**: Читать только 1-2 конкретных раздела rules2.md +- **Для средних задач**: Загружать связанные разделы параллельно +- **Для сложных задач**: Поэтапная загрузка по мере необходимости + +### 2. **ЭФФЕКТИВНОЕ ИСПОЛЬЗОВАНИЕ ПАМЯТИ** + +#### 🧠 **СТРАТЕГИЯ ПАМЯТИ:** + +``` +КРИТИЧЕСКИЕ ПРАВИЛА → В память (один раз) +ЧАСТО ИСПОЛЬЗУЕМЫЕ → В память (экономия на перечитывании) +СПЕЦИФИЧЕСКИЕ → Читать по запросу +ТЕХНИЧЕСКИЕ ДЕТАЛИ → Ссылки вместо полного текста +``` + +#### 💾 **КЛЮЧЕВЫЕ ПАМЯТИ:** + +- [[memory:4966770]] - Протоколы работы (уже сохранено) +- [[memory:4966638]] - Автосинхронизация (уже сохранено) +- [[memory:4970102]] - Правила проекта (уже сохранено) + +### 3. **ОПТИМИЗАЦИЯ ПРОТОКОЛОВ** + +#### ⚡ **УПРОЩЕННЫЕ ПРОТОКОЛЫ ДЛЯ ЭКОНОМИИ:** + +**ЛЕГКИЕ ЗАДАЧИ** (1 файл, простые изменения): + +``` +1. Проверить память (0 токенов) +2. Прочитать 1 раздел rules2.md (50-100 токенов) +3. Выполнить без дополнительных проверок +4. Краткая валидация +``` + +**СРЕДНИЕ ЗАДАЧИ** (2-3 файла): + +``` +1. Проверить память (0 токенов) +2. Читать разделы по мере необходимости (по 50-100 токенов) +3. Применить сокращенный протокол +4. Синхронизировать только при изменении правил +``` + +**СЛОЖНЫЕ ЗАДАЧИ** (4+ файлов, архитектура): + +``` +1. Полный протокол (оправданный расход) +2. Поэтапная загрузка файлов +3. Промежуточные проверки вместо полной валидации +``` + +### 4. **УМНЫЕ ПРОВЕРКИ** + +#### 🎯 **СЕЛЕКТИВНАЯ ВАЛИДАЦИЯ:** + +``` +ВСЕГДА ПРОВЕРЯТЬ: +- Типизация предметов (ТОВАР ≠ ПРОДУКТ) +- Критические запреты +- Workflow статусы + +ПРОВЕРЯТЬ ПРИ НЕОБХОДИМОСТИ: +- Технические требования (только для tech-задач) +- Интеграции (только при работе с API) +- Производительность (только для оптимизации) +``` + +### 5. **ОПТИМИЗАЦИЯ СИНХРОНИЗАЦИИ** + +#### 🔄 **УМНАЯ СИНХРОНИЗАЦИЯ:** + +``` +НЕ СИНХРОНИЗИРОВАТЬ ЕСЛИ: +- Изменения не затрагивают rules2.md +- Добавлены только комментарии/документация +- Исправлены опечатки без изменения логики + +СИНХРОНИЗИРОВАТЬ ТОЛЬКО ЕСЛИ: +- Добавлены новые критические правила +- Изменены запреты или workflow +- Модифицированы правила валидации +``` + +## 📈 ЭКОНОМИЧЕСКИЕ ПРОТОКОЛЫ + +### 🟢 **ПРОТОКОЛ ДЛЯ ПРОСТЫХ ЗАДАЧ** (ЭКОНОМНЫЙ) + +``` +ОПРЕДЕЛЕНИЕ: 1 файл, простые правки, без изменения логики + +ПРОЦЕСС: +1. ✅ Проверить память (критические правила) +2. ✅ Прочитать ТОЛЬКО нужный раздел rules2.md +3. ✅ Выполнить изменение +4. ✅ Краткая проверка (3-4 ключевых пункта) +5. ✅ Уведомить о результате + +ЭКОНОМИЯ: ~70% токенов от полного протокола +``` + +### 🟡 **ПРОТОКОЛ ДЛЯ СРЕДНИХ ЗАДАЧ** (СБАЛАНСИРОВАННЫЙ) + +``` +ОПРЕДЕЛЕНИЕ: 2-3 файла, изменение логики, без архитектуры + +ПРОЦЕСС: +1. ✅ Определить сложность по памяти +2. ✅ Читать разделы поэтапно по мере необходимости +3. ✅ Применить основные проверки (не все) +4. ✅ Синхронизировать только при добавлении правил +5. ✅ Финальная валидация (сокращенная) + +ЭКОНОМИЯ: ~40% токенов от полного протокола +``` + +### 🔴 **ПРОТОКОЛ ДЛЯ СЛОЖНЫХ ЗАДАЧ** (ПОЛНЫЙ) + +``` +ОПРЕДЕЛЕНИЕ: 4+ файлов, архитектура, критические процессы + +ПРОЦЕСС: +1. ✅ Полный протокол (расход оправдан важностью) +2. ✅ Поэтапная загрузка вместо массового чтения +3. ✅ Все проверки и валидации +4. ✅ Полная синхронизация и документирование + +ЭКОНОМИЯ: Оптимизация через поэтапность, не сокращение проверок +``` + +## 💡 ПРАКТИЧЕСКИЕ РЕКОМЕНДАЦИИ + +### ДЛЯ ПОЛЬЗОВАТЕЛЯ: + +1. **🎯 Указывайте сложность задачи** в запросе: + + - "Простая правка в одном файле" + - "Средняя задача, 2-3 файла" + - "Сложная архитектурная задача" + +2. **📋 Группируйте связанные задачи** для экономии контекста + +3. **⚡ Используйте краткие формулировки** для простых задач + +### ДЛЯ МЕНЯ: + +1. **🧠 Максимально использовать память** вместо перечитывания +2. **📊 Читать файлы по частям** вместо целиком +3. **⚖️ Балансировать качество и экономию** в зависимости от сложности +4. **🔄 Синхронизировать селективно** только при реальной необходимости + +## 📊 ОЖИДАЕМАЯ ЭКОНОМИЯ + +``` +ПРОСТЫЕ ЗАДАЧИ: -70% токенов (с применением экономного протокола) +СРЕДНИЕ ЗАДАЧИ: -40% токенов (сбалансированный подход) +СЛОЖНЫЕ ЗАДАЧИ: +20% токенов НО -80% ошибок (долгосрочная экономия) + +ОБЩИЙ ЭФФЕКТ: Экономия 30-50% за счет предотвращения переделок +``` + +## 🎯 АКТИВАЦИЯ ОПТИМИЗАЦИИ + +Данные стратегии экономии активированы и будут применяться автоматически в зависимости от сложности задачи. + +**ПРИНЦИП**: Качество не в ущерб экономии, экономия не в ущерб качеству. diff --git a/violation-prevention-protocol.md b/violation-prevention-protocol.md new file mode 100644 index 0000000..c33cdb0 --- /dev/null +++ b/violation-prevention-protocol.md @@ -0,0 +1,169 @@ +# ПРОТОКОЛ ПРЕДОТВРАЩЕНИЯ НАРУШЕНИЙ AI + +## 🚨 СИСТЕМА ЖЕСТКИХ СТОП-СИГНАЛОВ + +### 🛑 ОБЯЗАТЕЛЬНЫЕ ОСТАНОВКИ ПЕРЕД ДЕЙСТВИЯМИ + +#### **СТОП-СИГНАЛ #1: ПЕРЕД ЛЮБЫМ АНАЛИЗОМ КОМПОНЕНТОВ** + +``` +❌ ЗАПРЕЩЕНО: Делать предположения о содержании файлов/компонентов +✅ ОБЯЗАТЕЛЬНО: +1. codebase_search для понимания +2. read_file для точного содержания +3. Только ПОСЛЕ изучения кода - выводы +``` + +#### **СТОП-СИГНАЛ #2: ПЕРЕД ИЗМЕНЕНИЕМ RULES2.MD** + +``` +❌ ЗАПРЕЩЕНО: Завершать работу без синхронизации +✅ ОБЯЗАТЕЛЬНО: +1. Внести изменения в rules2.md +2. НЕМЕДЛЕННО обновить development-checklist.md +3. Проверить соответствие изменений +``` + +#### **СТОП-СИГНАЛ #3: ПРИ НЕОПРЕДЕЛЕННОСТИ** + +``` +❌ ЗАПРЕЩЕНО: Гадать, предполагать, домысливать +✅ ОБЯЗАТЕЛЬНО: +1. СТОП - зафиксировать неопределенность +2. Использовать инструменты анализа (если применимо) +3. Задать прямой вопрос пользователю +``` + +#### **СТОП-СИГНАЛ #4: ПЕРЕД ВЫПОЛНЕНИЕМ СРЕДНИХ/СЛОЖНЫХ ЗАДАЧ** + +``` +❌ ЗАПРЕЩЕНО: Сразу приступать к работе +✅ ОБЯЗАТЕЛЬНО: +1. Применить соответствующий протокол из work-protocols.md +2. Создать план через todo_write +3. Пройти этап самопроверки +``` + +### 🔒 СИСТЕМА ПРИНУДИТЕЛЬНЫХ ПРОВЕРОК + +#### **ПРОВЕРКА #1: АНАЛИЗ КОДА** + +``` +Если задача включает анализ компонентов: +□ Использовал ли я codebase_search? +□ Прочитал ли я исходный код? +□ Основаны ли мои выводы на фактах, а не предположениях? +``` + +#### **ПРОВЕРКА #2: СИНХРОНИЗАЦИЯ ДОКУМЕНТАЦИИ** + +``` +Если изменил rules2.md: +□ Обновил ли development-checklist.md? +□ Добавил ли новые критические правила в чеклист? +□ Уведомил ли пользователя о синхронизации? +``` + +#### **ПРОВЕРКА #3: СОБЛЮДЕНИЕ ПРОТОКОЛОВ** + +``` +Для каждой задачи: +□ Определил ли сложность задачи? +□ Применил ли соответствующий протокол? +□ Создал ли план действий? +□ Провел ли финальную самопроверку? +``` + +### ⚡ СИСТЕМА АВТОМАТИЧЕСКИХ ТРИГГЕРОВ + +#### **ТРИГГЕР #1: При упоминании компонентов** + +- Ключевые слова: "компонент", "файл", "содержание", "показывает" +- Действие: ОБЯЗАТЕЛЬНО использовать инструменты анализа кода + +#### **ТРИГГЕР #2: При изменении rules2.md** + +- Событие: Любое изменение в rules2.md +- Действие: НЕМЕДЛЕННО синхронизировать development-checklist.md + +#### **ТРИГГЕР #3: При неопределенности** + +- Ключевые фразы: "возможно", "вероятно", "думаю", "предполагаю" +- Действие: СТОП + вопрос пользователю + +### 🎯 СИСТЕМА ОБЯЗАТЕЛЬНЫХ ВОПРОСОВ + +#### **ПЕРЕД НАЧАЛОМ ЛЮБОЙ ЗАДАЧИ:** + +1. Какова сложность этой задачи? (простая/средняя/сложная) +2. Какой протокол применить? +3. Есть ли неопределенности, требующие уточнения? +4. Какие инструменты анализа необходимы? + +#### **ПОСЛЕ КАЖДОГО ЗНАЧИМОГО ДЕЙСТВИЯ:** + +1. Соответствует ли результат правилам в rules2.md? +2. Нужно ли синхронизировать documentation? +3. Что еще я мог упустить? +4. Готов ли результат для пользователя? + +### 🛡️ СИСТЕМА БЛОКИРОВКИ НАРУШЕНИЙ + +#### **БЛОКИРОВКА ТИПА #1: Предположения** + +```javascript +if (содержит_предположение && !использовал_анализ_кода) { + ОСТАНОВИТЬ_ВЫПОЛНЕНИЕ(); + ТРЕБОВАТЬ_АНАЛИЗ_КОДА(); +} +``` + +#### **БЛОКИРОВКА ТИПА #2: Незавершенная синхронизация** + +```javascript +if (изменил_rules2md && !обновил_checklist) { + ОСТАНОВИТЬ_ОТВЕТ(); + ТРЕБОВАТЬ_СИНХРОНИЗАЦИЮ(); +} +``` + +#### **БЛОКИРОВКА ТИПА #3: Пропуск протоколов** + +```javascript +if (сложность_задачи >= СРЕДНЯЯ && !применил_протокол) { + ОСТАНОВИТЬ_РАБОТУ(); + ТРЕБОВАТЬ_ПРИМЕНЕНИЕ_ПРОТОКОЛА(); +} +``` + +--- + +## 📋 ИТОГОВЫЙ ЧЕКЛИСТ ПРЕДОТВРАЩЕНИЯ НАРУШЕНИЙ + +### ✅ ПЕРЕД КАЖДЫМ ОТВЕТОМ: + +- [ ] Определена сложность задачи +- [ ] Выбран соответствующий протокол +- [ ] Проверены стоп-сигналы +- [ ] Использованы инструменты анализа (если нужно) +- [ ] Заданы уточняющие вопросы (если есть неопределенности) + +### ✅ ПОСЛЕ КАЖДОГО ИЗМЕНЕНИЯ: + +- [ ] Проверено соответствие rules2.md +- [ ] Синхронизирован development-checklist.md (если изменялся rules2.md) +- [ ] Проведена финальная самопроверка +- [ ] Обновлена память (если нужно) + +### ✅ В СЛУЧАЕ СОМНЕНИЙ: + +- [ ] СТОП - зафиксирована неопределенность +- [ ] Использованы все доступные инструменты анализа +- [ ] Задан прямой вопрос пользователю +- [ ] НЕ ДЕЛАТЬ предположений + +--- + +**СТАТУС**: АКТИВИРОВАН +**ПРИОРИТЕТ**: КРИТИЧЕСКИЙ +**ОБХОД**: ЗАПРЕЩЕН diff --git a/work-protocols.md b/work-protocols.md new file mode 100644 index 0000000..851dc73 --- /dev/null +++ b/work-protocols.md @@ -0,0 +1,217 @@ +# ПРОТОКОЛЫ РАБОТЫ ДЛЯ 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