<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Inertia\Inertia;
use App\Models\Campus; // Diperlukan untuk mencari campus_id berdasarkan slug
use App\Models\SistemPerkuliahan; // Diperlukan untuk mengambil data sistem perkuliahan dari DB
use App\Http\Controllers\LandingPageController; // Import untuk memanggil method static

class SistemPerkuliahanController extends Controller
{
    /**
     * Mengambil data fitur sistem perkuliahan dari database berdasarkan slug.
     * Data diambil dari Model SistemPerkuliahan, disesuaikan dengan struktur frontend.
     * @param string $slug Slug kampus (e.g., 'akbid', 'umiba')
     * @return array
     */
    public static function getSistemPerkuliahanDataBySlug(string $slug): array
    {
        $normalizedSlug = strtolower($slug);

        // 1. Cari Model Campus berdasarkan Slug untuk mendapatkan ID lokal
        $campus = Campus::where('slug', $normalizedSlug)->first();
        $campusName = $campus->name ?? ucfirst($slug);

        if (!$campus) {
            // Fallback jika kampus tidak ditemukan
            return [
                'title' => 'Sistem Perkuliahan Kampus',
                'description' => 'Data Kampus Tidak Ditemukan. Mohon periksa URL kampus yang diakses.',
                'features' => [],
            ];
        }

        // 2. Cari data Fitur Sistem Perkuliahan berdasarkan campus_id
        // Hanya ambil fitur yang aktif
        $featuresList = SistemPerkuliahan::where('campus_id', $campus->id)
            ->where('is_active', true) 
            ->orderBy('name', 'asc') // Urutkan sesuai nama
            ->get();

        if ($featuresList->isEmpty()) {
            // Konten fallback jika data fitur di DB belum ada atau tidak ada yang aktif
            return [
                'title' => 'Sistem Perkuliahan ' . $campusName,
                'description' => 'Informasi sistem perkuliahan sedang dalam proses pembaruan oleh administrator. Silakan cek kembali di lain waktu.',
                'features' => [],
            ];
        }

        // 3. Konversi data dari Collection SistemPerkuliahan ke format frontend
        
        $defaultTitle = 'Sistem Perkuliahan ' . $campusName;
        $defaultDescription = 'Kami menerapkan sistem perkuliahan modern yang dirancang untuk mendukung fleksibilitas dan pencapaian akademik mahasiswa.';

        $formattedFeatures = $featuresList->map(function ($feature) {
            return [
                // Catatan: Jika Anda memiliki kolom ikon di DB, tambahkan di sini.
                // Contoh: 'icon' => $feature->icon_name, 
                // Untuk saat ini, kita hanya menggunakan name dan description.
                'name' => $feature->name,
                'description' => $feature->description,
            ];
        })->toArray();
        
        return [
            'title' => $defaultTitle, // Judul umum untuk halaman sistem perkuliahan
            'description' => $defaultDescription, // Deskripsi umum
            'features' => $formattedFeatures, // List fitur dinamis
        ];
    }
    
    /**
     * Menampilkan halaman Sistem Perkuliahan dinamis berdasarkan slug.
     *
     * @param  string $slug Slug kampus (e.g., 'akbid', 'umiba')
     * @return \Inertia\Response|\Illuminate\Http\Response
     */
    public function show($slug)
    {
        // 1. Ambil data dasar kampus (untuk layout)
        $campusData = LandingPageController::getBaseCampusData($slug);
        
        if (!$campusData) {
            abort(404, "Data kampus tidak ditemukan untuk slug: " . $slug);
        }

        // 2. Ambil konten spesifik SISTEM PERKULIAHAN dari Database
        $sistemPerkuliahanContent = self::getSistemPerkuliahanDataBySlug($slug);

        return Inertia::render('SistemPerkuliahanPage', [
            'campus' => $campusData, 
            'content' => $sistemPerkuliahanContent, // Data spesifik sistem perkuliahan
        ]);
    }
}