import { serverSupabaseServiceRole, serverSupabaseClient } from '#supabase/server' export default defineEventHandler(async (event) => { const client = await serverSupabaseClient(event) const { data: { user } } = await client.auth.getUser() if (!user) throw createError({ statusCode: 401, message: 'No autenticado' }) const id = getRouterParam(event, 'id') if (!id) throw createError({ statusCode: 400, message: 'ID requerido' }) const query = getQuery(event) const days = Number(query.days) || 30 const since = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString() const supabase = serverSupabaseServiceRole(event) const { data: search } = await supabase .from('tracked_searches') .select('id') .eq('id', id) .eq('user_id', user.id) .single() if (!search) throw createError({ statusCode: 404, message: 'No encontrado' }) const { data: snapshots, error } = await supabase .from('price_snapshots') .select('cheapest_price, avg_price, median_price, total_results, recorded_at') .eq('tracked_search_id', id) .gte('recorded_at', since) .order('recorded_at', { ascending: true }) if (error) throw createError({ statusCode: 500, message: error.message }) return snapshots || [] })