<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
require_once '../config.php';

if (!isLoggedIn() || !isAdmin()) {
    setMessage('دسترسی غیرمجاز', 'error');
    redirect('../login.php');
}

// Handle Add Panel Post Request
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'] ?? '';
    $url = $_POST['url'] ?? '';
    $username = $_POST['username'] ?? '';
    $password = $_POST['password'] ?? '';
    $proxy_type = $_POST['proxy_type'] ?? null;
    $proxy_host = $_POST['proxy_host'] ?? null;
    $proxy_port = !empty($_POST['proxy_port']) ? (int)$_POST['proxy_port'] : null;
    $proxy_username = $_POST['proxy_username'] ?? null;
    $proxy_password = $_POST['proxy_password'] ?? null;
    $use_proxy = isset($_POST['use_proxy']) ? 1 : 0;
    $subscription_base_url = $_POST['subscription_base_url'] ?? null;
    $config_domain = $_POST['config_domain'] ?? null;

    if (empty($name) || empty($url) || empty($username) || empty($password)) {
        setMessage('لطفاً تمام فیلدهای اصلی را پر کنید', 'error');
    } else {
        try {
            $stmt = $pdo->prepare(
                "INSERT INTO panels (name, url, username, password, proxy_type, proxy_host, proxy_port, proxy_username, proxy_password, use_proxy, subscription_base_url, config_domain) " .
                "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            );
            $stmt->execute([$name, $url, $username, $password, $proxy_type, $proxy_host, $proxy_port, $proxy_username, $proxy_password, $use_proxy, $subscription_base_url, $config_domain]);
            setMessage('پنل با موفقیت افزوده شد', 'success');
            redirect('panels.php');
        } catch (Exception $e) {
            setMessage('خطا در افزودن پنل: ' . $e->getMessage(), 'error');
        }
    }
    // Redirect to self to show message on failure
    redirect('panel_add.php');
}

$page_title = 'افزودن پنل جدید';
require_once '../includes/header.php';
?>

<div class="card admin-main-card">
    <div class="card-header">
        <h5 class="mb-0">افزودن پنل X-UI جدید</h5>
    </div>
    <div class="card-body">
        <form method="POST" action="panel_add.php">
            <nav>
                <div class="nav nav-tabs" id="nav-tab" role="tablist">
                    <button class="nav-link active" id="nav-main-tab" data-bs-toggle="tab" data-bs-target="#nav-main" type="button" role="tab">تنظیمات اصلی</button>
                    <button class="nav-link" id="nav-proxy-tab" data-bs-toggle="tab" data-bs-target="#nav-proxy" type="button" role="tab">تنظیمات Proxy</button>
                    <button class="nav-link" id="nav-sub-tab" data-bs-toggle="tab" data-bs-target="#nav-sub" type="button" role="tab">تنظیمات Subscription</button>
                </div>
            </nav>
            <div class="tab-content pt-3" id="nav-tabContent">
                <!-- Main Settings Tab -->
                <div class="tab-pane fade show active" id="nav-main" role="tabpanel">
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">نام پنل <span class="text-danger">*</span></label>
                            <input type="text" name="name" class="form-control" required placeholder="مثلا: پنل آلمان">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">آدرس پنل (URL) <span class="text-danger">*</span></label>
                            <input type="url" name="url" class="form-control" placeholder="https://panel.example.com:2053" required>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">نام کاربری <span class="text-danger">*</span></label>
                            <input type="text" name="username" class="form-control" required>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">رمز عبور <span class="text-danger">*</span></label>
                            <input type="password" name="password" class="form-control" required>
                        </div>
                    </div>
                </div>

                <!-- Proxy Settings Tab -->
                <div class="tab-pane fade" id="nav-proxy" role="tabpanel">
                    <p class="text-muted">در صورت نیاز به اتصال به پنل از طریق پراکسی، این بخش را تکمیل کنید.</p>
                    <div class="form-check mb-3">
                        <input class="form-check-input" type="checkbox" name="use_proxy" id="use_proxy" value="1">
                        <label class="form-check-label" for="use_proxy">در صورت خطا در اتصال مستقیم، از Proxy استفاده شود.</label>
                    </div>
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="form-label">نوع Proxy</label>
                            <select name="proxy_type" class="form-select">
                                <option value="socks5" selected>SOCKS5</option>
                                <option value="http">HTTP</option>
                            </select>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">آدرس Proxy</label>
                            <input type="text" name="proxy_host" class="form-control" placeholder="127.0.0.1">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">پورت Proxy</label>
                            <input type="number" name="proxy_port" class="form-control" placeholder="1080">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">نام کاربری Proxy (اختیاری)</label>
                            <input type="text" name="proxy_username" class="form-control">
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="form-label">رمز عبور Proxy (اختیاری)</label>
                            <input type="password" name="proxy_password" class="form-control">
                        </div>
                    </div>
                </div>

                <!-- Subscription Settings Tab -->
                <div class="tab-pane fade" id="nav-sub" role="tabpanel">
                    <div class="mb-3">
                        <label class="form-label">آدرس پایه لینک اشتراک (Subscription)</label>
                        <input type="url" name="subscription_base_url" class="form-control" placeholder="https://sub.example.com">
                        <div class="form-text">اگر لینک subscription شما روی دامنه‌ای متفاوت از آدرس پنل است، آن را اینجا وارد کنید. در غیر این صورت، خالی بگذارید.</div>
                    </div>
                    <div class="mb-3">
                        <label class="form-label">دامنه تانل شده (مخصوص کانفیگ)</label>
                        <input type="text" name="config_domain" class="form-control" placeholder="tun.example.com">
                        <div class="form-text">این دامنه در لینک‌های کانفیگ جایگزین IP یا دامنه اصلی پنل می‌شود. اگر خالی باشد، از سایر تنظیمات (SNI, Host) یا آدرس پنل استفاده می‌شود.</div>
                    </div>
                </div>
            </div>

            <div class="mt-4">
                <button type="submit" class="btn btn-primary">افزودن پنل</button>
                <a href="panels.php" class="btn btn-secondary">انصراف</a>
            </div>
        </form>
    </div>
</div>

<?php require_once '../includes/footer.php'; ?>
