<?php
session_start();
include '../includes/db_config.php';

// Доступ: викладач або адмін
if (!isset($_SESSION['user_id']) || !in_array($_SESSION['role'] ?? 'user', ['teacher','admin'], true)) {
    header("Location: ../login.php");
    exit;
}

// Отримання ID викладача через параметр або свою сесію
$teacher_id = isset($_GET['id']) ? (int)$_GET['id'] : (int)$_SESSION['user_id'];

// Дозволяємо перегляд лише власнику або адмінам
if ($teacher_id !== (int)$_SESSION['user_id'] && ($_SESSION['role'] ?? '') !== 'admin') {
    die("У вас немає прав переглядати цей профіль. Зверніться до адміністратора.");
}

// Завантаження даних викладача (avatar_path — опційно, якщо колонка існує)
$sql = "
SELECT
    full_name, subjects, website_links, email,
    CASE
        WHEN (SELECT COUNT(*) FROM information_schema.COLUMNS
              WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME='users' AND COLUMN_NAME='avatar_path') > 0
        THEN avatar_path
        ELSE NULL
    END AS avatar_path
FROM users
WHERE id = ?
";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $teacher_id);
$stmt->execute();
$teacher = $stmt->get_result()->fetch_assoc();
$stmt->close();

if (!$teacher) {
    die("Викладач не знайдений. Перевір URL або звернися до адміністратора.");
}

// avatar
$avatar_rel = $teacher['avatar_path'] ?? null;
$avatar_url = $avatar_rel ? '../' . ltrim((string)$avatar_rel, '/\\') : '../img/logo.png';

// subjects (CSV) → масив назв
$subjects = array_filter(array_map('trim', explode(',', (string)($teacher['subjects'] ?? ''))));

// website_links (JSON-пари [{subject, link}, ...]) або фолбек CSV
$pairs = [];
if (!empty($teacher['website_links'])) {
    $decoded = json_decode((string)$teacher['website_links'], true);
    if (json_last_error() === JSON_ERROR_NONE && is_array($decoded)) {
        foreach ($decoded as $p) {
            $s = trim((string)($p['subject'] ?? ''));
            $l = trim((string)($p['link'] ?? ''));
            if ($s !== '' || $l !== '') $pairs[] = ['subject' => $s, 'link' => $l];
        }
    } else {
        $links = array_filter(array_map('trim', explode(',', (string)$teacher['website_links'])));
        foreach ($links as $i => $l) {
            $pairs[] = ['subject' => $subjects[$i] ?? '', 'link' => $l];
        }
    }
}

$conn->close();

/* ===== підготовка header.php ===== */
$siteName  = 'Розклад занять';
$pageTitle = 'Профіль викладача — ' . (string)($teacher['full_name'] ?? '');
$pageCss   = [
    'https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css',
    '/css/teacher-profile.css?v=3'
];

include '../includes/header.php';
?>

<main class="page">
  <div class="kp-container">
    <div class="tp-wrap">
      <h1 class="tp-title">
        Профіль викладача
        <span class="tp-title-name"><?= htmlspecialchars((string)$teacher['full_name'], ENT_QUOTES, 'UTF-8'); ?></span>
      </h1>

      <!-- Верхня картка -->
      <section class="tp-card">
        <div class="tp-head">
          <img class="tp-avatar" src="<?= htmlspecialchars((string)$avatar_url, ENT_QUOTES, 'UTF-8'); ?>" alt="Avatar">
          <div class="tp-head-main">
            <div class="tp-field">
              <div class="tp-label">ПІБ</div>
              <div class="tp-value"><?= htmlspecialchars((string)$teacher['full_name'], ENT_QUOTES, 'UTF-8'); ?></div>
            </div>

            <div class="tp-field">
              <div class="tp-label">Email (або інший спосіб зв’язку)</div>
              <div class="tp-value">
                <?= htmlspecialchars((string)($teacher['email'] ?? 'Не вказано'), ENT_QUOTES, 'UTF-8'); ?>
              </div>
            </div>

            <?php if ($teacher_id === (int)($_SESSION['user_id'] ?? 0) || ($_SESSION['role'] ?? '') === 'admin'): ?>
              <div class="tp-actions">
                <a href="../admin/edit_teacher_profile.php" class="btn btn-primary btn-sm">Редагувати профіль</a>
              </div>
            <?php endif; ?>
          </div>
        </div>
      </section>

      <!-- Предмети та посилання -->
      <section class="tp-card">
        <h2 class="tp-card-title">Предмети та посилання</h2>

        <?php if (!empty($pairs)): ?>
          <div class="table-responsive">
            <table class="table tp-table align-middle">
              <thead>
                <tr>
                  <th style="width:40%">Предмет</th>
                  <th>Посилання (Classroom / портал)</th>
                </tr>
              </thead>
              <tbody>
                <?php foreach ($pairs as $p):
                  $s = trim((string)($p['subject'] ?? ''));
                  $l = trim((string)($p['link'] ?? ''));
                ?>
                  <tr>
                    <td><?= htmlspecialchars($s !== '' ? $s : '—', ENT_QUOTES, 'UTF-8'); ?></td>
                    <td class="tp-link-cell">
                      <?php if ($l !== ''):
                        $url = $l;
                        if (!preg_match('~^https?://~i', $url)) $url = 'https://' . $url;
                      ?>
                        <a href="<?= htmlspecialchars($url, ENT_QUOTES, 'UTF-8'); ?>" target="_blank" rel="noopener">
                          <?= htmlspecialchars($l, ENT_QUOTES, 'UTF-8'); ?>
                        </a>
                      <?php else: ?>
                        <span class="tp-muted">—</span>
                      <?php endif; ?>
                    </td>
                  </tr>
                <?php endforeach; ?>
              </tbody>
            </table>
          </div>
        <?php else: ?>
          <div class="tp-muted">Не вказано</div>
        <?php endif; ?>

        <?php if (empty($pairs) && !empty($subjects)): ?>
          <div class="tp-subjects-fallback">
            <strong>Предмети:</strong> <?= htmlspecialchars(implode(', ', $subjects), ENT_QUOTES, 'UTF-8'); ?>
          </div>
        <?php endif; ?>
      </section>

      <div class="tp-back">
        <a class="btn btn-outline-secondary w-100 w-sm-auto" href="teachers.php">← Назад до списку</a>
      </div>
    </div>
  </div>
</main>

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

</body>
</html>
