-- Fix: la constraint unique de declaraciones normales solo consideraba
-- (año, mes, contribuyente_id). Esto impedía subir una declaración normal de
-- ISRTP si ya existía una normal de ISN para el mismo mes y contribuyente.
-- Ahora la unicidad se valida por (año, mes, contribuyente_id, impuestos),
-- permitiendo una declaración normal distinta por cada conjunto de impuestos.

DROP INDEX IF EXISTS uniq_declaracion_normal_mes_contrib;

CREATE UNIQUE INDEX IF NOT EXISTS uniq_declaracion_normal_mes_contrib_impuestos
  ON declaraciones_provisionales(año, mes, contribuyente_id, impuestos)
  WHERE tipo = 'normal';

INSERT INTO tenant_migrations (scope, version, name)
VALUES ('vertical-contable', 57, '057_declaraciones_unique_por_impuestos')
ON CONFLICT (scope, version) DO NOTHING;
