import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('🔄 Stelle LexOffice-Artikel-IDs wieder her...\n');

  // 1. Fotobox-Artikel-IDs für ALLE PriceConfigs setzen
  const photoboxUpdate = await prisma.priceConfig.updateMany({
    data: {
      lexofficeArticleId: '5d9d3716-f81e-4e46-b5cf-13988f489cc2', // ohne Druckflatrate
      lexofficeArticleIdWithFlat: '3f26c02c-d705-41a6-9b49-2e2e96e77036', // mit Druckflatrate
    },
  });
  console.log(`✅ ${photoboxUpdate.count} PriceConfigs mit Fotobox-Artikel-IDs aktualisiert`);

  // 2. Kilometerpauschale für Lübeck
  const luebeckLocation = await prisma.location.findFirst({
    where: { city: 'Lübeck' },
  });

  if (luebeckLocation) {
    const kmUpdate = await prisma.priceConfig.updateMany({
      where: { locationId: luebeckLocation.id },
      data: {
        lexofficeKmFlatArticleId: 'd3e2b21b-e899-412d-b53e-c82a0a94fcfa',
      },
    });
    console.log(`✅ ${kmUpdate.count} PriceConfigs für Lübeck mit Kilometerpauschale-ID aktualisiert`);
  }

  // 3. Equipment-IDs prüfen
  const equipment = await prisma.equipment.findMany({
    select: {
      id: true,
      name: true,
      lexofficeArticleId: true,
    },
  });

  console.log('\n📦 Vorhandene Equipment-Artikel:');
  console.table(equipment);

  // 4. Finale Übersicht
  console.log('\n📊 Finale PriceConfig-Übersicht:');
  const configs = await prisma.priceConfig.findMany({
    include: {
      location: true,
    },
  });

  console.table(configs.map(c => ({
    model: c.model,
    city: c.location?.city,
    articleId: c.lexofficeArticleId?.slice(0, 8) + '...',
    articleIdWithFlat: c.lexofficeArticleIdWithFlat?.slice(0, 8) + '...',
    kmFlatArticleId: c.lexofficeKmFlatArticleId?.slice(0, 8) + '...' || 'null',
  })));
}

main()
  .catch((e) => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });
