CREATE TABLE IF NOT EXISTS metricas_acumuladas_anuales (
  id                          uuid PRIMARY KEY DEFAULT gen_random_uuid(),
  contribuyente_id            uuid NOT NULL REFERENCES contribuyentes(entidad_id) ON DELETE CASCADE,
  anio                        smallint NOT NULL,
  regimen_fiscal              varchar(3),
  formula_version             smallint DEFAULT 1,
  iva_a_favor_arrastrado      numeric(18,2) DEFAULT 0,
  iva_a_favor_generado        numeric(18,2) DEFAULT 0,
  iva_a_favor_aplicado        numeric(18,2) DEFAULT 0,
  iva_a_favor_saldo           numeric(18,2) DEFAULT 0,
  ingresos_anuales            numeric(18,2) DEFAULT 0,
  deducciones_anuales         numeric(18,2) DEFAULT 0,
  utilidad_anual              numeric(18,2) DEFAULT 0,
  isr_causado_anual           numeric(18,2) DEFAULT 0,
  isr_retenido_anual          numeric(18,2) DEFAULT 0,
  isr_a_pagar_anual           numeric(18,2) DEFAULT 0,
  cerrado                     boolean DEFAULT false,
  computed_at                 timestamptz DEFAULT now(),
  UNIQUE (contribuyente_id, anio, regimen_fiscal)
);

INSERT INTO tenant_migrations (scope, version, name)
VALUES ('vertical-contable', 15, '015_metricas_acumuladas_anuales')
ON CONFLICT (scope, version) DO NOTHING;
