-- #migration 2026_07_27_135
-- Agent IA Threads : réception des questions, génération de réponses stylées,
-- validation admin avant publication, suivi.

CREATE TABLE IF NOT EXISTS threads_style_corpus (
  id           INT AUTO_INCREMENT PRIMARY KEY,
  texte        TEXT NOT NULL,
  contexte     VARCHAR(255) DEFAULT NULL,   -- ex: "réponse à une question tarifs"
  actif        TINYINT(1) NOT NULL DEFAULT 1,
  created_at   TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS threads_incoming (
  id            INT AUTO_INCREMENT PRIMARY KEY,
  reply_id      VARCHAR(64) NOT NULL,        -- id Threads de la réponse/mention
  root_post_id  VARCHAR(64) DEFAULT NULL,    -- post d'origine sur lequel on a été mentionné/répondu
  auteur        VARCHAR(255) DEFAULT NULL,
  texte         TEXT NOT NULL,
  type          ENUM('question','autre') NOT NULL DEFAULT 'autre',
  statut        ENUM('nouveau','traite','ignore') NOT NULL DEFAULT 'nouveau',
  received_at   TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_reply (reply_id)
);

CREATE TABLE IF NOT EXISTS threads_drafts (
  id            INT AUTO_INCREMENT PRIMARY KEY,
  incoming_id   INT NOT NULL,
  proposition_1 TEXT,
  proposition_2 TEXT,
  proposition_3 TEXT,
  texte_final   TEXT DEFAULT NULL,           -- version éditée/choisie avant envoi
  statut        ENUM('attente','validee','refusee','envoyee') NOT NULL DEFAULT 'attente',
  sent_reply_id VARCHAR(64) DEFAULT NULL,    -- id de la réponse publiée sur Threads
  created_at    TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  sent_at       TIMESTAMP NULL DEFAULT NULL,
  KEY idx_incoming (incoming_id),
  FOREIGN KEY (incoming_id) REFERENCES threads_incoming(id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS threads_tokens (
  id            INT AUTO_INCREMENT PRIMARY KEY,
  access_token  TEXT NOT NULL,
  threads_user_id VARCHAR(64) DEFAULT NULL,
  expires_at    TIMESTAMP NULL DEFAULT NULL,
  updated_at    TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
