-- Migration 023 : table de log des installations / MAJ de plugins Limbus
--
-- Permet de tracer côté plateforme quand chaque site marchand (ou client)
-- a installé une nouvelle version d'un plugin Limbus. Utile pour :
--   - Voir qui est encore sur l'ancienne version
--   - Auditer l'historique des déploiements
--   - Déclencher des notifications si un site ne se met pas à jour
--
-- Alimentée par le self-updater côté plugin (POST /api/plugin-updates/log)
-- juste après que WordPress ait fini d'installer la nouvelle version.
--
-- Migration idempotente (re-exécution safe).

SET @tbl_exists = (
    SELECT COUNT(*) FROM information_schema.TABLES
    WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'plugin_install_log'
);
SET @sql = IF(
    @tbl_exists = 0,
    'CREATE TABLE plugin_install_log (
        id INT UNSIGNED NOT NULL AUTO_INCREMENT,
        site_id INT NULL DEFAULT NULL COMMENT "ID site Limbus identifié via api_key",
        plugin_slug VARCHAR(64) NOT NULL,
        plugin_file VARCHAR(128) NOT NULL COMMENT "Chemin relatif WP (folder/file.php)",
        new_version VARCHAR(32) NOT NULL,
        site_url VARCHAR(255) NULL DEFAULT NULL COMMENT "URL du site marchand (envoyée par le plugin)",
        signature_valid TINYINT(1) NOT NULL DEFAULT 0 COMMENT "HMAC vérifié ou non",
        created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY (id),
        INDEX idx_pil_site (site_id, plugin_slug),
        INDEX idx_pil_slug_version (plugin_slug, new_version),
        INDEX idx_pil_created (created_at),
        CONSTRAINT fk_pil_site FOREIGN KEY (site_id) REFERENCES sites (id) ON DELETE SET NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci',
    'SELECT "Table plugin_install_log déjà existante" AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
