-- ============================================================
-- 30 — Annuaire des contreparties (reconnaissance auto par IBAN)
-- ============================================================
CREATE TABLE IF NOT EXISTS coda_contreparties (
    id            INT AUTO_INCREMENT PRIMARY KEY,
    iban          VARCHAR(40) NOT NULL,
    nom           VARCHAR(160) NOT NULL,
    source        ENUM('manuel','odoo','import') NOT NULL DEFAULT 'manuel',
    nb_utilisations INT NOT NULL DEFAULT 1,
    updated_at    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    created_at    DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY uq_cp_iban (iban)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Pré-remplir depuis les mouvements existants qui ont déjà un couple IBAN + nom
INSERT INTO coda_contreparties (iban, nom, source, nb_utilisations)
SELECT
    REPLACE(REPLACE(contrepartie_iban, ' ', ''), '.', '') AS iban_norm,
    MAX(contrepartie) AS nom,
    'import',
    COUNT(*)
FROM coda_mouvements
WHERE contrepartie_iban IS NOT NULL AND contrepartie_iban <> ''
  AND contrepartie IS NOT NULL AND contrepartie <> ''
GROUP BY iban_norm
ON DUPLICATE KEY UPDATE nb_utilisations = coda_contreparties.nb_utilisations + VALUES(nb_utilisations);
