-- HU-ROOMS: Seed de reservas de demo (idempotente)
--
-- Requisitos:
--   - Migraciones aplicadas hasta al menos 004 (columnas reconfirmation_* / reminder_sent_*).
--   - Filas en public.users y public.resources que coincidan con los emails y nombres usados abajo.
--
-- Ejecución: Supabase → SQL Editor con rol que pueda INSERT (p. ej. postgres / service role).
--
-- Personalización:
--   1) Ajustá los emails en el CTE `seed_rows` (deben existir en public.users).
--   2) Ajustá resource_name (deben existir en public.resources, típicamente desde 002_seed_data.sql).
--   3) Cambiá fechas/horas locales; se interpretan en America/Santiago (ajustá si usás otra zona).
--
-- Idempotencia: cada fila usa un UUID fijo en `seed_id`; re-ejecutar hace ON CONFLICT DO NOTHING.
--
-- Marca: notes = 'Seed demo hu-rooms' (podés borrar solo esas filas con DELETE si hace falta).

INSERT INTO public.reservations (
  id,
  resource_id,
  user_id,
  start_at,
  end_at,
  status,
  notes,
  reconfirmation_status,
  reconfirmed_at,
  reminder_sent_at
)
SELECT
  s.seed_id,
  r.id,
  u.id,
  s.start_local::timestamp AT TIME ZONE 'America/Santiago',
  s.end_local::timestamp AT TIME ZONE 'America/Santiago',
  'confirmed',
  'Seed demo hu-rooms',
  'pending',
  NULL,
  NULL
FROM (
  VALUES
    ('00000000-0000-4000-8000-000000000001'::uuid, 'admin@humand.co', 'Sala Atacama', '2026-03-24 09:00:00', '2026-03-24 10:00:00'),
    ('00000000-0000-4000-8000-000000000002'::uuid, 'usuario@humand.co', 'Sala Atacama', '2026-03-24 14:00:00', '2026-03-24 15:00:00'),
    ('00000000-0000-4000-8000-000000000003'::uuid, 'admin@humand.co', 'Sala Elqui', '2026-03-24 10:00:00', '2026-03-24 11:00:00'),
    ('00000000-0000-4000-8000-000000000004'::uuid, 'usuario@humand.co', 'Sala Maipo', '2026-03-24 11:00:00', '2026-03-24 12:00:00'),
    ('00000000-0000-4000-8000-000000000005'::uuid, 'admin@humand.co', 'Sala Aconcagua', '2026-03-25 09:00:00', '2026-03-25 10:00:00'),
    ('00000000-0000-4000-8000-000000000006'::uuid, 'usuario@humand.co', 'Sala Patagonia', '2026-03-25 10:00:00', '2026-03-25 11:00:00'),
    ('00000000-0000-4000-8000-000000000007'::uuid, 'admin@humand.co', 'Sala Torres del Paine', '2026-03-25 15:00:00', '2026-03-25 16:00:00'),
    ('00000000-0000-4000-8000-000000000008'::uuid, 'usuario@humand.co', 'Desk A-01', '2026-03-26 09:00:00', '2026-03-26 10:00:00'),
    ('00000000-0000-4000-8000-000000000009'::uuid, 'admin@humand.co', 'Phone Booth 1', '2026-03-26 10:00:00', '2026-03-26 10:30:00')
) AS s(seed_id, user_email, resource_name, start_local, end_local)
JOIN public.users u ON lower(u.email) = lower(s.user_email)
JOIN public.resources r ON r.name = s.resource_name AND (r.is_active IS DISTINCT FROM false)
ON CONFLICT (id) DO NOTHING;

-- Verificación rápida (opcional):
-- SELECT id, start_at, end_at, notes FROM public.reservations WHERE notes = 'Seed demo hu-rooms' ORDER BY start_at;
