<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Relations\HasOne;
// use App\Models\Siakad\SiakadKampus; // Jika model SiakadKampus berada di namespace yang berbeda, sesuaikan.

class Campus extends Model
{
    use HasFactory;

    protected $table = 'campuses';

    protected $fillable = [
        'siakad_kampus_id', 
        'slug', 
        'description', 
        'logo_url', 
        'logo_url_horizontal', 
        'footer_background_url',
        'banner_url',
        'whatsapp_number',
        'phone_number',
        'email',
        'address',
        'city',
        'province',
        'map_embed_url',
        'social_media', 
        'theme_config', 
        'status', 
    ];

    protected $casts = [
        'social_media' => 'array', 

    ];

    // Harus ada agar 'name' otomatis dimuat saat mengambil data kampus
    protected $appends = ['name'];

    /**
     * Get the route key for the model.
     * Menggunakan slug untuk Route Model Binding.
     * Ini akan memastikan Laravel mencari model Campus berdasarkan slug, bukan ID.
     */
    public function getRouteKeyName()
    {
        return 'slug';
    }

    // Kolom virtual (Accessor) untuk mendapatkan nama kampus dari data SIADAK
    protected function name(): Attribute
    {
        // Pastikan SiakadKampus diimpor atau didefinisikan secara global jika ingin menggunakan kelas di sini.
        // Jika tidak, biarkan relasi yang menanganinya.
        return Attribute::make(
            get: fn () => $this->siakadCampus?->nama_kampus,
        );
    }

    /**
     * Relasi ke data Kampus dari SIAKAD.
     * Asumsikan SiakadKampus::class sudah didefinisikan atau diimpor dengan benar di Controller/tempat lain.
     */
    public function siakadCampus()
    {
        // Menggunakan FQCN atau asumsi SiakadKampus sudah diimpor (Saya asumsikan modelnya bernama SiakadKampus di namespace manapun)
        // Jika Anda menggunakan SiakadKampus::class, pastikan Anda mengimpornya di bagian atas file ini.
        return $this->belongsTo(\App\Models\SiakadKampus::class, 'siakad_kampus_id'); 
    }

}