<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use Notifiable;

    /**
     * Nama tabel di database. Defaultnya 'users', tapi di sini kita ganti.
     * @var string
     */
    protected $table = 'user';

    /**
     * Nama primary key tabel. Defaultnya 'id'.
     * @var string
     */
    protected $primaryKey = 'id_user';

    /**
     * Menandakan bahwa primary key bukan auto-incrementing integer.
     * @var bool
     */
    public $incrementing = false;

    /**
     * Menonaktifkan Laravel timestamps karena skema Anda tidak memiliki 'updated_at' secara default.
     * @var bool
     */
    public $timestamps = false;

    /**
     * Kolom-kolom yang dapat diisi secara massal (mass assignable).
     * @var array
     */
    protected $fillable = [
        'id_user', 'username', 'no_pokok', 'nohp', 'email', 'password', 'nama', 'level', 'status', 'created_at', 'last_login'
    ];

    /**
     * Kolom-kolom yang harus disembunyikan untuk serialisasi.
     * @var array
     */
    protected $hidden = [
        'password',
    ];

    /**
     * Kolom-kolom yang harus dikonversi ke tipe data tertentu.
     * @var array
     */
    protected $casts = [
        'created_at' => 'datetime',
        'last_login' => 'datetime',
    ];
}
