<?php

namespace App\Models;

use CodeIgniter\Model;

class TransaksiKasModel extends Model
{
    protected $table            = 'tb_transaksi_kas';
    protected $primaryKey       = 'id_transaksi_kas';
    protected $useAutoIncrement = true;
    protected $returnType       = 'array';

    protected $allowedFields    = [
        'tanggal_transaksi_kas',
        'tipe_transaksi_kas',
        'kategori_transaksi_kas',
        'keterangan_transaksi_kas',
        'nominal_transaksi_kas',
    ];

    protected $useTimestamps = false;

    // ================== HITUNG SALDO ==================
    public function getSaldoAkhir()
    {
        $pemasukan = $this->where('tipe_transaksi_kas', 'Pemasukan')
            ->selectSum('nominal_transaksi_kas')
            ->first();

        $pengeluaran = $this->where('tipe_transaksi_kas', 'Pengeluaran')
            ->selectSum('nominal_transaksi_kas')
            ->first();

        $totalMasuk  = $pemasukan['nominal_transaksi_kas'] ?? 0;
        $totalKeluar = $pengeluaran['nominal_transaksi_kas'] ?? 0;

        return $totalMasuk - $totalKeluar;
    }

    // ================== CORE INSERT KAS ==================
    public function insertKas($tipe, $kategori, $nominal, $keterangan = '')
    {
        return $this->save([
            'tanggal_transaksi_kas'    => date('Y-m-d'),
            'tipe_transaksi_kas'       => $tipe,
            'kategori_transaksi_kas'   => $kategori,
            'keterangan_transaksi_kas' => $keterangan,
            'nominal_transaksi_kas'    => $nominal,
        ]);
    }
}
