-- Estados de declaración y pago por separado para obligaciones que requieren ambos.
ALTER TABLE obligacion_periodos
  ADD COLUMN IF NOT EXISTS declaracion_presentada boolean DEFAULT false,
  ADD COLUMN IF NOT EXISTS pago_presentado boolean DEFAULT false;

-- Backfill: periodos ya completados se consideran con declaración y pago presentados.
UPDATE obligacion_periodos
SET declaracion_presentada = true,
    pago_presentado = true
WHERE completada = true
  AND (declaracion_presentada IS NULL OR pago_presentado IS NULL);

-- Asegurar que declaracion_presentada y pago_presentado no sean NULL.
ALTER TABLE obligacion_periodos
  ALTER COLUMN declaracion_presentada SET NOT NULL,
  ALTER COLUMN pago_presentado SET NOT NULL;
