-- Agrega soporte para CfdiRelacionados del propio comprobante (CFDI 4.0).
-- El campo existente `uuid_relacionado` se sigue usando para DoctoRelacionado
-- del complemento de Pagos (tipo P). Estas dos columnas nuevas son para los
-- CfdiRelacionados a nivel raíz del comprobante (típico en tipo E — notas
-- de crédito relacionadas a facturas I, P, o a anticipos aplicados).
--
-- `cfdi_tipo_relacion` — clave SAT de 2 chars (01 NC, 02 Sustitución,
--   03 Devolución, 04 Sustitución CFDIs previos, 05 Traslados mercancía,
--   06 Factura por traslado previo, 07 Aplicación de anticipo).
-- `cfdis_relacionados` — UUIDs pipe-separated del/los CfdiRelacionado.

ALTER TABLE cfdis
  ADD COLUMN IF NOT EXISTS cfdi_tipo_relacion VARCHAR(2),
  ADD COLUMN IF NOT EXISTS cfdis_relacionados TEXT;

CREATE INDEX IF NOT EXISTS ix_cfdis_tipo_relacion
  ON cfdis(cfdi_tipo_relacion)
  WHERE cfdi_tipo_relacion IS NOT NULL;

INSERT INTO tenant_migrations (scope, version, name)
VALUES ('vertical-contable', 32, '032_cfdis_relaciones')
ON CONFLICT (scope, version) DO NOTHING;
