-- 004_resource_type_booking_config.sql
-- Agrega configuración de reserva a cada tipo de recurso:
--   booking_unit     → unidad base: "hour" (horas) o "day" (días)
--   slot_size        → duración mínima de reserva
--   time_granularity → paso del picker de hora fin (solo aplica cuando booking_unit = 'hour')

ALTER TABLE resource_types
  ADD COLUMN IF NOT EXISTS booking_unit text NOT NULL DEFAULT 'hour'
    CHECK (booking_unit IN ('hour', 'day')),

  ADD COLUMN IF NOT EXISTS slot_size text NOT NULL DEFAULT '30min'
    CHECK (slot_size IN ('15min', '30min', '1h', 'half_day', 'full_day')),

  ADD COLUMN IF NOT EXISTS time_granularity text NOT NULL DEFAULT '15min'
    CHECK (time_granularity IN ('5min', '10min', '15min', '30min'));

-- Comentarios descriptivos
COMMENT ON COLUMN resource_types.booking_unit IS
  'Unidad de reserva: hour = se reserva por horas/minutos, day = se reserva por días';

COMMENT ON COLUMN resource_types.slot_size IS
  'Duración mínima de reserva. Para hour: 15min | 30min | 1h. Para day: half_day | full_day';

COMMENT ON COLUMN resource_types.time_granularity IS
  'Paso del picker de hora fin (solo cuando booking_unit = hour). Opciones: 5min | 10min | 15min | 30min';
