-- ============================================================
-- Recuperar la cuenta de una mesa al re-escanear su QR.
-- Si el cliente cierra la pagina, al volver a escanear el QR de SU mesa
-- recupera su cuenta abierta (pedidos + total). Aislado por restaurante+mesa:
-- el QR de la mesa 3 solo puede ver la cuenta de la mesa 3.
-- Solo cuentas NO cerradas (una cerrada = mesa liberada, empieza de cero).
-- ============================================================
create or replace function public.cuenta_mesa_activa(p_restaurante_id uuid, p_mesa text)
returns table(id uuid, mesa text, estado text, total_usd numeric)
language sql stable security definer set search_path to 'public'
as $$
  select c.id, c.mesa, c.estado,
         coalesce((select sum(p.total_usd) from public.pedidos p where p.cuenta_id = c.id), 0)
  from public.cuentas_mesa c
  where c.restaurante_id = p_restaurante_id
    and c.mesa = p_mesa
    and c.estado <> 'cerrada'
  limit 1;
$$;
grant execute on function public.cuenta_mesa_activa(uuid, text) to anon, authenticated;
