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:
163
scripts/clear-all-cabinets-data.cjs
Normal file
163
scripts/clear-all-cabinets-data.cjs
Normal 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()
|
Reference in New Issue
Block a user