<?php
/**
 * IBVTE Admin - Manage Gallery
 */

require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/auth.php';

Auth()->requireRole(['super_admin', 'admin']);

$db = DB();
$flash = getFlashMessage();

// Handle Album Creation
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'create_album') {
    $title = cleanInput($_POST['title'] ?? '');
    $category = cleanInput($_POST['category'] ?? '');
    $date = $_POST['date'] ?? date('Y-m-d');
    
    $coverPath = '';
    if (isset($_FILES['cover']) && $_FILES['cover']['error'] === 0) {
        $targetDir = "../uploads/gallery/";
        if (!is_dir($targetDir)) mkdir($targetDir, 0777, true);
        $fileName = time() . '_' . basename($_FILES['cover']['name']);
        if (move_uploaded_file($_FILES['cover']['tmp_name'], $targetDir . $fileName)) {
            $coverPath = "uploads/gallery/" . $fileName;
        }
    }
    
    $albumId = $db->insert('gallery', [
        'album_title' => $title,
        'category' => $category,
        'event_date' => $date,
        'cover_image' => $coverPath,
        'is_active' => 1,
        'created_by' => Auth()->getUser()['id']
    ]);
    
    if ($albumId) redirectWithMessage('gallery.php', 'Gallery album created successfully.', 'success');
}

// Fetch Albums
$albums = $db->fetchAll("SELECT * FROM gallery ORDER BY created_at DESC");

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Manage Gallery - Admin Panel</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <style>
        :root { --primary: #3b0b7c; }
        body { background: #f4f7f6; font-family: 'Inter', sans-serif; }
        .sidebar { width: 250px; background: #2c3e50; min-height: 100vh; position: fixed; }
        .main-content { margin-left: 250px; padding: 30px; }
        .album-card { border-radius: 15px; overflow: hidden; transition: 0.3s; }
        .album-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
    </style>
</head>
<body>

<div class="sidebar p-4 text-white">
    <h4 class="fw-bold mb-4">IBVTE Admin</h4>
    <nav class="nav flex-column">
        <a class="nav-link text-white" href="dashboard.php">Dashboard</a>
        <a class="nav-link text-white active" href="gallery.php">Gallery</a>
        <a class="nav-link text-white" href="downloads.php">Downloads</a>
    </nav>
</div>

<main class="main-content">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2 class="fw-bold">Gallery Management</h2>
        <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#albumModal"><i class="fas fa-plus me-2"></i>Create Album</button>
    </div>

    <div class="row g-4">
        <?php foreach ($albums as $a): ?>
        <div class="col-md-4">
            <div class="card album-card border-0 shadow-sm h-100">
                <img src="../<?= $a['cover_image'] ?: 'assets/images/default-gallery.jpg' ?>" class="card-img-top" style="height: 200px; object-fit: cover;">
                <div class="card-body">
                    <span class="badge bg-primary mb-2"><?= htmlspecialchars($a['category']) ?></span>
                    <h5 class="fw-bold"><?= htmlspecialchars($a['album_title']) ?></h5>
                    <p class="small text-muted mb-3"><i class="fas fa-calendar-alt me-1"></i><?= $a['event_date'] ?></p>
                    <div class="d-flex justify-content-between">
                        <button class="btn btn-sm btn-outline-primary">Add Photos</button>
                        <button class="btn btn-sm btn-light text-danger"><i class="fas fa-trash"></i></button>
                    </div>
                </div>
            </div>
        </div>
        <?php endforeach; ?>
    </div>
</main>

<div class="modal fade" id="albumModal" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content border-0 shadow rounded-4">
            <div class="modal-header"><h5 class="fw-bold">Create New Album</h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div>
            <form method="POST" enctype="multipart/form-data">
                <div class="modal-body p-4">
                    <input type="hidden" name="action" value="create_album">
                    <div class="mb-3"><label class="form-label fw-bold">Album Title *</label><input type="text" name="title" class="form-control" required></div>
                    <div class="mb-3"><label class="form-label fw-bold">Category</label><input type="text" name="category" class="form-control" placeholder="Events, Sports, etc."></div>
                    <div class="mb-3"><label class="form-label fw-bold">Event Date</label><input type="date" name="date" class="form-control"></div>
                    <div class="mb-3"><label class="form-label fw-bold">Cover Image *</label><input type="file" name="cover" class="form-control" accept="image/*" required></div>
                </div>
                <div class="modal-footer"><button type="submit" class="btn btn-primary px-4">Create Album</button></div>
            </form>
        </div>
    </div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
