-- ۱. جدول کاربران (شامل سیستم زیرمجموعه‌گیری و وضعیت مراحل)
CREATE TABLE IF NOT EXISTS `users` (
  `id` BIGINT PRIMARY KEY,
  `balance` BIGINT DEFAULT 0,
  `step` VARCHAR(100) DEFAULT 'none',
  `temp_data` TEXT DEFAULT NULL,
  `is_ban` TINYINT(1) DEFAULT 0,
  `inviter_id` BIGINT DEFAULT NULL,
  `ref_rewarded` TINYINT(1) DEFAULT 0,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ۲. جدول سرویس‌ها
CREATE TABLE IF NOT EXISTS `services` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `category` VARCHAR(100) NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  `service_id` INT NOT NULL,
  `price` INT NOT NULL COMMENT 'قیمت هر 1000 عدد به تومان',
  `min` INT DEFAULT 10,
  `max` INT DEFAULT 10000,
  `status` TINYINT(1) DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ۳. جدول سفارش‌ها
CREATE TABLE IF NOT EXISTS `orders` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `user_id` BIGINT NOT NULL,
  `service_id` INT NOT NULL,
  `api_order_id` INT NOT NULL,
  `link` TEXT NOT NULL,
  `quantity` INT NOT NULL,
  `price` BIGINT NOT NULL,
  `status` VARCHAR(50) DEFAULT 'Pending',
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ۴. جدول رسیدهای کارت به کارت
CREATE TABLE IF NOT EXISTS `receipts` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `user_id` BIGINT NOT NULL,
  `amount` BIGINT NOT NULL,
  `photo_id` VARCHAR(255) NOT NULL,
  `status` ENUM('pending', 'approved', 'rejected') DEFAULT 'pending',
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ۵. جدول تنظیمات پویا (قفل کانال، کارت بانکی، پاداش زیرمجموعه)
CREATE TABLE IF NOT EXISTS `settings` (
  `setting_key` VARCHAR(50) PRIMARY KEY,
  `setting_value` TEXT DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT IGNORE INTO `settings` (`setting_key`, `setting_value`) VALUES 
('force_join_channel', NULL),
('card_number', '6037-9975-0000-0000'),
('card_holder', 'نام صاحب حساب'),
('ref_bonus', '1000'),
('ref_commission', '10');

-- ۶. جدول کدهای هدیه
CREATE TABLE IF NOT EXISTS `gift_codes` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `code` VARCHAR(50) NOT NULL UNIQUE,
  `amount` BIGINT NOT NULL COMMENT 'مبلغ هدیه به تومان',
  `max_uses` INT NOT NULL DEFAULT 1,
  `used_count` INT NOT NULL DEFAULT 0,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ۷. جدول ثبت استفاده‌کنندگان از کد هدیه
CREATE TABLE IF NOT EXISTS `gift_uses` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `code_id` INT NOT NULL,
  `user_id` BIGINT NOT NULL,
  `used_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY `unique_user_code` (`code_id`, `user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;