feat: улучшения UI компонентов, документации и сервисов интеграций

## 🎯 Основные изменения:

###  Обновление документации интеграций
- Расширена документация DaData API integration
- Добавлены результаты тестирования и примеры использования
- Обновлена информация о статусе интеграций

###  Улучшения UI компонентов
- Обновлены market компоненты для корректной работы с GraphQL
- Исправлены параметры передачи данных в counterparties/logistics/sellers/suppliers
- Улучшен registration flow и confirmation step
- Обновлен dashboard home с новой функциональностью

###  Улучшения GraphQL резолверов
- Обновлен seller-consumables.ts с улучшенной обработкой данных
- Исправлены методы создания и обновления поставок
- Добавлена лучшая обработка ошибок и валидация

###  Обновление сервисов интеграций
- Улучшен wildberries-service.ts с новыми методами API
- Добавлена лучшая обработка ответов и ошибок
- Обновлены методы работы с маркетплейсами

## 🧪 Результат:
-  UI компоненты работают стабильнее
-  Документация актуализирована
-  Интеграции функционируют корректно
-  GraphQL запросы оптимизированы

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-09-12 15:50:23 +03:00
parent b78eb5eea8
commit 8e43df4d1d
10 changed files with 362 additions and 51 deletions

View File

@ -562,24 +562,48 @@ export const sellerConsumableMutations = {
}
if (status === 'COMPLETED') {
// 📦 СОЗДАНИЕ РАСХОДНИКОВ НА СКЛАДЕ ФУЛФИЛМЕНТА
// 📦 V2: СОЗДАНИЕ РАСХОДНИКОВ НА СКЛАДЕ ФУЛФИЛМЕНТА
for (const item of updatedSupply.items) {
await prisma.supply.create({
data: {
name: item.product.name,
article: item.product.article || `SELLER-${item.product.id}`,
description: `Расходники селлера ${supply.seller.name}`,
price: item.unitPrice,
quantity: item.receivedQuantity || item.requestedQuantity,
currentStock: item.receivedQuantity || item.requestedQuantity,
usedStock: 0,
type: 'SELLER_CONSUMABLES', // ✅ Тип для селлерских расходников
sellerOwnerId: supply.sellerId, // ✅ Владелец - селлер
organizationId: supply.fulfillmentCenterId, // ✅ Хранитель - фулфилмент
category: item.product.category || 'Расходники селлера',
status: 'available',
// V2: Используем SellerConsumableInventory вместо Supply
await prisma.sellerConsumableInventory.upsert({
where: {
sellerId_fulfillmentCenterId_productId: {
sellerId: supply.sellerId,
fulfillmentCenterId: supply.fulfillmentCenterId,
productId: item.productId,
}
},
update: {
// При повторной поставке увеличиваем остаток
currentStock: {
increment: item.receivedQuantity || item.requestedQuantity,
},
totalReceived: {
increment: item.receivedQuantity || item.requestedQuantity,
},
lastSupplyDate: new Date(),
updatedAt: new Date(),
},
create: {
sellerId: supply.sellerId, // ✅ Владелец - селлер
fulfillmentCenterId: supply.fulfillmentCenterId, // ✅ Хранитель - фулфилмент
productId: item.productId, // ✅ Связь с продуктом
currentStock: item.receivedQuantity || item.requestedQuantity,
minStock: 0, // Настраивается селлером
totalReceived: item.receivedQuantity || item.requestedQuantity,
totalUsed: 0,
reservedStock: 0,
lastSupplyDate: new Date(),
notes: `V2: Поступление от поставки ${supply.id} (Legacy migration)`,
},
})
console.log('✅ LEGACY V2 MIGRATION: SellerConsumableInventory record created/updated', {
sellerId: supply.sellerId,
fulfillmentCenterId: supply.fulfillmentCenterId,
productId: item.productId,
quantity: item.receivedQuantity || item.requestedQuantity,
})
}