<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Inertia\Inertia;
use App\Models\Campus; // Import Model Campus
use App\Models\VisiMisi; // Import Model VisiMisi
// Import LandingPageController untuk mengakses method static getBaseCampusData
use App\Http\Controllers\LandingPageController;

class VisiMisiController extends Controller
{
    /**
     * Mengambil data Visi Misi (VM) kampus dari database berdasarkan slug.
     * @param string $slug Slug kampus (e.g., 'akbid', 'umiba')
     * @return array
     */
    public static function getVisiMisiDataBySlug(string $slug): array
    {
        $normalizedSlug = strtolower($slug);

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

        if (!$campus) {
             // Fallback jika kampus tidak ditemukan
             return [
                'title' => 'Visi & Misi Kampus',
                'visi' => 'Data Kampus Tidak Ditemukan. Mohon periksa URL kampus yang diakses.',
                'misi' => [],
                'tujuan' => [],
            ];
        }

        // 2. Cari data VisiMisi berdasarkan campus_id (seharusnya hanya ada satu)
        $visiMisi = VisiMisi::where('campus_id', $campus->id)->first();

        if (!$visiMisi) {
            // Konten fallback jika data Visi Misi di DB belum ada
            return [
                'title' => 'Visi & Misi Kampus ' . ($campus->name ?? ucfirst($slug)),
                'visi' => 'Visi kampus sedang dalam proses penyusunan atau pembaruan oleh administrator.',
                'misi' => [
                    'Misi kampus belum tersedia.',
                    'Silakan hubungi administrator kampus untuk informasi lebih lanjut.'
                ],
                'tujuan' => [], // Tujuan opsional
            ];
        }
        
        // 3. Format data dari Model VisiMisi ke struktur frontend
        // Catatan: Asumsi kolom 'misi' dan 'tujuan' di Model VisiMisi sudah 
        // di-cast ke array/json, sehingga otomatis menjadi array PHP di sini.
        return [
            'title' => $visiMisi->title ?? ('Visi & Misi Kampus ' . ($campus->name ?? ucfirst($slug))),
            'visi' => $visiMisi->visi, 
            'misi' => $visiMisi->misi ?? [], // Pastikan selalu array
            'tujuan' => $visiMisi->tujuan ?? [], // Pastikan selalu array
        ];
    }
    
    /**
     * Menampilkan halaman Visi & Misi 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 VISI & MISI dari Database
        $visiMisiContent = self::getVisiMisiDataBySlug($slug);

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

            // Kirim data spesifik halaman Visi Misi (dari DB)
            'content' => $visiMisiContent,
        ]);
    }
}