<?php
require_once __DIR__ . '/../includes/bootstrap.php';
require_admin();

$videoId = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT) ?: 0;
$editing = $videoId > 0;
$errors = [];
$data = [
    'title' => '',
    'youtube_url' => '',
    'description' => '',
    'grade' => 'first_secondary',
    'sort_order' => 1,
    'is_free' => 0,
    'is_active' => 1,
];

if ($editing) {
    $stmt = db()->prepare('SELECT * FROM videos WHERE id = ? LIMIT 1');
    $stmt->execute([$videoId]);
    $video = $stmt->fetch();
    if (!$video) {
        flash('danger', 'الفيديو غير موجود.');
        redirect('admin/videos.php');
    }
    $data = [
        'title' => $video['title'],
        'youtube_url' => youtube_watch_url($video['youtube_id']),
        'description' => $video['description'] ?? '',
        'grade' => $video['grade'],
        'sort_order' => (int) $video['sort_order'],
        'is_free' => (int) $video['is_free'],
        'is_active' => (int) $video['is_active'],
    ];
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    verify_csrf();
    $videoId = filter_input(INPUT_POST, 'video_id', FILTER_VALIDATE_INT) ?: 0;
    $editing = $videoId > 0;

    $data['title'] = trim((string) ($_POST['title'] ?? ''));
    $data['youtube_url'] = trim((string) ($_POST['youtube_url'] ?? ''));
    $data['description'] = trim((string) ($_POST['description'] ?? ''));
    $data['grade'] = (string) ($_POST['grade'] ?? '');
    $data['sort_order'] = max(1, (int) ($_POST['sort_order'] ?? 1));
    $data['is_free'] = isset($_POST['is_free']) ? 1 : 0;
    $data['is_active'] = isset($_POST['is_active']) ? 1 : 0;

    if (mb_strlen($data['title']) < 3) {
        $errors[] = 'اكتب عنوانًا واضحًا للفيديو.';
    }
    $youtubeId = youtube_video_id($data['youtube_url']);
    if ($youtubeId === null) {
        $errors[] = 'رابط YouTube غير صحيح. استخدم رابط الفيديو أو Shorts أو youtu.be.';
    }
    if (!in_array($data['grade'], ['first_secondary', 'second_secondary'], true)) {
        $errors[] = 'اختر الصف الدراسي.';
    }

    if (!$errors) {
        if ($editing) {
            $stmt = db()->prepare(
                'UPDATE videos SET title = ?, youtube_id = ?, description = ?, grade = ?, sort_order = ?, is_free = ?, is_active = ? WHERE id = ?'
            );
            $stmt->execute([
                $data['title'],
                $youtubeId,
                $data['description'] !== '' ? $data['description'] : null,
                $data['grade'],
                $data['sort_order'],
                $data['is_free'],
                $data['is_active'],
                $videoId,
            ]);
            flash('success', 'تم تعديل الفيديو بنجاح.');
        } else {
            $stmt = db()->prepare(
                'INSERT INTO videos (title, youtube_id, description, grade, sort_order, is_free, is_active, created_by)
                 VALUES (?, ?, ?, ?, ?, ?, ?, ?)'
            );
            $stmt->execute([
                $data['title'],
                $youtubeId,
                $data['description'] !== '' ? $data['description'] : null,
                $data['grade'],
                $data['sort_order'],
                $data['is_free'],
                $data['is_active'],
                $_SESSION['admin_id'],
            ]);
            flash('success', 'تمت إضافة الفيديو بنجاح.');
        }
        redirect('admin/videos.php');
    }
}

$pageTitle = $editing ? 'تعديل فيديو' : 'إضافة فيديو';
require_once __DIR__ . '/../includes/header.php';
?>
<div class="dashboard-head">
    <div>
        <h1><?= $editing ? 'تعديل الفيديو' : 'إضافة فيديو جديد' ?></h1>
        <p>ارفع الفيديو على YouTube كـ Unlisted ثم ضع رابطه هنا.</p>
    </div>
    <a class="btn btn-outline" href="<?= e(url('admin/videos.php')) ?>">العودة للفيديوهات</a>
</div>

<section class="card admin-form-card">
    <?php if ($errors): ?>
        <div class="errors">
            <?php foreach ($errors as $error): ?><div>• <?= e($error) ?></div><?php endforeach; ?>
        </div>
    <?php endif; ?>

    <form method="post">
        <input type="hidden" name="csrf_token" value="<?= e(csrf_token()) ?>">
        <input type="hidden" name="video_id" value="<?= (int) $videoId ?>">

        <div class="form-grid">
            <div class="form-group full">
                <label for="title">عنوان الفيديو</label>
                <input id="title" name="title" value="<?= e((string) $data['title']) ?>" required placeholder="مثال: الدرس الأول — مقدمة في البرمجة">
            </div>

            <div class="form-group full">
                <label for="youtube_url">رابط فيديو YouTube</label>
                <input id="youtube_url" name="youtube_url" value="<?= e((string) $data['youtube_url']) ?>" required dir="ltr" placeholder="https://www.youtube.com/watch?v=...">
                <small class="field-help">يُفضّل رفع الفيديو بحالة غير مدرج Unlisted.</small>
            </div>

            <div class="form-group">
                <label for="grade">الصف الدراسي</label>
                <select id="grade" name="grade" required>
                    <option value="first_secondary" <?= $data['grade'] === 'first_secondary' ? 'selected' : '' ?>>الصف الأول الثانوي</option>
                    <option value="second_secondary" <?= $data['grade'] === 'second_secondary' ? 'selected' : '' ?>>الصف الثاني الثانوي</option>
                </select>
            </div>

            <div class="form-group">
                <label for="sort_order">ترتيب الفيديو</label>
                <input id="sort_order" type="number" name="sort_order" min="1" value="<?= (int) $data['sort_order'] ?>" required>
            </div>

            <div class="form-group full">
                <label for="description">وصف مختصر — اختياري</label>
                <textarea id="description" name="description" rows="5" placeholder="ماذا سيتعلم الطالب في هذا الفيديو؟"><?= e((string) $data['description']) ?></textarea>
            </div>

            <div class="form-group full option-row">
                <label class="check-option"><input type="checkbox" name="is_free" <?= (int) $data['is_free'] === 1 ? 'checked' : '' ?>> <span>فيديو مجاني لكل طلاب هذا الصف</span></label>
                <label class="check-option"><input type="checkbox" name="is_active" <?= (int) $data['is_active'] === 1 ? 'checked' : '' ?>> <span>منشور ويظهر للطلاب</span></label>
            </div>
        </div>

        <button class="btn btn-primary" type="submit"><?= $editing ? 'حفظ التعديلات' : 'إضافة الفيديو' ?></button>
    </form>
</section>
<?php require_once __DIR__ . '/../includes/footer.php'; ?>
