const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

async function cleanSupplyData() {
  try {
    console.log('🧹 ОЧИСТКА ДАННЫХ О ПОСТАВКАХ\n')
    console.log('=' .repeat(80))
    
    // 1. Удаляем все заказы поставок (каскадно удалятся и items)
    console.log('\n📦 1. Удаление SUPPLY ORDERS...')
    const deletedOrders = await prisma.supplyOrder.deleteMany({})
    console.log(`✅ Удалено заказов поставок: ${deletedOrders.count}`)
    
    // 2. Удаляем поставщиков расходников
    console.log('\n🏭 2. Удаление SUPPLY SUPPLIERS...')
    const deletedSuppliers = await prisma.supplySupplier.deleteMany({})
    console.log(`✅ Удалено поставщиков: ${deletedSuppliers.count}`)
    
    // 3. Удаляем расходники из таблицы Supply
    console.log('\n🔧 3. Удаление SUPPLIES (расходники)...')
    const deletedSupplies = await prisma.supply.deleteMany({})
    console.log(`✅ Удалено расходников: ${deletedSupplies.count}`)
    
    // 4. НЕ удаляем Products, так как это товары на складе поставщика
    console.log('\n📦 4. PRODUCTS (товары на складах) - НЕ УДАЛЯЕМ')
    console.log('ℹ️  Товары на складах организаций оставлены без изменений')
    
    // 5. Проверяем что осталось
    console.log('\n\n📊 ПРОВЕРКА ПОСЛЕ ОЧИСТКИ:')
    console.log('-' .repeat(80))
    
    const remainingOrders = await prisma.supplyOrder.count()
    const remainingSuppliers = await prisma.supplySupplier.count()
    const remainingSupplies = await prisma.supply.count()
    const remainingProducts = await prisma.product.count()
    
    console.log(`📦 Supply Orders: ${remainingOrders}`)
    console.log(`🏭 Supply Suppliers: ${remainingSuppliers}`)
    console.log(`🔧 Supplies: ${remainingSupplies}`)
    console.log(`📦 Products (не удалялись): ${remainingProducts}`)
    
    console.log('\n✅ ОЧИСТКА ЗАВЕРШЕНА!')
    
  } catch (error) {
    console.error('❌ Ошибка при очистке:', error.message)
    console.error(error)
  } finally {
    await prisma.$disconnect()
  }
}

// Подтверждение перед очисткой
console.log('⚠️  ВНИМАНИЕ! Этот скрипт удалит:')
console.log('- Все заказы поставок (SupplyOrder)')
console.log('- Все записи поставщиков (SupplySupplier)')
console.log('- Все расходники (Supply)')
console.log('\nНЕ будут удалены:')
console.log('- Товары на складах (Product)')
console.log('- Организации и пользователи')

const readline = require('readline')
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})

rl.question('\nВы уверены? (yes/да для подтверждения): ', (answer) => {
  if (answer.toLowerCase() === 'yes' || answer.toLowerCase() === 'да') {
    cleanSupplyData()
  } else {
    console.log('❌ Очистка отменена')
    process.exit(0)
  }
  rl.close()
})