-- ============================================================
-- Gustito Express — Recuperar pedidos por telefono (si el cliente cerro la pagina).
-- Devuelve los pedidos recientes (48h) que coinciden con el telefono, campos seguros.
-- ============================================================
create or replace function public.buscar_pedidos(p_telefono text)
returns table (
  pedido_id          uuid,
  codigo             text,
  restaurante_nombre text,
  estado             text,
  total_usd          numeric,
  creado_en          timestamptz
)
language sql stable security definer set search_path = public
as $$
  select p.id, p.codigo, r.nombre, p.estado, p.total_usd, p.recibido_en
  from public.pedidos p
  join public.restaurantes r on r.id = p.restaurante_id
  where length(regexp_replace(coalesce(p_telefono, ''), '[^0-9]', '', 'g')) >= 7
    and regexp_replace(p.cliente_telefono, '[^0-9]', '', 'g') = regexp_replace(p_telefono, '[^0-9]', '', 'g')
    and p.recibido_en > now() - interval '2 days'
  order by p.recibido_en desc
  limit 10;
$$;
grant execute on function public.buscar_pedidos(text) to anon, authenticated;
