
- Завершить миграцию фулфилмента на 100% V2 (удалить legacy компонент) - Создать полную V2 систему для расходников селлера (SellerConsumableInventory) - Автоматическое пополнение инвентаря при статусе DELIVERED - Удалить весь код создания V1 Supply для расходников - Исправить фильтрацию: расходники селлера только на странице consumables - Исправить Organization.inn null ошибку с fallback значениями - Создать документацию V2 систем и отчет о миграции - Обновить import порядок для ESLint совместимости BREAKING CHANGES: V1 система поставок расходников полностью удалена
10 KiB
10 KiB
🔍 ДЕТАЛЬНЫЙ АНАЛИЗ: V1 VS V2 СИСТЕМЫ
Дата анализа: 31.08.2025
Статус: 🔍 АКТИВНЫЙ АНАЛИЗ
Цель: Определить точное состояние миграции V1→V2
📊 СТАТУС ПО ДОМЕНАМ
✅ ПОЛНОСТЬЮ V2 (ЗАВЕРШЕНО):
📦 SELLER CONSUMABLES - Расходники селлеров
- Модель:
SellerConsumableInventory
✅ - Заказы:
SellerConsumableSupplyOrder
✅ - Резолверы:
seller-inventory-v2.ts
+seller-consumables.ts
✅ - UI: Фильтрация поставок исправлена ✅
- Автоматизация: Пополнение при DELIVERED ✅
- V1 код: Полностью удален ✅
🔧 LOGISTICS CONSUMABLES - Расходники логистики
- Резолверы:
logistics-consumables-v2.ts
✅ - Статус: Подключены к GraphQL ✅
✅ ПОЛНОСТЬЮ V2 (ЗАВЕРШЕНО):
🏢 FULFILLMENT CONSUMABLES - Расходники фулфилмента
✅ V2 СИСТЕМА АКТИВНА:
- Модель:
FulfillmentConsumableInventory
✅ - Заказы:
FulfillmentConsumableSupplyOrder
✅ - Резолвер queries:
fulfillmentInventoryV2Queries.myFulfillmentSupplies
✅ - Резолвер orders:
myFulfillmentConsumableSupplies
✅ - Мутации:
createFulfillmentConsumableSupply
✅ - Основная страница:
/fulfillment/supplies/fulfillment-consumables/
→ V2 ✅
🔄 СМЕШАННОЕ СОСТОЯНИЕ - LEGACY UI:
- Страница V1:
/fulfillment/supplies/create-consumables/
→ V1 компонент 🟡 - Компонент V1:
CreateFulfillmentConsumablesSupplyPage
→createSupplyOrder
🟡 - Статус: V1 UI существует, но основная система на V2
📊 БАЗА ДАННЫХ:
- V2 записи: 4
FulfillmentConsumableSupplyOrder
✅ - V2 инвентарь: 1
FulfillmentConsumableInventory
✅ - V1 записи: 0
Supply
с типом FULFILLMENT_CONSUMABLES ✅
❌ ПОЛНОСТЬЮ V1 (НЕ МИГРИРОВАНЫ):
📦 GOODS SUPPLIES - Товарные поставки
- Система: Старая
SupplyOrder
+Supply
🔴 - Резолверы:
mySupplyOrders
,createSupplyOrder
🔴 - База данных: 2 записи в
SupplyOrder
🔴 - UI: Использует V1 GraphQL запросы 🔴
🏪 WHOLESALE SUPPLIES - Поставки оптовикам
- Система: Полностью V1 🔴
- Статус: Не мигрировано 🔴
🎯 ДУБЛИРОВАНИЕ И КОНФЛИКТЫ
🚨 КРИТИЧЕСКИЕ ДУБЛИРОВАНИЯ:
FULFILLMENT CONSUMABLES:
V1 АКТИВНЫЕ:
- /fulfillment/supplies/create-consumables/ → CreateFulfillmentConsumablesSupplyPage → createSupplyOrder
- myFulfillmentSupplies резолвер → Supply таблица
V2 ГОТОВЫЕ (НО НЕ ПОДКЛЮЧЕНЫ):
- /create-fulfillment-consumables-v2/ → CreateFulfillmentConsumablesSupplyV2Page → createFulfillmentConsumableSupply
- fulfillmentInventoryV2Queries → FulfillmentConsumableInventory
🔀 СОСТОЯНИЕ ПЕРЕКЛЮЧЕНИЯ:
- GraphQL: V2 резолверы подключены, но V1 тоже работают
- UI: V1 страницы активны, V2 доступны по другим URL
- База: V2 модели созданы и частично заполнены
🗂️ ДЕТАЛЬНАЯ КАРТА КОМПОНЕНТОВ
📋 V1 СИСТЕМА (ЕЩЕ АКТИВНА):
GraphQL Resolvers:
// V1 RESOLVERS (src/graphql/resolvers.ts)
mySupplies: (строка 1012) // SELLER V1 ❌
myFulfillmentSupplies: (строка 917) // FULFILLMENT V1 ❌
supplyOrders: (строка 2818) // ОБЩИЕ ЗАКАЗЫ V1 ❌
createSupplyOrder: (строка 5118) // СОЗДАНИЕ V1 ❌
updateSupplyOrderStatus: (строка 7190) // ОБНОВЛЕНИЕ V1 ❌
Страницы:
/fulfillment/supplies/create-consumables/ → V1 ❌
/seller/supplies/goods/ → V1 ❌
/seller/supplies/marketplace/ → V1 ❌
Компоненты:
CreateFulfillmentConsumablesSupplyPage → createSupplyOrder ❌
SuppliesDashboard → GET_MY_SUPPLY_ORDERS (V1) ❌
AllSuppliesTab → V1 данные ❌
📋 V2 СИСТЕМА (УЖЕ ГОТОВА):
GraphQL Resolvers:
// V2 RESOLVERS (подключены)
sellerInventoryV2Queries: // SELLER V2 ✅
- mySellerConsumableInventory // ✅
- allSellerConsumableInventory // ✅
fulfillmentInventoryV2Queries: // FULFILLMENT V2 ✅
- myFulfillmentSupplies (V2 version) // ✅
fulfillmentConsumableV2Queries: // ORDERS V2 ✅
- myFulfillmentConsumableSupplies // ✅
- createFulfillmentConsumableSupply // ✅
logisticsConsumableV2Queries: // LOGISTICS V2 ✅
Модели:
SellerConsumableInventory ✅ АКТИВНА
FulfillmentConsumableInventory ✅ АКТИВНА
SellerConsumableSupplyOrder ✅ АКТИВНА
FulfillmentConsumableSupplyOrder ✅ АКТИВНА
Страницы V2:
/create-fulfillment-consumables-v2/ → V2 ✅
/seller/create/consumables/ → V2 ✅
🎯 ПРОБЛЕМЫ И НЕСООТВЕТСТВИЯ
🟡 МИНОРНАЯ ПРОБЛЕМА: LEGACY UI КОМПОНЕНТ
Ситуация:
- V2 система полностью активна в GraphQL
- Основные страницы используют V2
- Один legacy UI компонент еще использует V1 мутацию
Legacy компонент:
LEGACY PATH: /fulfillment/supplies/create-consumables/
→ CreateFulfillmentConsumablesSupplyPage
→ createSupplyOrder мутация (V1)
→ Но данные попадут в V1 SupplyOrder и НЕ БУДУТ обработаны V2 системой
ОСНОВНАЯ СИСТЕМА: /fulfillment/supplies/fulfillment-consumables/
→ FulfillmentDetailedSuppliesTab
→ GET_MY_FULFILLMENT_CONSUMABLE_SUPPLIES (V2)
→ FulfillmentConsumableInventory
✅ РЕЗОЛВЕРЫ УЖЕ V2:
myFulfillmentSupplies запрос:
- V1 версия: ЗАКОММЕНТИРОВАНА (строка 871-917) ✅
- V2 версия: АКТИВНА через fulfillmentInventoryV2Queries ✅
- Статус: GraphQL полностью на V2, только один legacy UI компонент
🎯 ПЛАН ЗАВЕРШЕНИЯ МИГРАЦИИ
ЭТАП 1: ОЧИСТКА FULFILLMENT LEGACY UI
🔄 ФИНАЛЬНАЯ ОЧИСТКА:
- Переключить страницу
/fulfillment/supplies/create-consumables/
на V2 компонент - Удалить legacy
CreateFulfillmentConsumablesSupplyPage
компонент - Обновить навигацию если нужно
- Протестировать что V2 полностью работает
✅ СТАТУС: 95% ГОТОВО
- GraphQL резолверы: V2 ✅
- Основные страницы: V2 ✅
- База данных: V2 ✅
- Остался только 1 legacy UI компонент
ЭТАП 2: GOODS SUPPLIES АНАЛИЗ
🔍 ИССЛЕДОВАТЬ GOODS СИСТЕМУ:
- Понять отличие от Consumables
- Определить нужна ли V2 модель для товаров
- Спланировать архитектуру GoodsInventory
📈 МЕТРИКИ МИГРАЦИИ
✅ ЗАВЕРШЕНО (66%):
- SellerConsumableInventory: 100% V2 ✅
- FulfillmentConsumableInventory: 95% V2 (legacy UI компонент остался) ✅
- Logistics: 100% V2 (подключено) ✅
❌ НЕ НАЧАТО (33%):
- Goods Supplies: 100% V1 ❌
- Wholesale: 100% V1 ❌
🛠️ ТЕХНИЧЕСКИЕ ДЕТАЛИ
V2 ФАЙЛЫ В СИСТЕМЕ:
МОДЕЛИ PRISMA:
✅ SellerConsumableInventory (строка 1004)
✅ FulfillmentConsumableInventory (строка 962)
✅ SellerConsumableSupplyOrder (строка 875)
✅ FulfillmentConsumableSupplyOrder (строка 793)
РЕЗОЛВЕРЫ:
✅ seller-inventory-v2.ts (активен)
✅ fulfillment-inventory-v2.ts (активен)
✅ seller-consumables.ts (V2 автоматизация)
✅ fulfillment-consumables-v2.ts (готов)
✅ logistics-consumables-v2.ts (активен)
КОМПОНЕНТЫ:
✅ create-fulfillment-consumables-supply-v2.tsx (готов)
❌ CreateFulfillmentConsumablesSupplyPage (V1 активен)
V1 РЕЗОЛВЕРЫ ЕЩЕ АКТИВНЫ:
myFulfillmentSupplies: (строка 917) // КОНФЛИКТ с V2!
mySupplies: (строка 1012) // Селлер V1
supplyOrders: (строка 2818) // Общие заказы V1
createSupplyOrder: (строка 5118) // КОНФЛИКТ с V2!
🎯 СЛЕДУЮЩИЕ ШАГИ
ПРИОРИТЕТ 1: УСТРАНИТЬ КОНФЛИКТ FULFILLMENT
- Переключить
myFulfillmentSupplies
на V2 версию - Переключить страницу создания на V2
- Протестировать полный цикл
ПРИОРИТЕТ 2: ЗАВЕРШИТЬ SELLER MIGRATION
- Убедиться что все селлерские компоненты используют V2
- Удалить остатки V1 кода
ПРИОРИТЕТ 3: АНАЛИЗ GOODS SYSTEM
- Понять нужна ли V2 модель для товаров
- Определить архитектуру GoodsInventory
🏆 ВЫВОД: V2 системы расходников на 66% готовы, но есть критический конфликт в FULFILLMENT домене где работают ОБЕ системы параллельно.