<?php

namespace App\Models;

use CodeIgniter\Model;

class ModelPasien extends Model

{
    protected $table = 'pasien'; // Nama tabel di database
    protected $primaryKey = 'id_pasien'; // Primary key tabel
    // Kolom yang dapat diisi (sesuai struktur tabel)
    protected $allowedFields = [
        'no_rm',
        'nama_lengkap',
        'tanggal_lahir',
        'jenis_kelamin',
        'alamat',
        'no_hp',
        'email',
        'tanggal_daftar'
    ];
    /**
     * Fungsi untuk mendapatkan semua data lansia
     *
     * @return array
     */
    public function getAllData()
    {
        return $this->orderBy('id_pasien', 'DESC')->findAll();
    }

    /**
     * Fungsi untuk mendapatkan data lansia berdasarkan id_pasien
     *
     * @param int $id_pasien
     * @return array|null
     */
    public function getDataById($id_pasien)
    {
        return $this->where('id_pasien', $id_pasien)->first();
    }

    /**
     * Fungsi untuk menambahkan data baru
     *
     * @param array $data
     * @return bool
     */

    public function generateNoRM()
    {
        $last = $this->orderBy('id_pasien', 'DESC')->first();
        $lastNo = $last ? (int) substr($last['no_rm'], 2) : 0;
        $nextNo = str_pad($lastNo + 1, 4, '0', STR_PAD_LEFT);
        return 'RM' . $nextNo;
    }
    public function tambahData($data)
    {
        $data['no_rm'] = $this->generateNoRM(); // auto generate no_rm
        return $this->insert($data);
    }

    /**
     * Fungsi untuk memperbarui data
     *
     * @param int $id_pasien
     * @param array $data
     * @return bool
     */
    public function updateData($id_pasien, $data)
    {
        return $this->update($id_pasien, $data);
    }

    /**
     * Fungsi untuk menghapus data
     *
     * @param int $id_pasien
     * @return bool
     */
    public function deleteData($id_pasien)
    {
        return $this->delete($id_pasien);
    }
}
