'use server';

import { createMessage } from '@/lib/db';

export type ContactState = { status: 'idle' | 'ok' | 'error'; message?: string };

export async function submitContact(
  _prev: ContactState,
  formData: FormData
): Promise<ContactState> {
  const name = String(formData.get('name') ?? '').trim();
  const phone = String(formData.get('phone') ?? '').trim();
  const email = String(formData.get('email') ?? '').trim();
  const subject = String(formData.get('subject') ?? '').trim();
  const body = String(formData.get('body') ?? '').trim();
  const honeypot = String(formData.get('company') ?? '').trim();

  if (honeypot) return { status: 'ok' }; // bot tuzagi
  if (!name || !phone || !body) {
    return { status: 'error', message: 'Ad, telefon ve mesaj alanları zorunludur.' };
  }
  if (body.length > 4000) {
    return { status: 'error', message: 'Mesaj çok uzun.' };
  }

  try {
    await createMessage({
      name,
      phone,
      email: email || null,
      subject: subject || null,
      body,
    });
    return {
      status: 'ok',
      message: 'Mesajınız bize ulaştı. En kısa sürede dönüş yapacağız.',
    };
  } catch {
    return {
      status: 'error',
      message: 'Mesaj kaydedilemedi. Lütfen telefonla ulaşmayı deneyin.',
    };
  }
}
