Files
sfera-new/scripts/clear-all-cabinets-data.cjs
Veronika Smirnova 89257c75b5 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>
2025-08-22 10:31:43 +03:00

163 lines
8.1 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()