-- ============================================================
-- اسکیمای دیتابیس ربات آموزشی
-- شامل: کاربران، درس‌ها (بر اساس روز) و بخش‌های هر درس (سکشن‌ها)
-- ============================================================

CREATE TABLE IF NOT EXISTS `users` (
  `id`                  INT AUTO_INCREMENT PRIMARY KEY,
  `chat_id`             BIGINT NOT NULL,
  `first_name`          VARCHAR(255) DEFAULT NULL,
  `last_name`           VARCHAR(255) DEFAULT NULL,
  `user_name`           VARCHAR(255) DEFAULT NULL,
  `mobile`              VARCHAR(20)  DEFAULT NULL,
  `age`                 INT DEFAULT NULL,
  `city`                VARCHAR(255) DEFAULT NULL,

  `is_admin`            TINYINT(1) NOT NULL DEFAULT 0,
  `is_registered`       TINYINT(1) NOT NULL DEFAULT 0,

  -- آخرین روزی که درسش برای کاربر ارسال شده (0 = هنوز هیچ درسی ارسال نشده)
  `current_day`         INT NOT NULL DEFAULT 0,
  `last_lesson_sent_at` DATETIME DEFAULT NULL,

  -- مدیریت وضعیت گفت‌وگو (state machine) - دقیقا مطابق سبک پروژه
  `chat_state`          VARCHAR(50)  DEFAULT NULL,
  `chat_step`           VARCHAR(50)  DEFAULT NULL,

  -- نگهداری داده‌های موقت بین مراحل (مثلا lesson_id در حال ویرایش توسط ادمین) به صورت JSON
  `context_data`        TEXT DEFAULT NULL,

  `previus_message`     TEXT DEFAULT NULL,

  `created_at`          DATETIME DEFAULT CURRENT_TIMESTAMP,

  UNIQUE KEY `uniq_chat_id` (`chat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


CREATE TABLE IF NOT EXISTS `lessons` (
  `id`         INT AUTO_INCREMENT PRIMARY KEY,
  `title`      VARCHAR(255) NOT NULL,
  `day_number` INT NOT NULL,
  `is_active`  TINYINT(1) NOT NULL DEFAULT 1,
  `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,

  UNIQUE KEY `uniq_day_number` (`day_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


CREATE TABLE IF NOT EXISTS `lesson_sections` (
  `id`         INT AUTO_INCREMENT PRIMARY KEY,
  `lesson_id`  INT NOT NULL,

  -- نوع محتوای این بخش از درس
  `type`       ENUM('text','photo','video','voice','audio','document') NOT NULL,

  -- برای text: خود متن. برای فایل‌ها: file_id تلگرام/بله
  `content`    TEXT DEFAULT NULL,

  -- کپشن اختیاری برای فایل‌ها (عکس/ویدیو/سند و ...)
  `caption`    TEXT DEFAULT NULL,

  -- ترتیب نمایش بخش‌های یک درس (عدد کمتر = اولویت بالاتر و زودتر ارسال می‌شود)
  `priority`   INT NOT NULL DEFAULT 0,

  `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,

  KEY `idx_lesson_id` (`lesson_id`),
  CONSTRAINT `fk_section_lesson` FOREIGN KEY (`lesson_id`)
      REFERENCES `lessons`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
