<?php
declare(strict_types=1);
if (session_status() !== PHP_SESSION_ACTIVE) session_start();

date_default_timezone_set('Asia/Dubai');

function h($v): string {
    return htmlspecialchars((string)$v, ENT_QUOTES, 'UTF-8');
}

function status_label(string $status): string {
    return match ($status) {
        'today'          => 'اليوم',
        'scheduled'      => 'مجدولة',
        'completed'      => 'تمت',
        'postponed'      => 'مؤجلة',
        'cancelled'      => 'ألغيت',
        'waiting_result' => 'بانتظار النتيجة',
        default          => 'غير معروف',
    };
}

function result_status_label(string $status): string {
    return match ($status) {
        'none'                  => 'لا يوجد',
        'postponed'             => 'تم التأجيل',
        'reserved_for_judgment' => 'حجز للحكم',
        'judgment_issued'       => 'صدر الحكم',
        'document_requested'    => 'طلب مستند',
        'case_struck_out'       => 'شطب الدعوى',
        'settlement'            => 'تم الصلح',
        'execution'             => 'تنفيذ',
        'follow_up_required'    => 'متابعة لاحقة',
        default                 => 'غير معروف',
    };
}

function status_class(string $status): string {
    return match ($status) {
        'today'          => 'badge-today',
        'scheduled'      => 'badge-scheduled',
        'completed'      => 'badge-completed',
        'postponed'      => 'badge-postponed',
        'cancelled'      => 'badge-cancelled',
        'waiting_result' => 'badge-waiting',
        default          => 'badge-default',
    };
}

$currentUser   = (string)($_SESSION['name'] ?? 'حمدان الكعبي');
$currentBranch = (string)($_SESSION['branch_name'] ?? 'أبوظبي');

/*
|--------------------------------------------------------------------------
| بيانات تجريبية مؤقتة
|--------------------------------------------------------------------------
| لاحقًا استبدلها باستعلام من قاعدة البيانات
|--------------------------------------------------------------------------
*/
$demoHearings = [
    1 => [
        'id' => 1,
        'case_id' => 15,
        'case_number' => '1025/2026',
        'case_title' => 'سب وتشهير',
        'client_name' => 'أحمد محمود المصري',
        'branch_name' => 'أبوظبي',
        'court_name' => 'محكمة أبوظبي الابتدائية',
        'circuit_name' => 'الدائرة الجزائية',
        'hall_name' => 'القاعة 3',
        'judge_name' => 'القاضي أحمد المنصوري',
        'hearing_type' => 'جلسة مرافعة',
        'hearing_number' => 'H-2026-001',
        'hearing_date' => date('Y-m-d'),
        'hearing_time' => '10:30',
        'lawyer_name' => 'المحامي محمد علي',
        'status' => 'today',
        'result_status' => 'none',
        'pre_notes' => 'مراجعة مذكرة الرد والتأكد من إرفاق المستندات النهائية قبل الجلسة.',
        'post_notes' => '',
        'result_text' => '',
        'next_hearing_date' => '',
        'next_hearing_time' => '',
        'created_at' => date('Y-m-d H:i:s', strtotime('-2 days')),
        'updated_at' => date('Y-m-d H:i:s'),
    ],
    2 => [
        'id' => 2,
        'case_id' => 22,
        'case_number' => '988/2026',
        'case_title' => 'مطالبة مالية',
        'client_name' => 'شركة النخبة التجارية',
        'branch_name' => 'دبي',
        'court_name' => 'محكمة دبي التجارية',
        'circuit_name' => 'الدائرة التجارية',
        'hall_name' => 'القاعة 5',
        'judge_name' => 'القاضي خالد الشحي',
        'hearing_type' => 'جلسة أولى',
        'hearing_number' => 'H-2026-002',
        'hearing_date' => date('Y-m-d', strtotime('+2 days')),
        'hearing_time' => '09:15',
        'lawyer_name' => 'المحامي سعيد الشامسي',
        'status' => 'scheduled',
        'result_status' => 'none',
        'pre_notes' => 'مراجعة العقد الأصلي وتحديد نقاط المطالبة.',
        'post_notes' => '',
        'result_text' => '',
        'next_hearing_date' => '',
        'next_hearing_time' => '',
        'created_at' => date('Y-m-d H:i:s', strtotime('-1 day')),
        'updated_at' => date('Y-m-d H:i:s'),
    ],
    3 => [
        'id' => 3,
        'case_id' => 41,
        'case_number' => '731/2025',
        'case_title' => 'إخلاء مأجور',
        'client_name' => 'خالد راشد',
        'branch_name' => 'العين',
        'court_name' => 'محكمة العين المدنية',
        'circuit_name' => 'الدائرة المدنية',
        'hall_name' => 'القاعة 2',
        'judge_name' => 'القاضي راشد العامري',
        'hearing_type' => 'جلسة نطق بالحكم',
        'hearing_number' => 'H-2025-031',
        'hearing_date' => date('Y-m-d', strtotime('-1 day')),
        'hearing_time' => '11:00',
        'lawyer_name' => 'المحامي راشد المنصوري',
        'status' => 'waiting_result',
        'result_status' => 'reserved_for_judgment',
        'pre_notes' => 'التركيز على استحقاق الإخلاء لعدم السداد.',
        'post_notes' => 'تم الحجز للحكم بعد سماع المرافعة النهائية.',
        'result_text' => 'قررت المحكمة حجز الدعوى للحكم في جلسة لاحقة.',
        'next_hearing_date' => date('Y-m-d', strtotime('+14 days')),
        'next_hearing_time' => '09:00',
        'created_at' => date('Y-m-d H:i:s', strtotime('-10 days')),
        'updated_at' => date('Y-m-d H:i:s', strtotime('-1 day')),
    ],
];

$id = (int)($_GET['id'] ?? 0);
$hearing = $demoHearings[$id] ?? null;
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>عرض الجلسة | HLG Justice Hub</title>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;700;800&display=swap" rel="stylesheet">
  <style>
    :root{
      --bg:#f4f7fb;
      --card:#ffffff;
      --line:#e6edf5;
      --text:#0f2740;
      --muted:#6f8094;
      --primary:#0d2b45;
      --primary-2:#123b5f;
      --shadow:0 10px 30px rgba(15,39,64,.07);
      --radius:20px;
      --success:#0f9d74;
      --success-bg:#e8faf4;
      --warning:#b7791f;
      --warning-bg:#fff7e7;
      --danger:#d64545;
      --danger-bg:#fff0f0;
      --info:#2563eb;
      --info-bg:#edf4ff;
      --violet:#7c3aed;
      --violet-bg:#f3edff;
    }

    *{box-sizing:border-box}
    html,body{
      margin:0;
      padding:0;
      background:var(--bg);
      color:var(--text);
      font-family:'Tajawal',sans-serif;
    }

    a{text-decoration:none;color:inherit}

    .page{
      display:grid;
      grid-template-columns:300px 1fr;
      min-height:100vh;
    }

    .sidebar{
      background:linear-gradient(180deg, #092237 0%, #0c2f4c 100%);
      color:#fff;
      padding:22px 18px;
      position:sticky;
      top:0;
      height:100vh;
      border-left:1px solid rgba(255,255,255,.08);
    }

    .brand{
      padding:16px 14px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:20px;
      background:rgba(255,255,255,.03);
      margin-bottom:18px;
    }

    .brand h2{
      margin:0 0 6px;
      font-size:24px;
      font-weight:800;
    }

    .brand p{
      margin:0;
      color:rgba(255,255,255,.72);
      font-size:13px;
    }

    .side-nav{
      display:flex;
      flex-direction:column;
      gap:10px;
      margin-top:18px;
    }

    .side-link{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:15px 16px;
      border-radius:16px;
      color:#e9f2fb;
      background:rgba(255,255,255,.02);
      border:1px solid rgba(255,255,255,.06);
      transition:.2s ease;
    }

    .side-link:hover,
    .side-link.active{
      background:rgba(255,255,255,.09);
      transform:translateX(-2px);
    }

    .side-link small{
      color:#b8d0e7;
      font-size:12px;
    }

    .main{
      padding:24px;
    }

    .topbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin-bottom:20px;
      flex-wrap:wrap;
    }

    .topbar-right h1{
      margin:0 0 6px;
      font-size:30px;
      font-weight:800;
    }

    .topbar-right p{
      margin:0;
      color:var(--muted);
      font-size:14px;
    }

    .topbar-left{
      display:flex;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
    }

    .chip{
      background:#fff;
      border:1px solid var(--line);
      border-radius:999px;
      padding:10px 16px;
      box-shadow:var(--shadow);
      font-weight:700;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      border:none;
      border-radius:14px;
      padding:12px 18px;
      font-family:inherit;
      font-size:14px;
      font-weight:700;
      cursor:pointer;
      transition:.2s ease;
    }

    .btn-primary{
      background:var(--primary);
      color:#fff;
      box-shadow:0 12px 24px rgba(13,43,69,.18);
    }

    .btn-primary:hover{background:var(--primary-2)}

    .btn-light{
      background:#fff;
      color:var(--text);
      border:1px solid var(--line);
    }

    .btn-danger{
      background:var(--danger);
      color:#fff;
      box-shadow:0 12px 24px rgba(214,69,69,.18);
    }

    .layout{
      display:grid;
      grid-template-columns:1fr 320px;
      gap:18px;
      align-items:start;
    }

    .card{
      background:var(--card);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      overflow:hidden;
    }

    .card-head{
      padding:20px 20px 10px;
      border-bottom:1px solid #edf2f7;
      background:linear-gradient(180deg, #fff 0%, #fbfdff 100%);
    }

    .card-head h3{
      margin:0 0 8px;
      font-size:22px;
      font-weight:800;
    }

    .card-head p{
      margin:0;
      color:var(--muted);
      font-size:13px;
    }

    .card-body{
      padding:20px;
    }

    .grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .detail{
      background:#fbfdff;
      border:1px solid #edf2f7;
      border-radius:16px;
      padding:14px 16px;
    }

    .detail.full{
      grid-column:1 / -1;
    }

    .detail-label{
      color:var(--muted);
      font-size:13px;
      margin-bottom:6px;
      font-weight:700;
    }

    .detail-value{
      color:var(--text);
      font-size:16px;
      font-weight:800;
      line-height:1.7;
      word-break:break-word;
    }

    .note-box{
      background:#fbfdff;
      border:1px solid #edf2f7;
      border-radius:16px;
      padding:16px;
      line-height:2;
      font-size:15px;
      color:var(--text);
      min-height:90px;
    }

    .badge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:100px;
      padding:8px 12px;
      border-radius:999px;
      font-size:12px;
      font-weight:800;
      border:1px solid transparent;
      white-space:nowrap;
    }

    .badge-scheduled{background:var(--info-bg); color:var(--info); border-color:#d5e5ff}
    .badge-today{background:var(--warning-bg); color:var(--warning); border-color:#f7dfaa}
    .badge-completed{background:var(--success-bg); color:var(--success); border-color:#c9efdf}
    .badge-postponed{background:#fff8eb; color:#af7a11; border-color:#f0dfb3}
    .badge-cancelled{background:var(--danger-bg); color:var(--danger); border-color:#ffd6d6}
    .badge-waiting{background:var(--violet-bg); color:var(--violet); border-color:#e1d4ff}
    .badge-default{background:#f3f6f9; color:#51697f; border-color:#e1e7ee}

    .sidebar-card{
      padding:18px;
    }

    .mini{
      padding:14px 0;
      border-bottom:1px solid #edf2f7;
    }

    .mini:last-child{
      border-bottom:none;
      padding-bottom:0;
    }

    .mini-label{
      color:var(--muted);
      font-size:13px;
      margin-bottom:6px;
    }

    .mini-value{
      font-size:17px;
      font-weight:800;
      line-height:1.7;
    }

    .actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:18px;
    }

    .empty-box{
      padding:40px 20px;
      text-align:center;
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .empty-box h2{
      margin:0 0 10px;
      font-size:24px;
    }

    .empty-box p{
      margin:0 0 18px;
      color:var(--muted);
    }

    @media (max-width: 1200px){
      .layout{grid-template-columns:1fr}
    }

    @media (max-width: 980px){
      .page{grid-template-columns:1fr}
      .sidebar{
        position:relative;
        height:auto;
        border-left:none;
        border-bottom:1px solid rgba(255,255,255,.08);
      }
    }

    @media (max-width: 700px){
      .main{padding:14px}
      .grid{grid-template-columns:1fr}
      .topbar-right h1{font-size:24px}
    }
  </style>
</head>
<body>
  <div class="page">

    <aside class="sidebar">
      <div class="brand">
        <h2>HLG Justice Hub</h2>
        <p>بوابة إدارة الأعمال القانونية</p>
      </div>

      <nav class="side-nav">
        <a class="side-link" href="../../dashboard.php">
          <span>لوحة التحكم</span>
          <small>الرئيسية</small>
        </a>

        <a class="side-link" href="../cases/cases.php">
          <span>القضايا</span>
          <small>إدارة</small>
        </a>

        <a class="side-link active" href="hearings.php">
          <span>الجلسات</span>
          <small>متابعة</small>
        </a>

        <a class="side-link" href="../tasks/tasks.php">
          <span>المهام</span>
          <small>تنفيذ</small>
        </a>

        <a class="side-link" href="../finance/finance.php">
          <span>الإدارة المالية</span>
          <small>النظام المالي</small>
        </a>

        <a class="side-link" href="../employees/employees.php">
          <span>شؤون الموظفين</span>
          <small>HR</small>
        </a>

        <a class="side-link" href="../notifications/notifications.php">
          <span>الإشعارات</span>
          <small>تنبيه</small>
        </a>
      </nav>
    </aside>

    <main class="main">
      <?php if (!$hearing): ?>
        <div class="empty-box">
          <h2>الجلسة غير موجودة</h2>
          <p>لم يتم العثور على الجلسة المطلوبة أو أن الرابط غير صحيح.</p>
          <a href="hearings.php" class="btn btn-primary">العودة إلى الجلسات</a>
        </div>
      <?php else: ?>

      <div class="topbar">
        <div class="topbar-right">
          <h1>عرض الجلسة</h1>
          <p>تفاصيل الجلسة القضائية وربطها بالقضية والنتيجة والمتابعة القادمة</p>
        </div>

        <div class="topbar-left">
          <div class="chip">الفرع: <?= h($currentBranch) ?></div>
          <div class="chip"><?= h($currentUser) ?></div>
          <a href="hearings.php" class="btn btn-light">رجوع</a>
        </div>
      </div>

      <div class="layout">

        <section class="card">
          <div class="card-head">
            <h3><?= h($hearing['case_title']) ?></h3>
            <p>رقم القضية: <?= h($hearing['case_number']) ?> | رقم الجلسة: <?= h($hearing['hearing_number']) ?></p>
          </div>

          <div class="card-body">
            <div class="grid">
              <div class="detail">
                <div class="detail-label">اسم العميل</div>
                <div class="detail-value"><?= h($hearing['client_name']) ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">الفرع</div>
                <div class="detail-value"><?= h($hearing['branch_name']) ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">المحكمة</div>
                <div class="detail-value"><?= h($hearing['court_name']) ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">الدائرة</div>
                <div class="detail-value"><?= h($hearing['circuit_name']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">القاعة</div>
                <div class="detail-value"><?= h($hearing['hall_name']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">القاضي</div>
                <div class="detail-value"><?= h($hearing['judge_name']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">نوع الجلسة</div>
                <div class="detail-value"><?= h($hearing['hearing_type']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">المحامي المسؤول</div>
                <div class="detail-value"><?= h($hearing['lawyer_name']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">تاريخ الجلسة</div>
                <div class="detail-value"><?= h($hearing['hearing_date']) ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">وقت الجلسة</div>
                <div class="detail-value"><?= h($hearing['hearing_time']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">حالة الجلسة</div>
                <div class="detail-value">
                  <span class="badge <?= h(status_class($hearing['status'])) ?>">
                    <?= h(status_label($hearing['status'])) ?>
                  </span>
                </div>
              </div>

              <div class="detail">
                <div class="detail-label">نتيجة الجلسة</div>
                <div class="detail-value"><?= h(result_status_label($hearing['result_status'])) ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">تاريخ الجلسة القادمة</div>
                <div class="detail-value"><?= h($hearing['next_hearing_date']) ?: '—' ?></div>
              </div>

              <div class="detail">
                <div class="detail-label">وقت الجلسة القادمة</div>
                <div class="detail-value"><?= h($hearing['next_hearing_time']) ?: '—' ?></div>
              </div>

              <div class="detail full">
                <div class="detail-label">تفاصيل النتيجة</div>
                <div class="note-box"><?= nl2br(h($hearing['result_text'] ?: 'لا توجد نتيجة مسجلة حتى الآن.')) ?></div>
              </div>

              <div class="detail full">
                <div class="detail-label">ملاحظات قبل الجلسة</div>
                <div class="note-box"><?= nl2br(h($hearing['pre_notes'] ?: 'لا توجد ملاحظات.')) ?></div>
              </div>

              <div class="detail full">
                <div class="detail-label">ملاحظات بعد الجلسة</div>
                <div class="note-box"><?= nl2br(h($hearing['post_notes'] ?: 'لا توجد ملاحظات بعد الجلسة.')) ?></div>
              </div>
            </div>

            <div class="actions">
              <a href="hearing_edit.php?id=<?= (int)$hearing['id'] ?>" class="btn btn-light">تعديل</a>
              <a href="hearing_result.php?id=<?= (int)$hearing['id'] ?>" class="btn btn-primary">تسجيل نتيجة</a>
              <a href="hearing_delete.php?id=<?= (int)$hearing['id'] ?>" class="btn btn-danger" onclick="return confirm('هل أنت متأكد من حذف هذه الجلسة؟');">حذف</a>
            </div>
          </div>
        </section>

        <aside class="card sidebar-card">
          <div class="mini">
            <div class="mini-label">معرف الجلسة</div>
            <div class="mini-value">#<?= (int)$hearing['id'] ?></div>
          </div>

          <div class="mini">
            <div class="mini-label">معرف القضية</div>
            <div class="mini-value">#<?= (int)$hearing['case_id'] ?></div>
          </div>

          <div class="mini">
            <div class="mini-label">تاريخ الإنشاء</div>
            <div class="mini-value"><?= h($hearing['created_at']) ?></div>
          </div>

          <div class="mini">
            <div class="mini-label">آخر تحديث</div>
            <div class="mini-value"><?= h($hearing['updated_at']) ?></div>
          </div>

          <div class="mini">
            <div class="mini-label">ملاحظات تشغيلية</div>
            <div class="mini-value">
              راجع حالة الجلسة بعد انتهائها مباشرة، وسجل النتيجة والجلسة القادمة لتبقى المتابعة دقيقة داخل النظام.
            </div>
          </div>
        </aside>

      </div>
      <?php endif; ?>
    </main>
  </div>
</body>
</html>