<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Pengaduan extends Model
{
    use HasFactory, SoftDeletes;

    const JENIS_PENGADUAN = 'pengaduan';
    const JENIS_PENGAJUAN_SURAT = 'pengajuan_surat';

    const KATEGORI_PENGADUAN = [
        'Infrastruktur Desa',
        'Lingkungan Hidup',
        'Masalah Sosial',
        'Pendidikan Masyarakat',
        'Keamanan Masyarakat',
        'Lainnya',
    ];

    const KATEGORI_PENGAJUAN_SURAT = [
        'Pengajuan Surat Keterangan Domisili',
        'Pengajuan Surat Keterangan Usaha',
        'Pengajuan Surat Keterangan Kematian',
        'Pengajuan Surat Keterangan Tidak Mampu (SKTM)',
        'Pengajuan Surat Keterangan Penghasilan Orang Tua',
        'Pengajuan Surat Keterangan Pindah/Datang WNI',
        'Pengajuan Surat Keterangan Kehilangan',
        'Pengajuan Surat Keterangan Kuasa Ahli Waris',
        'Pengajuan Surat Keterangan Jual Beli Tanah',
        'Pengajuan Surat Keterangan Pengantar Perkawinan',
        'Pengajuan Surat Keterangan Belum Menikah',
        'Pengajuan Surat Keterangan Hibah/Wakaf',
        'Lainnya',
    ];

    protected $fillable = [
        'jenis',
        'nama_lengkap',
        'nik',
        'email',
        'telepon',
        'kategori',
        'isi_pengaduan',
        'lampiran',
        'nomor_tiket',
        'status'
    ];

    protected $casts = [
        'nik' => 'encrypted',
        'created_at' => 'datetime',
        'updated_at' => 'datetime',
    ];

    public function scopeJenis($query, $jenis)
    {
        return $query->where('jenis', $jenis);
    }

    protected static function booted()
    {
        static::forceDeleted(function ($pengaduan) {
            if ($pengaduan->lampiran) {
                \Illuminate\Support\Facades\Storage::disk('local')->delete($pengaduan->lampiran);
            }
        });
    }
}