import { apiFetch, RateLimitError, ApiError, NetworkError } from '../client'; import type { ContactPayload, ContactResult } from '../types/contact'; import { resolveBaseUrl } from '../base-url'; export async function submitContact(payload: ContactPayload): Promise { try { const data = await apiFetch<{ id?: number; status?: string; error?: string }>(`${resolveBaseUrl()}/public/contact`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); return { success: true, id: data.id ?? 0 }; } catch (err) { if (err instanceof RateLimitError) throw err; if (err instanceof NetworkError) { return { success: false, error: 'Network error. Please check your connection and try again.' }; } if (err instanceof ApiError) { return { success: false, error: err.message }; } return { success: false, error: 'Something went wrong. Please try again.' }; } }