fix: завершение модуляризации системы и финальная организация проекта

## Структурные изменения:

### 📁 Организация архивных файлов:
- Перенос всех устаревших правил в legacy-rules/
- Создание структуры docs-and-reports/ для отчетов
- Архивация backup файлов в legacy-rules/backups/

### 🔧 Критические компоненты:
- src/components/supplies/multilevel-supplies-table.tsx - многоуровневая таблица поставок
- src/components/supplies/components/recipe-display.tsx - отображение рецептур
- src/components/fulfillment-supplies/fulfillment-goods-orders-tab.tsx - вкладка товарных заказов

### 🎯 GraphQL обновления:
- Обновление mutations.ts, queries.ts, resolvers.ts, typedefs.ts
- Синхронизация с Prisma schema.prisma
- Backup файлы для истории изменений

### 🛠️ Утилитарные скрипты:
- 12 новых скриптов в scripts/ для анализа данных
- Скрипты проверки фулфилмент-пользователей
- Утилиты очистки и фиксации данных поставок

### 📊 Тестирование:
- test-fulfillment-filtering.js - тестирование фильтрации фулфилмента
- test-full-workflow.js - полный workflow тестирование

### 📝 Документация:
- logistics-statistics-warehouse-rules.md - объединенные правила модулей
- Обновление журналов модуляризации и разработки

###  Исправления ESLint:
- Исправлены критические ошибки в sidebar.tsx
- Исправлены ошибки типизации в multilevel-supplies-table.tsx
- Исправлены неиспользуемые переменные в goods-supplies-table.tsx
- Заменены типы any на строгую типизацию
- Исправлены console.log на console.warn

## Результат:
- Завершена полная модуляризация системы
- Организована архитектура legacy файлов
- Добавлены критически важные компоненты таблиц
- Создана полная инфраструктура тестирования
- Исправлены все критические ESLint ошибки
- Сохранены 103 незакоммиченных изменения

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-08-22 10:31:43 +03:00
parent 621770e765
commit 89257c75b5
86 changed files with 25406 additions and 942 deletions

View File

@ -0,0 +1,163 @@
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
async function clearAllCabinetsData() {
try {
console.log('🧹 ОЧИСТКА ДАННЫХ ВСЕХ КАБИНЕТОВ...')
console.log('⚠️ Организации и пользователи НЕ УДАЛЯЮТСЯ')
console.log('🗑️ Удаляются только данные внутри кабинетов')
console.log('=' .repeat(50))
// 1. СКЛАДЫ И ПОСТАВКИ
console.log('\n1⃣ ОЧИСТКА СКЛАДОВ И ПОСТАВОК:')
console.log(' 🗑️ Удаляем SupplyOrderItem...')
const deletedOrderItems = await prisma.supplyOrderItem.deleteMany({})
console.log(` ✅ Удалено: ${deletedOrderItems.count}`)
console.log(' 🗑️ Удаляем SupplyOrder...')
const deletedOrders = await prisma.supplyOrder.deleteMany({})
console.log(` ✅ Удалено: ${deletedOrders.count}`)
console.log(' 🗑️ Удаляем Supply (расходники на складах)...')
const deletedSupplies = await prisma.supply.deleteMany({})
console.log(` ✅ Удалено: ${deletedSupplies.count}`)
// 2. ТОВАРЫ ПОСТАВЩИКОВ
console.log('\n2⃣ ОЧИСТКА ТОВАРОВ ПОСТАВЩИКОВ:')
console.log(' 🗑️ Удаляем Product (товары в каталогах поставщиков)...')
const deletedProducts = await prisma.product.deleteMany({})
console.log(` ✅ Удалено: ${deletedProducts.count}`)
// 3. УСЛУГИ ФУЛФИЛМЕНТА
console.log('\n3⃣ ОЧИСТКА УСЛУГ ФУЛФИЛМЕНТА:')
console.log(' 🗑️ Удаляем Service (услуги)...')
const deletedServices = await prisma.service.deleteMany({})
console.log(` ✅ Удалено: ${deletedServices.count}`)
console.log(' 🗑️ Удаляем Logistics (логистические маршруты)...')
const deletedLogistics = await prisma.logistics.deleteMany({})
console.log(` ✅ Удалено: ${deletedLogistics.count}`)
// 4. СОТРУДНИКИ
console.log('\n4⃣ ОЧИСТКА СОТРУДНИКОВ:')
console.log(' 🗑️ Удаляем Employee (сотрудники)...')
const deletedEmployees = await prisma.employee.deleteMany({})
console.log(` ✅ Удалено: ${deletedEmployees.count}`)
// 5. КОРЗИНЫ И ИЗБРАННОЕ
console.log('\n5⃣ ОЧИСТКА КОРЗИН И ИЗБРАННОГО:')
console.log(' 🗑️ Удаляем CartItem...')
const deletedCartItems = await prisma.cartItem.deleteMany({})
console.log(` ✅ Удалено: ${deletedCartItems.count}`)
console.log(' 🗑️ Удаляем Cart...')
const deletedCarts = await prisma.cart.deleteMany({})
console.log(` ✅ Удалено: ${deletedCarts.count}`)
console.log(' 🗑️ Удаляем Favorite...')
// Проверяем существование таблицы Favorite
let deletedFavorites = { count: 0 }
try {
deletedFavorites = await prisma.favorite.deleteMany({})
} catch (error) {
console.log(' ⚠️ Таблица Favorite не найдена, пропускаем')
}
console.log(` ✅ Удалено: ${deletedFavorites.count}`)
// 6. РЕКЛАМА И СТАТИСТИКА
console.log('\n6⃣ ОЧИСТКА РЕКЛАМЫ И СТАТИСТИКИ:')
console.log(' 🗑️ Удаляем ExternalAd (внешняя реклама)...')
const deletedAds = await prisma.externalAd.deleteMany({})
console.log(` ✅ Удалено: ${deletedAds.count}`)
// 7. СООБЩЕНИЯ
console.log('\n7⃣ ОЧИСТКА СООБЩЕНИЙ:')
console.log(' 🗑️ Удаляем Message (сообщения в мессенджере)...')
const deletedMessages = await prisma.message.deleteMany({})
console.log(` ✅ Удалено: ${deletedMessages.count}`)
// 8. КЕШИ И ВСПОМОГАТЕЛЬНЫЕ ДАННЫЕ
console.log('\n8⃣ ОЧИСТКА КЕШЕЙ:')
console.log(' 🗑️ Удаляем WBWarehouseCache...')
const deletedWarehouseCache = await prisma.wBWarehouseCache.deleteMany({})
console.log(` ✅ Удалено: ${deletedWarehouseCache.count}`)
console.log(' 🗑️ Удаляем SellerStatsCache...')
const deletedStatsCache = await prisma.sellerStatsCache.deleteMany({})
console.log(` ✅ Удалено: ${deletedStatsCache.count}`)
// 9. WILDBERRIES ПОСТАВКИ
console.log('\n9⃣ ОЧИСТКА ПОСТАВОК WILDBERRIES:')
console.log(' 🗑️ Удаляем WildberriesSupplyItem...')
let deletedWBItems = { count: 0 }
try {
deletedWBItems = await prisma.wildberriesSupplyItem.deleteMany({})
} catch (error) {
console.log(' ⚠️ Таблица WildberriesSupplyItem не найдена, пропускаем')
}
console.log(` ✅ Удалено: ${deletedWBItems.count}`)
console.log(' 🗑️ Удаляем WildberriesSupply...')
let deletedWBSupplies = { count: 0 }
try {
deletedWBSupplies = await prisma.wildberriesSupply.deleteMany({})
} catch (error) {
console.log(' ⚠️ Таблица WildberriesSupply не найдена, пропускаем')
}
console.log(` ✅ Удалено: ${deletedWBSupplies.count}`)
// ИТОГИ
console.log('\n' + '='.repeat(50))
console.log('✅ ОЧИСТКА ЗАВЕРШЕНА УСПЕШНО!')
console.log('')
console.log('🗑️ ЧТО БЫЛО УДАЛЕНО:')
console.log(` 📦 Заказы поставок: ${deletedOrders.count}`)
console.log(` 📋 Элементы заказов: ${deletedOrderItems.count}`)
console.log(` 🏪 Расходники на складах: ${deletedSupplies.count}`)
console.log(` 📦 Товары поставщиков: ${deletedProducts.count}`)
console.log(` 🛠️ Услуги фулфилмента: ${deletedServices.count}`)
console.log(` 🚚 Логистические маршруты: ${deletedLogistics.count}`)
console.log(` 👥 Сотрудники: ${deletedEmployees.count}`)
console.log(` 🛒 Корзины: ${deletedCarts.count}`)
console.log(` 📋 Элементы корзин: ${deletedCartItems.count}`)
console.log(` ❤️ Избранное: ${deletedFavorites.count}`)
console.log(` 📢 Реклама: ${deletedAds.count}`)
console.log(` 💬 Сообщения: ${deletedMessages.count}`)
console.log(` 📊 Кеш WB: ${deletedWarehouseCache.count}`)
console.log(` 📈 Кеш статистики: ${deletedStatsCache.count}`)
console.log(` 📦 Поставки WB: ${deletedWBSupplies.count}`)
console.log(` 📋 Элементы WB: ${deletedWBItems.count}`)
console.log('\n✅ ЧТО ОСТАЛОСЬ НЕТРОНУТЫМ:')
console.log(' 👤 Пользователи (User)')
console.log(' 🏢 Организации (Organization)')
console.log(' 🤝 Контрагенты (Counterparty)')
console.log(' 📋 Запросы на партнерство (CounterpartyRequest)')
console.log(' 📂 Категории товаров (Category)')
console.log(' 🎖️ Рефералы и сферы (ReferralTransaction)')
console.log(' 🔑 API ключи (MarketplaceApiKey)')
console.log('\n🎯 РЕЗУЛЬТАТ:')
console.log(' Все кабинеты очищены от данных')
console.log(' Система готова для чистого тестирования')
console.log(' Пользователи могут войти и начать работу заново')
} catch (error) {
console.error('❌ ОШИБКА при очистке:', error)
console.error(' Детали:', error.message)
} finally {
await prisma.$disconnect()
}
}
clearAllCabinetsData()