'use server';

import { PrismaClient } from '@prisma/client';
import { revalidatePath } from 'next/cache';

const prisma = new PrismaClient();

export async function saveSettings(formData: FormData) {
  const settingsToSave = [
    { key: 'theme_primary', value: formData.get('primaryColor') as string },
    { key: 'theme_secondary', value: formData.get('secondaryColor') as string },
    { key: 'theme_accent', value: formData.get('accentColor') as string },
    { key: 'company_name', value: formData.get('companyName') as string },
    { key: 'benefit_iban', value: formData.get('benefitIban') as string },
    { key: 'gemini_api_key', value: formData.get('geminiApiKey') as string },
  ];

  for (const setting of settingsToSave) {
    if (setting.value) {
      await prisma.setting.upsert({
        where: { key: setting.key },
        update: { value: setting.value },
        create: { key: setting.key, value: setting.value },
      });
    }
  }

  revalidatePath('/');
  revalidatePath('/admin/settings');
}
