
АРХИТЕКТУРНЫЕ ИЗМЕНЕНИЯ: - Полная миграция на URL структуру /{role}/{domain}/{section}/{view} - Удаление всех старых директорий (/fulfillment-supplies/, /fulfillment-warehouse/, etc.) - Модульная архитектура seller warehouse с URL-based routing - Система rollback через комментарии для безопасных изменений НОВЫЕ КОМПОНЕНТЫ И СТРАНИЦЫ: - Создание всех недостающих страниц для FULFILLMENT, SELLER ролей - Модульный layout для seller warehouse с 3 табами - Извлечение переиспользуемого хука useWBWarehouseData ИСПРАВЛЕНИЯ БЕЗОПАСНОСТИ: - Добавление 'use client' директив во все WHOLESALE и LOGISTICS страницы - Исправление отсутствующих security guards (useRoleGuard + AuthGuard) - Обновление navigation конфигураций для всех ролей ДОКУМЕНТАЦИЯ: - Создание MIGRATION_GUIDE_V1_TO_V2.md: 8-этапное руководство по миграции - Создание NEXTJS_BEST_PRACTICES.md: паттерны для Next.js 13+ в SFERA - Обновление URL_ROUTING_RULES.md с seller warehouse и rollback системой - Обновление SIDEBAR_ARCHITECTURE_IMPLEMENTATION.md с новыми метриками - Обновление INDEX.md с новыми документами Development раздела ИСПРАВЛЕНИЯ ESLINT: - Удаление неиспользуемых импортов и переменных - Исправление import/order ошибок в модульных компонентах - Исправление react/no-unescaped-entities - Перенос длинных строк для соответствия max-len 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
13 KiB
13 KiB
📋 ПРАВИЛА URL И МАРШРУТИЗАЦИИ СИСТЕМЫ SFERA
Дата создания: 28.08.2025
Статус: ✅ Активно
Связанные документы:
🎯 ОСНОВНЫЕ ПРИНЦИПЫ
ФОРМУЛА URL
/{role}/{domain}/{section}/{view}
КЛЮЧЕВЫЕ ПРАВИЛА
-
РОЛЕВОЕ РАЗДЕЛЕНИЕ
- Каждая роль имеет свой базовый путь
/seller
- кабинет селлера/fulfillment
- кабинет фулфилмента/wholesale
- кабинет поставщика/logistics
- кабинет логистики
-
ИЕРАРХИЧЕСКАЯ СТРУКТУРА
- От общего к частному
- Максимум 4 уровня вложенности
-
ИМЕНОВАНИЕ
- Английские термины
- Множественное число для коллекций:
supplies/
,orders/
- Единственное число для действий:
create/
- Дефисы для составных слов:
seller-consumables
🏢 URL ПО РОЛЯМ
🛒 SELLER (Селлер)
/seller/
├── home # Главная селлера
├── supplies/ # Поставки селлера
│ ├── goods/ # Товары селлера → склад ФФ
│ │ ├── cards # Вид: карточки товаров
│ │ └── suppliers # Вид: по поставщикам
│ ├── consumables # Расходники селлера → склад ФФ
│ └── marketplace/ # Поставки на маркетплейсы
│ ├── wildberries # Поставки на WB
│ └── ozon # Поставки на Ozon
├── warehouse/ # Складские операции селлера
│ ├── fulfillment # Склад фулфилмент (данные из ФФ)
│ ├── wildberries # Склад Wildberries
│ └── storage # Мой склад
├── create/ # Создание поставок
│ ├── goods # Создать поставку товаров
│ └── consumables # Создать поставку расходников
├── statistics # Статистика селлера
├── messenger # Мессенджер
├── economics # Экономика
├── partners # Партнёры
├── market # Маркет
├── exchange # Биржа
└── settings # Настройки
Примеры URL:
/seller/home
- главная страница селлера/seller/supplies/goods/cards
- товары-карточки/seller/supplies/consumables
- расходники селлера/seller/supplies/marketplace/wildberries
- поставки на WB/seller/warehouse/fulfillment
- склад фулфилмент/seller/warehouse/wildberries
- склад Wildberries/seller/warehouse/storage
- мой склад/seller/create/consumables
- создание расходников
🏭 FULFILLMENT (Фулфилмент)
/fulfillment/
├── home # Главная фулфилмента
├── supplies/ # Входящие поставки на ФФ
│ ├── goods/ # Товары от селлеров
│ │ ├── new # Новые поставки
│ │ ├── receiving # Ожидают приемки
│ │ └── received # Принятые на склад
│ ├── consumables # Расходники ФФ
│ └── seller-consumables # Расходники селлеров (на хранении)
├── warehouse/ # Главная складских операций
│ └── fulfillment-consumables/ # Подраздел: расходники фулфилмента
├── create/ # Создание заказов ФФ
│ └── consumables # Заказ расходников ФФ
└── statistics # Статистика фулфилмента
Примеры URL:
/fulfillment/home
- главная страница фулфилмента/fulfillment/supplies/goods/receiving
- товары на приемке/fulfillment/supplies/consumables
- расходники ФФ/fulfillment/supplies/seller-consumables
- расходники селлеров/fulfillment/warehouse
- главная складских операций/fulfillment/warehouse/fulfillment-consumables
- расходники фулфилмента
🏪 WHOLESALE (Поставщик)
/wholesale/
├── home # Главная поставщика
├── orders/ # Входящие заказы (единый раздел)
│ └── (включает товары + расходники ФФ + расходники селлеров)
├── catalog/ # Каталог товаров поставщика
│ ├── goods # Товары для продажи
│ └── consumables # Расходники
└── statistics # Статистика поставщика
Примеры URL:
/wholesale/home
- главная страница поставщика/wholesale/orders
- все входящие заказы/wholesale/catalog/goods
- каталог товаров/wholesale/catalog/consumables
- каталог расходников
🚛 LOGISTICS (Логистика)
/logistics/
├── home # 🏠 Главная логистики
├── orders/ # 🚛 Перевозки (логистические заказы)
│ ├── pending # Ожидают подтверждения
│ ├── confirmed # Подтвержденные
│ ├── in-transit # В пути
│ └── delivered # Доставленные
├── messenger # 💬 Мессенджер
├── economics # 💰 Экономика
├── partners # 🤝 Партнёры
├── market # 🏪 Маркет
├── exchange # 📈 Биржа
├── routes # 🗺️ Управление маршрутами
└── settings # ⚙️ Настройки
Примеры URL (в порядке сайдбара):
/logistics/home
- 🏠 главная страница логистики/logistics/orders/pending
- 🚛 ожидающие заказы (перевозки)/logistics/messenger
- 💬 мессенджер логиста/logistics/economics
- 💰 экономика логистической компании/logistics/partners
- 🤝 партнёры логистики/logistics/market
- 🏪 маркет логистических услуг/logistics/exchange
- 📈 биржа логистических услуг/logistics/settings
- ⚙️ настройки профиля
🔄 РЕДИРЕКТЫ ДЛЯ СОВМЕСТИМОСТИ
Старые URL автоматически перенаправляются на новые:
// Старый URL → Новый URL
/supplies → /seller/supplies/goods/cards
/fulfillment-supplies → /fulfillment/supplies/goods/receiving
/supplier-orders → /wholesale/orders
/logistics-orders → /logistics/orders/pending
/home → ролевой редирект на /[role]/home
📏 ТЕХНИЧЕСКИЕ ДЕТАЛИ РЕАЛИЗАЦИИ
ДЕФОЛТНЫЕ СТРАНИЦЫ
При переходе на корневой URL роли происходит редирект:
/seller → /seller/home
/fulfillment → /fulfillment/home
/wholesale → /wholesale/home
/logistics → /logistics/home
СТРУКТУРА ФАЙЛОВ
src/app/
├── seller/
│ ├── page.tsx # Редирект на дефолтную страницу
│ ├── supplies/
│ │ ├── page.tsx # Редирект на goods/cards
│ │ ├── goods/
│ │ │ ├── page.tsx # Редирект на cards
│ │ │ ├── cards/page.tsx # Основная страница
│ │ │ └── suppliers/page.tsx
│ │ └── consumables/page.tsx
│ └── create/...
├── fulfillment/...
├── wholesale/...
└── logistics/...
ОБРАБОТКА НАВИГАЦИИ В КОМПОНЕНТАХ
Компоненты определяют активные табы на основе текущего URL:
// В supplies-dashboard.tsx
useEffect(() => {
const currentPath = window.location.pathname
if (currentPath.includes('/seller/supplies/goods/cards')) {
setActiveTab('fulfillment')
setActiveSubTab('goods')
setActiveThirdTab('cards')
}
// ... другие проверки
}, [])
🚀 ПРЕИМУЩЕСТВА СИСТЕМЫ
- SEO-оптимизация - понятные и описательные URL
- Масштабируемость - легко добавлять новые разделы
- Навигация - интуитивная структура для пользователей
- Аналитика - точное отслеживание путей пользователей
- Поддержка - четкое соответствие бизнес-логике
⚠️ ВАЖНЫЕ ЗАМЕЧАНИЯ
- V1/V2 автоопределение - система поставок автоматически определяет версию данных, но URL остается единым
- Права доступа - URL проверяются на уровне middleware для соответствия роли пользователя
- Локализация - URL остаются на английском, перевод только в UI
- Sidebar изоляция - каждая роль имеет отдельный sidebar компонент (см. SIDEBAR_ARCHITECTURE_RULES.md)
🔄 МИГРАЦИЯ V1 → V2 С ROLLBACK
СИСТЕМА ROLLBACK ЧЕРЕЗ КОММЕНТАРИИ
Все критические компоненты содержат закомментированные старые версии для быстрого отката:
// Вариант 1: Новый URL (активный)
router.push('/fulfillment/supplies/detailed-supplies')
// Вариант 2: Старый URL (для отката)
// router.push('/fulfillment-supplies/detailed-supplies')
КОМПОНЕНТЫ С ROLLBACK:
create-fulfillment-consumables-supply-v2.tsx
modular-version.tsx
monolithic-version.tsx
seller-modular-version.tsx
multilevel-supplies-table/index.tsx
КОМАНДЫ ROLLBACK:
"откати [описание] через комментарии"
- переключить на старую версию"переключи на вариант 2"
- активировать закомментированный код"очисти комментарии"
- удалить неактивные варианты
📝 ИСТОРИЯ ИЗМЕНЕНИЙ
Дата | Версия | Описание | Автор |
---|---|---|---|
28.08.2025 | 1.0 | Первая версия правил URL | AI |
28.08.2025 | 1.1 | Миграция /supplies → /seller | AI |
28.08.2025 | 1.2 | Связь с SIDEBAR_ARCHITECTURE_RULES.md | AI |
30.08.2025 | 2.0 | Полная миграция V1→V2 + rollback система | AI |