-- #6 Trazabilidad declaración↔obligación: agrega FK a declaraciones_provisionales
-- en obligacion_periodos. ON DELETE SET NULL porque si la declaración se borra
-- el periodo puede seguir completado (el usuario puede haberlo cerrado sin
-- re-subir, o la completitud viene de otra fuente — "marcar manualmente"
-- via UI, etc.). La UI puede mostrar "via Declaración #123" cuando hay FK.

ALTER TABLE obligacion_periodos
  ADD COLUMN IF NOT EXISTS declaracion_id integer
    REFERENCES declaraciones_provisionales(id) ON DELETE SET NULL;

CREATE INDEX IF NOT EXISTS ix_obligacion_periodos_declaracion
  ON obligacion_periodos(declaracion_id)
  WHERE declaracion_id IS NOT NULL;

INSERT INTO tenant_migrations (scope, version, name)
VALUES ('vertical-contable', 30, '030_obligacion_periodos_declaracion_id')
ON CONFLICT (scope, version) DO NOTHING;
