-- این migration را یکبار اجرا کنید.
-- جداول جدید برای پنل تحت وب + تنظیمات کرون + لاگ‌ها

CREATE TABLE IF NOT EXISTS admin_users (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  telegram_id VARCHAR(64) NOT NULL UNIQUE,
  username VARCHAR(191) NULL,
  password_hash VARCHAR(255) NOT NULL,
  role_level TINYINT NOT NULL DEFAULT 1, -- 1: Management, 2: Sales, 3: Support (قابل سفارشی)
  is_active TINYINT NOT NULL DEFAULT 1,
  created_at INT UNSIGNED NOT NULL,
  updated_at INT UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

CREATE TABLE IF NOT EXISTS cron_settings (
  name VARCHAR(64) PRIMARY KEY,
  is_enabled TINYINT NOT NULL DEFAULT 1,
  every_seconds INT UNSIGNED NULL,
  last_run_at INT UNSIGNED NULL,
  last_status VARCHAR(32) NULL,
  last_error TEXT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

INSERT IGNORE INTO cron_settings (name,is_enabled,every_seconds) VALUES
('disable_inbound',1,300),
('remove_expired',1,86400),
('monitor_nodes',1,900),
('monitor_panels',1,300),
('inactive_users_notify',0,86400);

CREATE TABLE IF NOT EXISTS audit_logs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  actor_admin_telegram_id VARCHAR(64) NULL,
  actor_user_id VARCHAR(64) NULL,
  action VARCHAR(191) NOT NULL,
  entity VARCHAR(191) NULL,
  entity_id VARCHAR(191) NULL,
  meta_json JSON NULL,
  created_at INT UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

-- ستون‌های مانیتورینگ در marzban_panel (اگر قبلاً اضافه نشده)
ALTER TABLE marzban_panel
  ADD COLUMN IF NOT EXISTS monitor_status VARCHAR(16) NULL,
  ADD COLUMN IF NOT EXISTS monitor_last_checked_at INT UNSIGNED NULL,
  ADD COLUMN IF NOT EXISTS monitor_last_alert_at INT UNSIGNED NULL,
  ADD COLUMN IF NOT EXISTS end_inbounds TEXT NULL;

-- لاگ‌های خطا برای عملیات پنل (ساخت/حذف/آپدیت)
CREATE TABLE IF NOT EXISTS panel_task_logs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  panel_name VARCHAR(255) NOT NULL,
  task VARCHAR(191) NOT NULL,
  username VARCHAR(191) NULL,
  status VARCHAR(32) NOT NULL,
  error TEXT NULL,
  created_at INT UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
