-- جدول کانفیگ‌های دستی سرور
CREATE TABLE IF NOT EXISTS server_configs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    server_id INT NOT NULL,
    protocol ENUM('v2ray', 'openvpn', 'wireguard', 'ikev2', 'shadowsocks') NOT NULL,
    config TEXT NOT NULL COMMENT 'کانفیگ کامل یا لینک vmess://',
    port INT DEFAULT NULL,
    encryption VARCHAR(50) DEFAULT NULL,
    remarks VARCHAR(255) DEFAULT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE,
    INDEX idx_server_id (server_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- جدول اتصالات کاربران (برای ترک کردن ترافیک)
CREATE TABLE IF NOT EXISTS user_connections (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    subscription_id INT NOT NULL,
    server_id INT NOT NULL,
    config_id INT DEFAULT NULL COMMENT 'اگر از کانفیگ دستی استفاده شده',
    connected_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    disconnected_at TIMESTAMP NULL,
    duration_seconds INT DEFAULT 0,
    traffic_used BIGINT DEFAULT 0 COMMENT 'ترافیک مصرفی به بایت',
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
    FOREIGN KEY (subscription_id) REFERENCES subscriptions(id) ON DELETE CASCADE,
    FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE,
    FOREIGN KEY (config_id) REFERENCES server_configs(id) ON DELETE SET NULL,
    INDEX idx_user_id (user_id),
    INDEX idx_subscription_id (subscription_id),
    INDEX idx_server_id (server_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- افزودن فیلد برای پنل V2Ray
ALTER TABLE servers 
ADD COLUMN IF NOT EXISTS v2ray_panel_url VARCHAR(255) DEFAULT NULL COMMENT 'آدرس API پنل V2Ray',
ADD COLUMN IF NOT EXISTS v2ray_panel_token VARCHAR(255) DEFAULT NULL COMMENT 'توکن دسترسی به پنل';
