<?php

namespace Modules\Lpj\Models;

use Illuminate\Foundation\Auth\User;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Str;

/**
 * Model Bucok untuk mengelola data bucok
 *
 * @property int $id
 * @property int|null $no
 * @property string|null $tanggal
 * @property string|null $bulan
 * @property int|null $tahun
 * @property string|null $tanggal_penuh
 * @property string|null $nomor_categ
 * @property string|null $coa_summary
 * @property string|null $nomor_coa
 * @property string|null $nama_coa
 * @property string $nomor_tiket
 * @property string|null $deskripsi
 * @property float|null $nominal
 * @property string|null $penyelesaian
 * @property int|null $umur_aging
 * @property string|null $cost_center
 * @property string|null $nama_sub_direktorat
 * @property string|null $nama_direktorat_cabang
 * @property string|null $tanggal_penyelesaian
 * @property float|null $nominal_penyelesaian
 * @property float|null $nominal_berjalan
 * @property float|null $amortisasi_berjalan
 * @property float|null $sistem_berjalan
 * @property float|null $lainnya_berjalan
 * @property float|null $nominal_gantung
 * @property float|null $aset_gantung
 * @property string|null $keterangan_gantung
 * @property string|null $lainnya_satu
 * @property string|null $lainnya_dua
 */
class Bucok extends Base
{
    use HasFactory;

    /**
     * Nama tabel yang digunakan oleh model
     */
    protected $table = 'bucoks';

    /**
     * Field yang dapat diisi secara mass assignment
     */
    protected $fillable = [
        'no',
        'tanggal',
        'bulan',
        'tahun',
        'tanggal_penuh',
        'nomor_categ',
        'coa_summary',
        'nomor_coa',
        'nama_coa',
        'nomor_tiket',
        'deskripsi',
        'nominal',
        'penyelesaian',
        'umur_aging',
        'cost_center',
        'nama_sub_direktorat',
        'nama_direktorat_cabang',
        'tanggal_penyelesaian',
        'nominal_penyelesaian',
        'nominal_berjalan',
        'amortisasi_berjalan',
        'sistem_berjalan',
        'lainnya_berjalan',
        'nominal_gantung',
        'aset_gantung',
        'keterangan_gantung',
        'lainnya_satu',
        'lainnya_dua',
        'nomor_registrasi',
        'permohonan_id',
    ];

    /**
     * Casting tipe data untuk field tertentu
     */
    protected $casts = [
        'no' => 'integer',
        'tanggal' => 'date',
        'tahun' => 'integer',
        'tanggal_penuh' => 'date',
        'nominal' => 'decimal:2',
        'umur_aging' => 'integer',
        'tanggal_penyelesaian' => 'date',
        'nominal_penyelesaian' => 'decimal:2',
        'nominal_berjalan' => 'decimal:2',
        'amortisasi_berjalan' => 'decimal:2',
        'sistem_berjalan' => 'decimal:2',
        'lainnya_berjalan' => 'decimal:2',
        'nominal_gantung' => 'decimal:2',
        'aset_gantung' => 'decimal:2',
    ];

    /**
     * Field yang akan di-hidden saat serialization
     */
    protected $hidden = [
        'created_by',
        'updated_by',
        'deleted_by',
    ];
}
