<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne; 

class SuratPengantarSktm extends Model
{
    use HasFactory;

    protected $table = 'surat_pengantar_sktm';

    protected $fillable = [
        'penduduk_id',
        'nomor_surat',
        'perihal',
        'tujuan_pengantar',
        'tanggal_pengajuan',
        'status',
        'file_path',
        'catatan_penolakan',
        'disetujui_oleh_rt_rw',
        'tanggal_disetujui_rt_rw',
        'disetujui_oleh_admin_desa',
        'tanggal_disetujui_admin_desa',
    ];

    protected $casts = [
        'tanggal_pengajuan' => 'date',
        'tanggal_disetujui_rt_rw' => 'datetime',
        'tanggal_disetujui_admin_desa' => 'datetime',
    ];

    public function penduduk(): BelongsTo
    {
        return $this->belongsTo(Penduduk::class, 'penduduk_id');
    }

    public function disetujuiOlehRtRw(): BelongsTo
    {
        return $this->belongsTo(User::class, 'disetujui_oleh_rt_rw');
    }

    public function disetujuiOlehAdminDesa(): BelongsTo
    {
        return $this->belongsTo(User::class, 'disetujui_oleh_admin_desa');
    }

    /**
     * Get the suratSktm associated with the SuratPengantarSktm
     *
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function suratSktm(): HasOne
    {
        return $this->hasOne(SuratSktm::class, 'surat_pengantar_sktm_id');
    }
}