<?php
/**
 * صفحة دفع اشتراك الخطة — إتمام الدفع بالبطاقة
 * index.php?page=subscribe_pay&tenant=slug&plan=id
 *
 * تستخدم إعدادات بوابة الدفع للمنصة (tenant_id=1) — Stripe، رابط يدوي، إلخ.
 * المستخدم يدخل بيانات البطاقة في بوابات الدفع الآمنة، ولا تُخزّن هنا.
 */
$config = require __DIR__ . '/../config/config.php';
require_once __DIR__ . '/../src/Core/Database.php';
require_once __DIR__ . '/../src/Core/PaymentGateway.php';
$db = \App\Core\Database::getInstance($config['db'])->connection();

$tenantSlug = trim($_GET['tenant'] ?? '');
$planId = (int)($_GET['plan'] ?? 0);
$action = $_GET['action'] ?? 'pay';

// ─── صفحة نجاح الدفع ────────────────────────────────────────────────────
if ($action === 'success') {
    ?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%230f766e'/%3E%3Ctext x='50%25' y='50%25' font-family='Arial' font-size='28' font-weight='bold' fill='white' text-anchor='middle' dominant-baseline='central'%3ESL%3C/text%3E%3C/svg%3E">
    <title>تم الدفع — SmartLab</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body class="login-page">
<div class="login-container" style="max-width:480px;">
    <h1 style="color:var(--status-completed);">✓ تم إرسال طلب الدفع</h1>
    <p>سيتم التحقق من استلام الدفعة وتفعيل اشتراكك خلال فترة قصيرة.</p>
    <p><a href="index.php?page=login&tenant=<?php echo htmlspecialchars($tenantSlug ?: '', ENT_QUOTES, 'UTF-8'); ?>" class="btn-primary">تسجيل الدخول</a></p>
</div>
</body>
</html>
    <?php
    return;
}

// ─── التحقق من المختبر والخطة ────────────────────────────────────────────
$tenant = null;
$plan = null;
if ($tenantSlug !== '') {
    $stmt = $db->prepare('SELECT id, slug, name FROM tenants WHERE slug = ? AND status IN (?, ?) LIMIT 1');
    $stmt->execute([$tenantSlug, 'active', 'trial']);
    $tenant = $stmt->fetch();
}
if ($planId > 0) {
    $stmt = $db->prepare('SELECT id, name, code, price_monthly FROM subscription_plans WHERE id = ? LIMIT 1');
    $stmt->execute([$planId]);
    $plan = $stmt->fetch();
}

if (!$tenant || !$plan || (float)($plan['price_monthly'] ?? 0) <= 0) {
    ?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>خطأ — SmartLab</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body class="login-page">
<div class="login-container" style="max-width:480px;">
    <h1>الاشتراك غير متاح</h1>
    <p class="alert alert-danger">المختبر أو الخطة غير موجودة أو الخطة مجانية.</p>
    <p><a href="index.php?page=purchase" class="btn-primary">عرض الخطط</a></p>
</div>
</body>
</html>
    <?php
    return;
}

$amount = (float)$plan['price_monthly'];
$subscriptionInvoice = [
    'id' => 0,
    'invoice_number' => 'SUB-' . $tenantSlug . '-' . $planId . '-' . time(),
    'order_number' => 'اشتراك ' . ($plan['name'] ?? ''),
    'patient_name' => $tenant['name'] ?? $tenantSlug,
    'net_amount' => $amount,
    'paid_amount' => 0,
    'currency' => 'USD',
];

// ─── استخدام بوابة الدفع للمنصة (tenant_id=1) ─────────────────────────────
$pg = new \App\Core\PaymentGateway($db, 1);
$baseUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . '://' . ($_SERVER['HTTP_HOST'] ?? 'localhost');
$scriptDir = str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'] ?? ''));
if ($scriptDir === '/') $scriptDir = '';
$successUrl = $baseUrl . $scriptDir . '/index.php?page=subscribe_pay&action=success&tenant=' . urlencode($tenantSlug) . '&plan=' . $planId;
$cancelUrl = $baseUrl . $scriptDir . '/index.php?page=login&tenant=' . urlencode($tenantSlug);

$result = $pg->createPayment($subscriptionInvoice, $successUrl, $cancelUrl);

// ─── إعادة توجيه إلى صفحة الدفع (Stripe، زين كاش، إلخ) ───────────────────
if (!empty($result['url']) && empty($result['error'])) {
    header('Location: ' . $result['url']);
    exit;
}

// ─── في حال الخطأ أو رابط الدفع اليدوي ───────────────────────────────────
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%230f766e'/%3E%3Ctext x='50%25' y='50%25' font-family='Arial' font-size='28' font-weight='bold' fill='white' text-anchor='middle' dominant-baseline='central'%3ESL%3C/text%3E%3C/svg%3E">
    <title>إتمام الدفع — <?php echo htmlspecialchars($plan['name'] ?? '', ENT_QUOTES, 'UTF-8'); ?></title>
    <link rel="stylesheet" href="styles.css">
</head>
<body class="login-page">
<div class="login-container" style="max-width:500px;">
    <h1>💳 إتمام الدفع بالبطاقة</h1>
    <p><strong>المختبر:</strong> <?php echo htmlspecialchars($tenant['name'] ?? $tenantSlug, ENT_QUOTES, 'UTF-8'); ?></p>
    <p><strong>الخطة:</strong> <?php echo htmlspecialchars($plan['name'] ?? '', ENT_QUOTES, 'UTF-8'); ?></p>
    <p><strong>المبلغ:</strong> <?php echo number_format($amount, 2); ?> USD/شهر</p>

    <?php if (!empty($result['error'])): ?>
    <p class="alert alert-danger"><?php echo htmlspecialchars($result['error'], ENT_QUOTES, 'UTF-8'); ?></p>
    <?php endif; ?>

    <?php if ($pg->getPaymentLink()): ?>
    <p><a href="<?php echo htmlspecialchars($pg->getPaymentLink() . (strpos($pg->getPaymentLink(), '?') !== false ? '&' : '?') . 'amount=' . $amount . '&ref=' . urlencode($subscriptionInvoice['invoice_number']), ENT_QUOTES, 'UTF-8'); ?>" class="btn-primary" style="display:inline-block;margin:12px 0;">الانتقال للدفع بالبطاقة</a></p>
    <?php endif; ?>

    <?php if ($pg->getPaymentNumber()): ?>
    <p style="margin-top:16px;color:var(--text-muted);">للدفع يدوياً: <strong><?php echo htmlspecialchars($pg->getPaymentNumber(), ENT_QUOTES, 'UTF-8'); ?></strong></p>
    <p style="font-size:0.9rem;">اذكر رقم المرجع: <code><?php echo htmlspecialchars($subscriptionInvoice['invoice_number'], ENT_QUOTES, 'UTF-8'); ?></code></p>
    <?php endif; ?>

    <p style="margin-top:24px;"><a href="index.php?page=login&tenant=<?php echo urlencode($tenantSlug); ?>">تسجيل الدخول</a> — <a href="index.php?page=purchase">عرض الخطط</a></p>
</div>
</body>
</html>
