-- Recordatorios periódicos: maestro + instancias materializadas en la misma tabla

ALTER TABLE recordatorios
  ADD COLUMN IF NOT EXISTS recurrencia VARCHAR(20) DEFAULT 'unica' NOT NULL,
  ADD COLUMN IF NOT EXISTS serie_id INTEGER REFERENCES recordatorios(id) ON DELETE CASCADE,
  ADD COLUMN IF NOT EXISTS activo BOOLEAN DEFAULT true NOT NULL,
  ADD COLUMN IF NOT EXISTS fecha_inicio DATE,
  ADD COLUMN IF NOT EXISTS fecha_fin DATE;

-- Backfill seguro para filas existentes (el default ya cubre recurrencia/activo, pero dejamos explícito)
UPDATE recordatorios
   SET recurrencia = 'unica',
       activo = true
 WHERE recurrencia IS NULL
    OR activo IS NULL;

-- Índices para consultas de serie y regeneración
CREATE INDEX IF NOT EXISTS recordatorios_serie_id_idx ON recordatorios(serie_id);
CREATE INDEX IF NOT EXISTS recordatorios_recurrencia_activo_idx ON recordatorios(recurrencia, activo);
