"use server"; import { revalidatePath } from "next/cache"; import { requireStaffRateLimited as requireStaff } from "@/lib/admin/guard"; import { prisma } from "@/lib/prisma"; import { siteSettings } from "@/lib/services/site-settings"; export async function updateSetting(formData: FormData): Promise { await requireStaff(); const key = String(formData.get("key") ?? "").trim(); const value = String(formData.get("value") ?? ""); if (!key) return; await prisma.websiteSetting.update({ where: { key }, data: { value } }); siteSettings.reload(); revalidatePath("/admin/settings"); } export async function createSetting(formData: FormData): Promise { await requireStaff(); const key = String(formData.get("key") ?? "") .trim() .slice(0, 255); const value = String(formData.get("value") ?? ""); const comment = String(formData.get("comment") ?? "") .trim() .slice(0, 255); if (!key) return; await prisma.websiteSetting.upsert({ where: { key }, update: { value }, create: { key, value, comment: comment || null }, }); siteSettings.reload(); revalidatePath("/admin/settings"); } export async function deleteSetting(formData: FormData): Promise { await requireStaff(); const key = String(formData.get("key") ?? "").trim(); if (!key) return; await prisma.websiteSetting.delete({ where: { key } }); siteSettings.reload(); revalidatePath("/admin/settings"); }