Files
Atlas/scripts/manual-email-sync.ts
Julia Wehden a2c95c70e7 feat: Equipment-System, Buchungsbearbeitung, Kundenadresse, LexOffice-Fix
- Vintage Modell hinzugefuegt
- Equipment Multi-Select (Neue Buchung + Bearbeitung)
- Kundenadresse in Formularen
- Bearbeiten-Seite fuer Buchungen
- Abbau-Zeiten in Formularen und Uebersicht
- Vertrag PDF nur bei Privatkunden
- LexOffice Kontakt-Erstellung Fix (BUSINESS)
- Zurueck-Pfeil auf Touren-Seite
2026-03-19 16:21:55 +01:00

70 lines
2.1 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
import { emailSyncService } from '../lib/email-sync';
const prisma = new PrismaClient();
async function manualEmailSync() {
console.log('🔄 Manueller E-Mail-Sync gestartet...\n');
try {
const locations = await prisma.location.findMany({
where: { emailSyncEnabled: true },
select: { id: true, name: true, slug: true },
});
if (locations.length === 0) {
console.log('⚠️ Keine Locations mit aktiviertem E-Mail-Sync gefunden.\n');
console.log('💡 Bitte aktivieren Sie E-Mail-Sync in den Location-Einstellungen.\n');
return;
}
console.log(`📍 Gefunden: ${locations.length} Location(s) mit E-Mail-Sync\n`);
let totalNewEmails = 0;
let totalNewBookings = 0;
const results = [];
for (const location of locations) {
console.log(`🔄 ${location.name} (${location.slug})...`);
const result = await emailSyncService.syncLocationEmails(location.id);
if (result.success) {
console.log(`${result.newEmails} neue E-Mails`);
console.log(`${result.newBookings} neue Buchungen\n`);
totalNewEmails += result.newEmails;
totalNewBookings += result.newBookings;
} else {
console.log(` ❌ Fehler:`);
result.errors.forEach(err => console.log(` - ${err}`));
console.log('');
}
results.push({
location: location.name,
...result,
});
}
console.log('─'.repeat(60));
console.log('📊 Zusammenfassung:');
console.log(` Locations: ${locations.length}`);
console.log(` Neue E-Mails: ${totalNewEmails}`);
console.log(` Neue Buchungen: ${totalNewBookings}`);
console.log('─'.repeat(60));
if (totalNewBookings > 0) {
console.log('\n✅ Neue Buchungen im Dashboard verfügbar!');
console.log(' → http://localhost:3000/dashboard/bookings\n');
}
} catch (error: any) {
console.error('❌ Fehler beim E-Mail-Sync:', error.message);
throw error;
} finally {
await prisma.$disconnect();
}
}
manualEmailSync();