'use server'; import { z } from 'zod'; import { Resend } from 'resend'; const resend = new Resend(process.env.RESEND_API_KEY); const orderSchema = z.object({ name: z.string().min(2), phone: z.string().min(9), email: z.string().email(), address: z.string().optional(), notes: z.string().optional(), consent: z.string(), products: z.string(), total: z.string(), }); export async function submitOrderForm(prevState: any, formData: FormData) { try { const data = orderSchema.parse({ name: formData.get('name'), phone: formData.get('phone'), email: formData.get('email'), address: formData.get('address') || '', notes: formData.get('notes') || '', consent: formData.get('consent'), products: formData.get('products'), total: formData.get('total'), }); const products = JSON.parse(data.products); const total = parseFloat(data.total); const productRows = products.map((p: any) => `
Imię: ${data.name}
Telefon: ${data.phone}
Email: ${data.email}
${data.address ? `Adres: ${data.address}
` : ''} ${data.notes ? `Uwagi: ${data.notes}
` : ''}| Produkt | Ilość | Wartość |
|---|---|---|
| Łącznie (urządzenia) | ${total.toLocaleString('pl-PL')} zł | |
+ koszt montażu do ustalenia telefonicznie