"use server"; import { DATABASE_ID, ID, TABLES, tablesDB } from "@/lib/appwrite-rest"; 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 tablesDB.createRow(DATABASE_ID, TABLES.contactMessages, ID.unique(), { 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}` }; } }