import { NextResponse } from 'next/server'; const GATEWAY = process.env.WHATSAPP_GATEWAY_URL || 'http://whatsapp-gateway.ai-agents.svc.cluster.local:5001/send-message'; const DEFAULT_GROUP = process.env.WHATSAPP_GROUP || 'https://chat.whatsapp.com/0Txfg7iZBbvIuvTbTqqgAX'; const PERSONAL_NUMBER = process.env.WHATSAPP_PERSONAL || '+14085505485'; async function sendToRecipient(to, message) { const res = await fetch(GATEWAY, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ to, message }), }); return res.json(); } export async function POST(request) { try { const { message, to, personalOnly } = await request.json(); if (!message) { return NextResponse.json({ error: 'message is required' }, { status: 400 }); } // personalOnly=true → only me; default → group + me const targets = personalOnly ? [{ to: PERSONAL_NUMBER, label: 'personal' }] : [ { to: to || DEFAULT_GROUP, label: 'group' }, { to: PERSONAL_NUMBER, label: 'personal' }, ]; const results = await Promise.allSettled( targets.map(t => sendToRecipient(t.to, message)) ); const successful = results.filter(r => r.status === 'fulfilled' && r.value?.success); const failed = results.filter(r => r.status !== 'fulfilled' || !r.value?.success); if (successful.length === 0) { return NextResponse.json({ error: 'All recipients failed', details: failed }, { status: 502 }); } return NextResponse.json({ success: true, sent: successful.length, failed: failed.length, messageId: successful[0]?.value?.messageId, }); } catch (err) { return NextResponse.json({ error: err.message }, { status: 500 }); } }