-- #migration 2026_08_10_184
-- Système "Mon objectif" : le client définit un ou plusieurs objectifs
-- (un seul principal), chacun avec un sujet/nombre/date, un parcours
-- suggéré (accepté ou refusé, comme les cartes actions), et un historique
-- de suivis (triple choix satisfait/ça progresse/pas satisfait).

CREATE TABLE IF NOT EXISTS client_objectifs (
  id                VARCHAR(40)  NOT NULL PRIMARY KEY,
  user_id           VARCHAR(40)  NOT NULL,
  sujet             VARCHAR(40)  NOT NULL,          -- ex: 'ca', 'prospects', 'ventes'...
  sujet_canal       ENUM('physique','en_ligne','indifferent') NULL, -- uniquement si sujet='ventes'
  nombre_cible      DECIMAL(12,2) NOT NULL,
  date_cible        DATE         NOT NULL,
  valeur_depart     DECIMAL(12,2) NOT NULL DEFAULT 0, -- photo au moment de la creation
  valeur_actuelle   DECIMAL(12,2) NOT NULL DEFAULT 0, -- derniere valeur mesuree connue
  est_principal     TINYINT(1)   NOT NULL DEFAULT 0,
  parcours_id       VARCHAR(20)  NULL,               -- ex: 'PAR-DOM-01'
  parcours_refuse    TINYINT(1)   NOT NULL DEFAULT 0, -- comme les cartes actions rejetees
  parcours_refuse_at DATETIME     NULL,
  statut            ENUM('actif','atteint','abandonne') NOT NULL DEFAULT 'actif',
  created_at        DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at        DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
  INDEX idx_obj_user (user_id),
  INDEX idx_obj_user_principal (user_id, est_principal)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS client_objectif_suivis (
  id                INT AUTO_INCREMENT PRIMARY KEY,
  objectif_id        VARCHAR(40)  NOT NULL,
  valeur_mesuree     DECIMAL(12,2) NOT NULL,
  statut_ressenti    ENUM('satisfait','ca_progresse','pas_satisfait') NOT NULL,
  source             ENUM('popup_large','suivi_simple') NOT NULL DEFAULT 'popup_large',
  created_at         DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (objectif_id) REFERENCES client_objectifs(id) ON DELETE CASCADE,
  INDEX idx_osuivi_objectif (objectif_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Cadence de récurrence par défaut proposée au client pour les actions à
-- suivi récurrent (quotidien/hebdo/mensuel) — réglable depuis son profil.
ALTER TABLE users
  ADD COLUMN cadence_recurrence_defaut ENUM('quotidien','hebdomadaire','mensuel') NOT NULL DEFAULT 'hebdomadaire';

-- Cadence choisie par le client pour une action donnée (remplace, quand
-- renseignée, la cadence fixe définie par l'admin sur la carte).
ALTER TABLE action_impact_schedule
  ADD COLUMN cadence_client ENUM('quotidien','hebdomadaire','mensuel') NULL AFTER metric;
