import { Handler } from '@netlify/functions'; import { createClient } from '@supabase/supabase-js'; const supabase = createClient( 'https://yuanqfswhberkoevtmfr.supabase.co', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc1NDk1NDM2OSwiZXhwIjoyMDcwNTMwMzY5fQ.BO9vXLKqJx7HxPQkrSbhCdAZ-y0n_Rg3UMEwvZqKr_g' // SERVICE ROLE KEY ); export const handler: Handler = async (event) => { // CORS headers const headers = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'Content-Type', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Content-Type': 'application/json', }; if (event.httpMethod === 'OPTIONS') { return { statusCode: 200, headers, body: '' }; } try { const { action, sender_id, receiver_id, content, user1_id, user2_id } = JSON.parse(event.body || '{}'); if (action === 'send') { // Enviar mensagem const { data, error } = await supabase .from('messages') .insert({ sender_id, receiver_id, content, read: false }) .select() .single(); if (error) throw error; return { statusCode: 200, headers, body: JSON.stringify({ success: true, data }), }; } if (action === 'get') { // Buscar mensagens const { data, error } = await supabase .from('messages') .select('*') .or(`and(sender_id.eq.${user1_id},receiver_id.eq.${user2_id}),and(sender_id.eq.${user2_id},receiver_id.eq.${user1_id})`) .order('created_at', { ascending: true }); if (error) throw error; return { statusCode: 200, headers, body: JSON.stringify({ success: true, data }), }; } return { statusCode: 400, headers, body: JSON.stringify({ error: 'Invalid action' }), }; } catch (error: any) { return { statusCode: 500, headers, body: JSON.stringify({ error: error.message }), }; } };