-- #migration 2026_07_05_025
-- Niveaux par domaine + suivi d'impact par action + preuve sociale avant/après.
-- Rejouable : IF NOT EXISTS / colonnes idempotentes (migrate.php ignore "Duplicate column").

-- ── 1. Domaine d'une carte ──────────────────────────────────────────────────
-- Rattache chaque carte à un domaine de progression (image de marque,
-- parcours client, gamme de tarifs…). Alimenté par le guide de la carte :
-- ajoute `"domain": "parcours_client"` dans data/card_guides/*.json — l'import
-- (import-catalogue.php) le pousse dans cette colonne. Aucun code à écrire.
ALTER TABLE card_guide
  ADD COLUMN domain VARCHAR(40) NULL AFTER card_id;

-- ── 2. Suivi d'impact par action ────────────────────────────────────────────
-- Un relevé = une valeur mesurée à une date (ex. « contacts collectés / mois »).
-- Une ligne par (user, card, date). La 1re valeur sert d'« avant », la dernière
-- d'« après ». Alimente le graphe d'évolution + la preuve sociale agrégée.
CREATE TABLE IF NOT EXISTS action_impact (
  id          VARCHAR(40)  NOT NULL PRIMARY KEY,
  user_id     VARCHAR(40)  NOT NULL,
  card_id     VARCHAR(20)  NOT NULL,
  metric      VARCHAR(40)  NOT NULL DEFAULT 'contacts',  -- clé de la mesure
  value       DECIMAL(12,2) NOT NULL,                    -- valeur relevée
  date        DATE         NOT NULL,                     -- date du relevé
  note        VARCHAR(255) NULL,
  created_at  DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_impact (user_id, card_id, metric, date),
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
  INDEX idx_impact_user_card (user_id, card_id),
  INDEX idx_impact_card (card_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ── 3. Prochain rappel de suivi d'impact ────────────────────────────────────
-- Date du prochain relevé attendu (J+7 après le dernier), pour la pastille
-- « prochain suivi dans J-7 » et le cron d'envoi de rappels existant.
ALTER TABLE actions
  ADD COLUMN impact_next_at DATE NULL AFTER rappel_sent;
