Files
cabutan-bertuah-koipb/app/Models/User.php
2026-06-26 19:10:31 +08:00

54 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable, HasRoles;
public const ROLE_ADMIN = 'admin';
public const ROLE_KAUNTER = 'petugas_kaunter';
public const ROLE_CABUTAN = 'petugas_cabutan';
/** Peranan yang boleh ditugaskan kepada pengguna + label paparan ringkas. */
public const ROLE_LABELS = [
self::ROLE_ADMIN => 'Admin',
self::ROLE_KAUNTER => 'Kaunter',
self::ROLE_CABUTAN => 'Cabutan',
];
/** Label ringkas peranan utama pengguna ini (cth "Admin"). */
public function roleLabel(): string
{
$role = $this->getRoleNames()->first();
return self::ROLE_LABELS[$role] ?? ($role ? \Illuminate\Support\Str::headline($role) : '-');
}
protected $fillable = [
'name',
'email',
'password',
];
protected $hidden = [
'password',
'remember_token',
];
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}