-- migrate_v8.sql
-- ارتقا به نسخه‌ی ۲.۸: تایید دستی مدیر برای مواقعی که اعمال خودکار سقف کاربر روی پنل
-- (خرید نمایندگی فلت جدید با سقف کاربر، یا خرید کاربر اضافه) تایید نمی‌شود.
--
-- به‌جای رد کردن خرید یا بازگرداندن پول، حالا وقتی پنل سقف را تایید نکند، درخواست به
-- صورت یک «اقدام در انتظار» برای همه‌ی مالکین (OWNER_IDS) با یک دکمه‌ی «✅ دستی انجام
-- دادم» فرستاده می‌شود. مدیر خودش وارد پنل واقعی می‌شود، سقف/کاربر را دستی می‌زند و روی
-- همان دکمه می‌زند؛ همان لحظه به مشتری اطلاع‌رسانی می‌شود.
-- قبل از اجرا حتما از دیتابیس بکاپ بگیرید.

CREATE TABLE IF NOT EXISTS pending_admin_actions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    type ENUM('new_purchase','extra_users') NOT NULL,
    bot_user_id INT NOT NULL,
    panel_id INT NOT NULL,
    representative_id INT NULL,        -- new_purchase: بعد از ساخت ردیف نمایندگی پر می‌شود | extra_users: همیشه پر است
    panel_username VARCHAR(100) NOT NULL,
    panel_password VARCHAR(100) NULL,  -- فقط new_purchase (تا وقتی تایید نشده به مشتری داده نمی‌شود)
    plan_name VARCHAR(100) NULL,
    target_max_users INT NULL,         -- سقف نهایی/کل مورد نظر
    extra_qty INT NULL,                -- فقط extra_users: چند عدد اضافه شد
    cost BIGINT NOT NULL DEFAULT 0,    -- مبلغی که از قبل از کیف پول مشتری کسر شده (برنمی‌گردد؛ فقط تحویل عقب می‌افتد)
    status ENUM('pending','done') NOT NULL DEFAULT 'pending',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    resolved_at DATETIME NULL,
    resolved_by BIGINT NULL,           -- آیدی تلگرام مدیری که تایید کرد
    FOREIGN KEY (bot_user_id) REFERENCES bot_users(id),
    FOREIGN KEY (panel_id) REFERENCES panels(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- پیام‌های اعلام هر «اقدام در انتظار» که برای هر مالک/ادمین ارسال شده (برای ویرایش همه‌ی
-- پیام‌ها بعد از تایید، دقیقا مثل transaction_notifications برای رسیدهای کارت‌به‌کارت)
CREATE TABLE IF NOT EXISTS pending_admin_action_notifications (
    id INT AUTO_INCREMENT PRIMARY KEY,
    action_id INT NOT NULL,
    owner_telegram_id BIGINT NOT NULL,
    message_id BIGINT NOT NULL,
    FOREIGN KEY (action_id) REFERENCES pending_admin_actions(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
