// src/routes/api/admin/email-config/+server.ts
import { json, error } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

export const GET: RequestHandler = async () => {
  try {
    // E-Mail-Konfiguration aus der Datenbank laden
    let emailConfig = await prisma.emailConfig.findUnique({
      where: { id: 1 }
    });

    // Wenn keine Konfiguration existiert, Standard-Konfiguration erstellen
    if (!emailConfig) {
      emailConfig = await prisma.emailConfig.create({
        data: {
          id: 1,
          subject: 'Praktikumsplatz-Zusage',
          template: `Sehr geehrte/r {anrede} {nachname},

wir freuen uns, Ihnen mitteilen zu können, dass Ihre Bewerbung für ein Praktikum erfolgreich war.

Sie wurden für das Praktikum bei folgender Dienststelle angenommen:
{dienststelle}

Weitere Informationen erhalten Sie in den kommenden Tagen.

Mit freundlichen Grüßen
Ihr Praktikumsteam`
        }
      });
    }

    return json({
      subject: emailConfig.subject,
      template: emailConfig.template
    });
  } catch (err) {
    console.error('Fehler beim Laden der E-Mail-Konfiguration:', err);
    return error(500, 'Fehler beim Laden der E-Mail-Konfiguration');
  }
};

export const POST: RequestHandler = async ({ request }) => {
  try {
    const { subject, template } = await request.json();

    if (!subject || !template) {
      return error(400, 'Subject und Template sind erforderlich');
    }

    // E-Mail-Konfiguration aktualisieren oder erstellen
    const emailConfig = await prisma.emailConfig.upsert({
      where: { id: 1 },
      update: {
        subject,
        template
      },
      create: {
        id: 1,
        subject,
        template
      }
    });

    return json({
      subject: emailConfig.subject,
      template: emailConfig.template
    });
  } catch (err) {
    console.error('Fehler beim Speichern der E-Mail-Konfiguration:', err);
    return error(500, 'Fehler beim Speichern der E-Mail-Konfiguration');
  }
};