import { supabaseServiceRole } from '@/lib/supabase'; import type { APIRoute } from 'astro'; export const POST: APIRoute = async ({ request }) => { const headers = { 'Content-Type': 'application/json' }; if (!supabaseServiceRole) { return new Response(JSON.stringify({ success: false, message: 'Service unavailable' }), { status: 503, headers, }); } try { const { userId, email } = await request.json(); if (!userId || !email) { return new Response( JSON.stringify({ success: false, message: 'User ID and email required' }), { status: 400, headers } ); } const { data: profile, error } = await supabaseServiceRole .from('profiles') .upsert( { workos_user_id: userId, email: email.toLowerCase(), health_conditions: [], food_restrictions: [], food_preferences: [], }, { onConflict: 'workos_user_id' } ) .select() .single(); if (error) { return new Response(JSON.stringify({ success: false, message: 'Failed to create profile' }), { status: 500, headers, }); } return new Response(JSON.stringify({ success: true, profile }), { status: 200, headers }); } catch { return new Response(JSON.stringify({ success: false, message: 'Internal server error' }), { status: 500, headers, }); } };