"use server"; import { ID } from "node-appwrite"; import { adminDB, DATABASE_ID, TABLES } from "@/lib/appwrite-server"; export type ContactFormState = { ok: boolean; message: string; errors?: Record; }; const initial: ContactFormState = { ok: false, message: "" }; export async function submitContact( _prev: ContactFormState = initial, formData: FormData, ): Promise { const name = String(formData.get("name") ?? "").trim(); const email = String(formData.get("email") ?? "").trim(); const phone = String(formData.get("phone") ?? "").trim(); const subject = String(formData.get("subject") ?? "").trim(); const message = String(formData.get("message") ?? "").trim(); const errors: Record = {}; if (!name) errors.name = "Ad zorunlu"; if (!email) errors.email = "E-posta zorunlu"; else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) errors.email = "Geçerli bir e-posta girin"; if (!message || message.length < 10) errors.message = "Mesaj en az 10 karakter olmalı"; if (Object.keys(errors).length > 0) { return { ok: false, message: "Lütfen form alanlarını kontrol edin", errors }; } try { await adminDB.createRow({ databaseId: DATABASE_ID, tableId: TABLES.contactMessages, rowId: ID.unique(), data: { name, email, phone: phone || null, subject: subject || null, message, status: "new", }, }); return { ok: true, message: "Mesajınız iletildi. En kısa sürede dönüş yapacağız." }; } catch (err) { const detail = err instanceof Error ? err.message : "Bilinmeyen hata"; return { ok: false, message: `Kayıt başarısız: ${detail}` }; } }