-- Historial de entregas ya realizadas por el repartidor (respaldo por jornadas).
-- Devuelve los pedidos entregados por el repartidor logueado, mas recientes primero.
-- El agrupado por dia/jornada se hace en la app (con la zona horaria del telefono).
drop function if exists public.mis_entregas_realizadas(integer);
create function public.mis_entregas_realizadas(p_dias integer default 60)
returns table(
  pedido_id uuid,
  codigo text,
  cliente_nombre text,
  direccion text,
  total_usd numeric,
  metodo_pago text,
  tipo_entrega text,
  entregado_en timestamptz
)
language sql
stable
security definer
set search_path to 'public'
as $$
  select p.id, p.codigo, p.cliente_nombre, p.direccion, p.total_usd, p.metodo_pago, p.tipo_entrega, p.entregado_en
  from public.pedidos p
  join public.repartidores r on r.id = p.repartidor_id
  where r.perfil_id = auth.uid()
    and p.estado = 'entregado'
    and p.entregado_en is not null
    and p.entregado_en >= now() - make_interval(days => p_dias)
  order by p.entregado_en desc;
$$;
grant execute on function public.mis_entregas_realizadas(integer) to authenticated;
