-- ===========================================================
-- افزوده‌های سیستم پرداخت - این را جداگانه در phpMyAdmin اجرا کنید
-- (بعد از schema.sql اصلی)
-- ===========================================================

-- تنظیمات درگاه‌های پرداخت (زرین‌پال، پی‌پال، و بعداً کریپتو)
CREATE TABLE IF NOT EXISTS `payment_gateways` (
  `id`         INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `gateway`    ENUM('zarinpal','paypal','crypto') NOT NULL UNIQUE,
  `is_active`  TINYINT(1) DEFAULT 0,
  `settings`   JSON,     -- مثلا: {"merchant_id": "..."} برای زرین‌پال یا {"client_id":"...","secret":"..."} برای پی‌پال
  `updated_at` DATETIME  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- حساب‌های بانکی/کارت برای پرداخت با فیش بانکی (واریز دستی)
CREATE TABLE IF NOT EXISTS `bank_accounts` (
  `id`           INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `bank_name`    VARCHAR(100) NOT NULL,   -- مثلا: بانک ملت
  `card_number`  VARCHAR(20),              -- شماره کارت
  `sheba_number` VARCHAR(30),              -- شماره شبا (اختیاری)
  `account_holder` VARCHAR(150) NOT NULL,  -- نام صاحب حساب
  `is_active`    TINYINT(1) DEFAULT 1,
  `sort_order`   INT DEFAULT 0,
  `created_at`   DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- سفارش‌های تمدید/خرید که از صفحه‌ی عمومی renew.html می‌آیند
CREATE TABLE IF NOT EXISTS `renewal_orders` (
  `id`              INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `license_id`      INT UNSIGNED NOT NULL,
  `plan_id`         INT UNSIGNED NOT NULL,
  `amount`          DECIMAL(10,2) NOT NULL,
  `currency`        VARCHAR(10) DEFAULT 'IRT',

  `payment_method`  ENUM('zarinpal','paypal','crypto','bank_transfer') NOT NULL,
  `status`          ENUM('pending','awaiting_verification','paid','failed','cancelled') DEFAULT 'pending',

  -- برای درگاه‌های آنلاین (زرین‌پال/پی‌پال)
  `gateway_authority` VARCHAR(100),  -- Authority زرین‌پال یا Order ID پی‌پال
  `gateway_ref_id`    VARCHAR(100),  -- شماره تراکنش نهایی بعد از تایید

  -- برای فیش بانکی (واریز دستی)
  `receipt_image_path` VARCHAR(255), -- مسیر تصویر فیش آپلودشده
  `receipt_note`       TEXT,         -- توضیح مشتری (مثلا زمان واریز)
  `bank_account_id`    INT UNSIGNED NULL, -- کدام حساب بانکی برای واریز انتخاب شده
  `verified_by_admin_id` INT UNSIGNED NULL,
  `verified_at`          DATETIME NULL,

  `created_at`      DATETIME DEFAULT CURRENT_TIMESTAMP,
  `updated_at`      DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  FOREIGN KEY (`license_id`) REFERENCES `licenses`(`id`),
  FOREIGN KEY (`plan_id`) REFERENCES `plans`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- مقادیر پیش‌فرض درگاه‌ها (غیرفعال تا شما تنظیماتشان را وارد کنید)
INSERT IGNORE INTO `payment_gateways` (`gateway`, `is_active`, `settings`) VALUES
('zarinpal', 0, '{"merchant_id": ""}'),
('paypal',   0, '{"client_id": "", "client_secret": "", "mode": "sandbox"}'),
('crypto',   0, '{}');
