-- ============================================================================
-- ربات رمان رها محمدی — migration
-- Run on database: ahpbot_raha_mohamadi
-- ============================================================================

-- کانال اصلی
UPDATE `admin` SET `channel_id` = '-1003701513899' WHERE `id` = 1;

-- اگر ستون از قبل وجود دارد، خطای Duplicate column طبیعی است — همان خط را رد کنید.
ALTER TABLE `admin`
    ADD COLUMN `admin_list` TEXT DEFAULT NULL;

ALTER TABLE `admin`
    ADD COLUMN `block_list` TEXT DEFAULT NULL;

ALTER TABLE `admin`
    ADD COLUMN `forced_channels` TEXT DEFAULT NULL;

-- بدون emoji در DEFAULT (جدول admin معمولاً latin1 است)
ALTER TABLE `admin`
    ADD COLUMN `get_novel_button_text` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL;

ALTER TABLE `admin`
    ADD COLUMN `get_novel_post_text` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL;

UPDATE `admin`
SET `get_novel_button_text` = '📖 دریافت رمان'
WHERE `id` = 1 AND (`get_novel_button_text` IS NULL OR `get_novel_button_text` = '');

-- رمان‌ها
CREATE TABLE IF NOT EXISTS `novels` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `post_chatid` bigint(20) NOT NULL,
  `post_message_id` bigint(20) NOT NULL,
  `channel_message_id` bigint(20) DEFAULT NULL,
  `status` enum('draft','published','deleted') NOT NULL DEFAULT 'draft',
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_novels_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- محتوای رمان (پیام‌های ارسالی ادمین)
CREATE TABLE IF NOT EXISTS `novel_contents` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `novel_id` int(11) NOT NULL,
  `from_chatid` bigint(20) NOT NULL,
  `message_id` bigint(20) NOT NULL,
  `sort_order` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `idx_novel_contents_novel` (`novel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ذخیره پست‌های کانال‌های عضویت اجباری (برای ریکشن)
CREATE TABLE IF NOT EXISTS `channel_messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `channel_id` varchar(64) NOT NULL,
  `message_id` bigint(20) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_channel_messages_lookup` (`channel_id`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ثبت دریافت رمان توسط کاربر
CREATE TABLE IF NOT EXISTS `novel_downloads` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `novel_id` int(11) NOT NULL,
  `chatid` bigint(20) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_novel_user` (`novel_id`, `chatid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ثبت ریکشن کاربران روی پست‌های کانال
CREATE TABLE IF NOT EXISTS `user_channel_reactions` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `chatid` bigint(20) NOT NULL,
  `channel_id` varchar(64) NOT NULL,
  `message_id` bigint(20) NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_user_post_reaction` (`chatid`, `channel_id`, `message_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
