"use server"; import { prisma } from "@/lib/prisma"; import { revalidatePath } from "next/cache"; export async function getEvents() { try { const events = await prisma.event.findMany({ orderBy: { createdAt: 'desc' } }); return { success: true, data: events }; } catch (error) { console.error("Error fetching events:", error); return { success: false, error: "Etkinlikleri çekerken bir hata oluştu." }; } } export async function createEvent(formData: FormData) { try { const title = formData.get("title") as string; const time = formData.get("time") as string; const tag = formData.get("tag") as string; const iconType = formData.get("iconType") as string || "music"; const colorTheme = formData.get("colorTheme") as string || "cyan"; const isFeatured = formData.get("isFeatured") === "on"; if (!title || !time || !tag) { return { success: false, error: "Başlık, zaman ve etiket alanları zorunludur." }; } await prisma.event.create({ data: { title, time, tag, iconType, colorTheme, isFeatured, }, }); revalidatePath("/admin/events"); revalidatePath("/"); revalidatePath("/tr"); revalidatePath("/en"); return { success: true }; } catch (error) { console.error("Error creating event:", error); return { success: false, error: "Etkinlik oluşturulurken bir hata oluştu." }; } } export async function updateEvent(id: string, formData: FormData) { try { const title = formData.get("title") as string; const time = formData.get("time") as string; const tag = formData.get("tag") as string; const iconType = formData.get("iconType") as string || "music"; const colorTheme = formData.get("colorTheme") as string || "cyan"; const isFeatured = formData.get("isFeatured") === "on"; if (!title || !time || !tag) { return { success: false, error: "Başlık, zaman ve etiket alanları zorunludur." }; } await prisma.event.update({ where: { id }, data: { title, time, tag, iconType, colorTheme, isFeatured, }, }); revalidatePath("/admin/events"); revalidatePath("/"); revalidatePath("/tr"); revalidatePath("/en"); return { success: true }; } catch (error) { console.error("Error updating event:", error); return { success: false, error: "Etkinlik güncellenirken bir hata oluştu." }; } } export async function deleteEvent(id: string) { try { await prisma.event.delete({ where: { id }, }); revalidatePath("/admin/events"); revalidatePath("/"); revalidatePath("/tr"); revalidatePath("/en"); return { success: true }; } catch (error) { console.error("Error deleting event:", error); return { success: false, error: "Etkinlik silinirken bir hata oluştu." }; } }