import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); // LexOffice Artikel-IDs (von Dennis bereitgestellt) const LEXOFFICE_ARTICLES = { // Fotoboxen VINTAGE: { withFlat: '3f26c02c-d705-41a6-9b49-2e2e96e77036', // Fotobox Vintage Flat withoutFlat: '5d9d3716-f81e-4e46-b5cf-13988f489cc2', // Fotobox Vintage }, NOSTALGIE: { withFlat: '701bd150-48c0-4937-b628-f4a754d86264', // Fotobox Nostalgie Flat withoutFlat: '8954bd20-570c-4a7d-9ac3-8ee756652a89', // Fotobox Nostalgie }, MAGIC_MIRROR: { withFlat: '39ec59e7-57a6-4d6d-80f6-645e589c4b2c', // Fotobox Magic Mirror Flat withoutFlat: '72bbe51b-c0bb-437a-963b-248cb105553a', // Fotobox Magic Mirror }, // Equipment/Extras ACCESSORIES: 'c62d4dad-4f04-4330-9019-f9804bb43ddc', VIP_BARRIER: 'e3942394-94d7-45ea-a31b-a1b035f6f34e', PRINT_FLAT_DIY: '774aba7f-2c20-4d65-b8d0-4793f27d2d71', CARD_GAME: '17d563fe-5f00-4591-a414-d013d7ce68e0', RED_CARPET: 'd138da65-4e23-4a88-813a-1f3725a75a15', SERVICE_TECH: 'ec972616-8bc5-4334-876d-b442838a8bbf', }; async function setupLexOfficeMapping() { console.log('🔧 Konfiguriere LexOffice Artikel-IDs...\n'); try { const locations = await prisma.location.findMany(); for (const location of locations) { console.log(`📍 ${location.name}:`); // VINTAGE_SMILE / VINTAGE_PHOTOS (gleiche Box) const vintageConfigs = await prisma.priceConfig.findMany({ where: { locationId: location.id, model: { in: ['VINTAGE_SMILE', 'VINTAGE_PHOTOS'], }, }, }); for (const config of vintageConfigs) { await prisma.priceConfig.update({ where: { id: config.id }, data: { lexofficeArticleId: LEXOFFICE_ARTICLES.VINTAGE.withoutFlat, lexofficeArticleIdWithFlat: LEXOFFICE_ARTICLES.VINTAGE.withFlat, }, }); console.log(` ✅ ${config.model}: LexOffice IDs gesetzt`); } // NOSTALGIE const nostalgieConfig = await prisma.priceConfig.findFirst({ where: { locationId: location.id, model: 'NOSTALGIE', }, }); if (nostalgieConfig) { await prisma.priceConfig.update({ where: { id: nostalgieConfig.id }, data: { lexofficeArticleId: LEXOFFICE_ARTICLES.NOSTALGIE.withoutFlat, lexofficeArticleIdWithFlat: LEXOFFICE_ARTICLES.NOSTALGIE.withFlat, }, }); console.log(` ✅ NOSTALGIE: LexOffice IDs gesetzt`); } // MAGIC_MIRROR const magicMirrorConfig = await prisma.priceConfig.findFirst({ where: { locationId: location.id, model: 'MAGIC_MIRROR', }, }); if (magicMirrorConfig) { await prisma.priceConfig.update({ where: { id: magicMirrorConfig.id }, data: { lexofficeArticleId: LEXOFFICE_ARTICLES.MAGIC_MIRROR.withoutFlat, lexofficeArticleIdWithFlat: LEXOFFICE_ARTICLES.MAGIC_MIRROR.withFlat, }, }); console.log(` ✅ MAGIC_MIRROR: LexOffice IDs gesetzt`); } } console.log('\n🎉 LexOffice Artikel-Mapping erfolgreich konfiguriert!'); console.log('\n📝 Nächste Schritte:'); console.log(' 1. Testbuchung erstellen (mit/ohne Druckflatrate)'); console.log(' 2. LexOffice Angebot generieren'); console.log(' 3. Prüfen ob korrekte Artikel-IDs verwendet werden\n'); } catch (error) { console.error('❌ Fehler:', error); throw error; } finally { await prisma.$disconnect(); } } setupLexOfficeMapping();