-- ==================================================
-- جداول دیتابیس ربات مدیریت تبلیغات کانال
-- نسخه کامل: مرحله ۱ + مرحله ۲ (زمان‌بندی/ویرایش/ریپلای) + مرحله ۳ (آمار/چند ادمین/جستجو)
-- برای نصب تازه، کل این فایل را ایمپورت کنید.
-- اگر قبلاً نسخه مرحله ۱ را نصب کرده‌اید، به‌جای این فایل از database/migration_phase2_3.sql استفاده کنید.
-- ==================================================

CREATE TABLE IF NOT EXISTS admins (
  id INT AUTO_INCREMENT PRIMARY KEY,
  telegram_id BIGINT UNIQUE NOT NULL,
  name VARCHAR(255) DEFAULT NULL,
  role ENUM('super','sender','deleter','viewer') NOT NULL DEFAULT 'super',
  status ENUM('active','inactive') NOT NULL DEFAULT 'active',
  state VARCHAR(50) DEFAULT NULL,
  temp_data TEXT DEFAULT NULL,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS channels (
  id INT AUTO_INCREMENT PRIMARY KEY,
  chat_id BIGINT UNIQUE NOT NULL,
  title VARCHAR(255) DEFAULT NULL,
  type ENUM('channel','group') NOT NULL DEFAULT 'channel',
  status ENUM('active','inactive','error') NOT NULL DEFAULT 'active',
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS messages (
  id INT AUTO_INCREMENT PRIMARY KEY,
  type VARCHAR(20) NOT NULL,
  content MEDIUMTEXT,
  caption TEXT,
  entities TEXT,
  buttons TEXT,
  reply_to_message_id INT DEFAULT NULL,
  created_by BIGINT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS message_map (
  id INT AUTO_INCREMENT PRIMARY KEY,
  message_id INT NOT NULL,
  chat_id BIGINT NOT NULL,
  tg_message_id BIGINT NOT NULL,
  FOREIGN KEY (message_id) REFERENCES messages(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS schedules (
  id INT AUTO_INCREMENT PRIMARY KEY,
  action ENUM('send','delete') NOT NULL,
  payload_type VARCHAR(20) DEFAULT NULL,
  content MEDIUMTEXT DEFAULT NULL,
  caption TEXT DEFAULT NULL,
  entities TEXT DEFAULT NULL,
  buttons TEXT DEFAULT NULL,
  target_channels TEXT DEFAULT NULL,
  target_message_id INT DEFAULT NULL,
  reply_to_message_id INT DEFAULT NULL,
  silent TINYINT(1) DEFAULT 0,
  link_preview VARCHAR(20) DEFAULT NULL,
  auto_delete_at DATETIME DEFAULT NULL,
  auto_delete_hours DECIMAL(6,2) DEFAULT NULL,
  send_mode VARCHAR(10) DEFAULT 'copy',
  forward_source_chat_id BIGINT DEFAULT NULL,
  forward_source_message_id BIGINT DEFAULT NULL,
  recurrence ENUM('once','daily','weekly','monthly') NOT NULL DEFAULT 'once',
  scheduled_at DATETIME NOT NULL,
  status ENUM('pending','done','cancelled') NOT NULL DEFAULT 'pending',
  created_by BIGINT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  admin_id BIGINT,
  action VARCHAR(50),
  ref_id INT,
  success_count INT DEFAULT 0,
  fail_count INT DEFAULT 0,
  detail TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS settings (
  `key` VARCHAR(100) PRIMARY KEY,
  `value` TEXT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ثبت مدیر اصلی (مقدار زیر را با آیدی عددی تلگرام خودتان جایگزین کنید
-- همان مقداری که در فایل config.php برای SUPER_ADMIN_ID قرار می‌دهید)
INSERT INTO admins (telegram_id, name, role, status)
VALUES (432769189, 'مدیر اصلی', 'super', 'active');
