<?php

namespace App\Models;

use CodeIgniter\Model;

class ModelPenghargaan extends Model
{
    protected $table            = 'tb_penghargaan';
    protected $primaryKey       = 'id_penghargaan';
    protected $returnType       = 'array';
    protected $useAutoIncrement = true;

    protected $allowedFields = [
        'nama_penghargaan',
        'keterangan_penghargaan',
        'poin'
    ];

    protected $useTimestamps = false;

    /**
     * Menampilkan semua penghargaan
     */
    public function getAll()
    {
        return $this->orderBy('nama_penghargaan', 'ASC')->findAll();
    }

    /**
     * Mengambil data penghargaan berdasarkan ID
     */
    public function getById($id)
    {
        return $this->find($id);
    }

    /**
     * Total jenis penghargaan
     */
    public function totalPenghargaan()
    {
        return $this->countAll();
    }

    /**
     * Riwayat penghargaan per murid
     */
    public function getBySiswa($id_siswa)
    {
        return $this->select('
            tb_rekap_penghargaan.*,

            tb_penghargaan.nama_penghargaan,
            tb_penghargaan.poin,

            tb_guru.nama AS nama_guru
        ')
            ->join(
                'tb_penghargaan',
                'tb_penghargaan.id_penghargaan = tb_rekap_penghargaan.id_penghargaan'
            )
            ->join(
                'tb_guru',
                'tb_guru.id_guru = tb_rekap_penghargaan.id_guru',
                'left'
            )
            ->where('tb_rekap_penghargaan.id_siswa', $id_siswa)
            ->orderBy('tb_rekap_penghargaan.tanggal', 'DESC')
            ->findAll();
    }
}
