<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;

/**
 * Model untuk berinteraksi dengan tabel Program Studi (Prodi)
 * di database sistem Siakad PMB (tabel 'prodis').
 * * Model ini digunakan untuk mengambil nama prodi dan biaya_formulir dari Siakad.
 */
class SiakadJurusan extends Model
{
    // WAJIB: Menentukan koneksi database yang berbeda (koneksi Siakad)
    protected $connection = 'siakad_pmb'; 
    
    // Nama tabel di database Siakad.
    protected $table = 'prodis'; 
    
    // Primary key tabel Siakad.
    protected $primaryKey = 'id'; 
    
    // Nonaktifkan proteksi mass assignment karena model ini hanya untuk membaca data.
    protected $guarded = []; 
    
    // Nonaktifkan timestamps bawaan Laravel.
    public $timestamps = false; 
    
    /**
     * Daftar kolom yang dapat diambil/diakses melalui model ini.
     * Secara default, kolom yang diperlukan adalah 'nama' dan 'biaya_formulir'.
     * * @var array
     */
    protected $fillable = [
        'nama', 
        'biaya_formulir', 
        // Tambahkan kolom lain dari tabel 'prodis' jika diperlukan (misalnya: 'kampus_id')
    ];
    
    /**
     * Accessor untuk mendapatkan nama Program Studi dari kolom 'nama' 
     * (sesuai skema DB Siakad Anda).
     * * @return \Illuminate\Database\Eloquent\Casts\Attribute
     */
    protected function namaProdi(): Attribute
    {
        return Attribute::make(
            // Ambil dari kolom 'nama'
            get: fn ($value, $attributes) => $attributes['nama'] ?? 'Nama Program Studi Tidak Ditemukan',
        );
    }

    // Anda bisa menambahkan Accessor atau Mutator lain di sini jika diperlukan.
}