-- Миграция: Создание таблиц для системы промт-воронок
-- Дата: 2026-01-15
-- ВАЖНО: user_id должен быть BIGINT для совместимости с таблицей users

-- Таблица промтов
CREATE TABLE IF NOT EXISTS prompts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    code VARCHAR(50) UNIQUE NOT NULL COMMENT 'Уникальный код для ссылки (prompt_CODE)',
    name VARCHAR(255) NOT NULL COMMENT 'Название для админки',
    intro_message TEXT NOT NULL COMMENT 'Вступительное сообщение',
    intro_button_text VARCHAR(100) DEFAULT 'Начать' COMMENT 'Текст кнопки начала',
    prompt_template TEXT NOT NULL COMMENT 'Шаблон промта с плейсхолдерами {{var}}',
    reward_points INT DEFAULT 1000 COMMENT 'Награда в баллах',
    result_button_text VARCHAR(100) DEFAULT 'Забрать баллы' COMMENT 'Текст кнопки получения награды',
    after_reward_message TEXT COMMENT 'Сообщение после получения награды',
    is_active TINYINT(1) DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_code (code),
    INDEX idx_active (is_active)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Таблица вопросов для промтов
CREATE TABLE IF NOT EXISTS prompt_questions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    prompt_id INT NOT NULL,
    question_order INT NOT NULL COMMENT 'Порядок вопроса (1, 2, 3...)',
    question_text TEXT NOT NULL COMMENT 'Текст вопроса',
    placeholder VARCHAR(50) NOT NULL COMMENT 'Плейсхолдер без скобок (goal, level)',
    confirmation_text TEXT COMMENT 'Текст подтверждения после ответа',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_prompt_order (prompt_id, question_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Таблица сессий пользователей (без FK для совместимости)
CREATE TABLE IF NOT EXISTS prompt_user_sessions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT NOT NULL COMMENT 'ID пользователя из таблицы users',
    prompt_id INT NOT NULL COMMENT 'ID промта',
    current_question INT DEFAULT 0 COMMENT '0=не начат, 1+=номер текущего вопроса',
    answers JSON COMMENT 'Ответы пользователя {"goal": "...", "level": "..."}',
    result_text TEXT COMMENT 'Сгенерированный результат от AI',
    is_completed TINYINT(1) DEFAULT 0 COMMENT 'Прошёл всю воронку',
    reward_claimed TINYINT(1) DEFAULT 0 COMMENT 'Получил награду',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY unique_user_prompt (user_id, prompt_id),
    INDEX idx_user (user_id),
    INDEX idx_prompt (prompt_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
