<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Inertia\Inertia;
use App\Models\Campus; // Import Model Campus
use App\Models\Brosur; // Import Model Brosur
use App\Http\Controllers\LandingPageController; // Asumsi controller ini ada
use Illuminate\Support\Facades\Storage; // Import Storage Facade

class BrosurController extends Controller
{
    /**
     * Mengambil data Brosur kampus dari database berdasarkan slug.
     * Mencari data yang terkait dengan campus_id dan aktif.
     * * @param string $slug Slug kampus (e.g., 'akbid', 'umiba')
     * @return array
     */
    public static function getBrosurDataBySlug(string $slug): array
    {
        $normalizedSlug = strtolower($slug);
        
        // 1. Cari Model Campus berdasarkan Slug untuk mendapatkan ID
        $campus = Campus::where('slug', $normalizedSlug)->first();

        // Tentukan Nama Kampus untuk Judul Fallback/Template
        $campusName = $campus->name ?? ucfirst($slug);

        // Data fallback umum jika kampus tidak ditemukan
        $fallbackContent = [
            'title' => 'Brosur Kampus',
            'frontUrl' => null,
            'backUrl' => null,
            'description' => 'Data brosur untuk ' . $campusName . ' belum tersedia atau tidak ditemukan.',
        ];

        if (!$campus) {
            return $fallbackContent;
        }

        // 2. Cari data Brosur berdasarkan campus_id yang aktif
        $brosur = Brosur::where('campus_id', $campus->id)
                        ->where('is_active', true) 
                        ->first();

        
        // 3. Format URL dan Fallback Gambar
        $frontUrl = null;
        $backUrl = null;
        
        if ($brosur) {
            // Cek keberadaan file di storage/app/public/ sebelum membuat URL
            if ($brosur->image_front_url && Storage::disk('public')->exists($brosur->image_front_url)) {
                $frontUrl = Storage::url($brosur->image_front_url);
            }
            if ($brosur->image_back_url && Storage::disk('public')->exists($brosur->image_back_url)) {
                $backUrl = Storage::url($brosur->image_back_url);
            }
        }
        
        // Jika data brosur tidak ditemukan atau gambarnya tidak ada (meski model ada), gunakan placeholder
        if (!$frontUrl && !$backUrl) {
            return [
                // Judul hanya menampilkan nama kampus (sesuai template)
                'title' => 'Brosur Penerimaan Mahasiswa Baru ' . $campusName, 
                'frontUrl' => 'https://via.placeholder.com/800x1100/e0f2fe/3b82f6?text=Brosur+Depan+Tidak+Ada',
                'backUrl' => 'https://via.placeholder.com/800x1100/e0f2fe/3b82f6?text=Brosur+Belakang+Tidak+Ada',
                'description' => 'Brosur Penerimaan Mahasiswa Baru kampus sedang dalam proses pembaruan oleh administrator.'
            ];
        }

        // 4. Kembalikan data dinamis dengan template judul sederhana
        return [
            // Judul diset menggunakan template sederhana: 'Brosur Penerimaan Mahasiswa Baru [Nama Kampus]'
            'title' => 'Brosur Penerimaan Mahasiswa Baru ' . $campusName,
            'frontUrl' => $frontUrl, 
            'backUrl' => $backUrl, 
            'description' => 'Lihat brosur Penerimaan Mahasiswa Baru kampus ' . $campusName . '.',
        ];
    }
    
    /**
     * Menampilkan halaman Brosur 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 (tema, footer, logo, dll.) dari LandingPageController
        $campusData = LandingPageController::getBaseCampusData($slug);

        // Handle jika slug tidak valid (data dasar tidak ditemukan)
        if (!$campusData) {
            abort(404, "Data kampus tidak ditemukan untuk slug: " . $slug);
        }

        // 2. Ambil konten spesifik Brosur dari Database menggunakan method static
        $brosurContent = self::getBrosurDataBySlug($slug);

        // 3. Kirim data ke view Inertia 'BrosurPage'
        return Inertia::render('BrosurPage', [
            // Kirim data dasar kampus (untuk LandingLayout)
            'campus' => $campusData,

            // Kirim data spesifik halaman Brosur (dari DB)
            'content' => $brosurContent, 
        ]);
    }
}