Car-Repairs-Shop/app/Models/Permission.php
sackey e839d40a99
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
Initial commit
2025-07-30 17:15:50 +00:00

60 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
class Permission extends Model
{
use HasFactory;
protected $fillable = [
'name',
'display_name',
'description',
'module',
'is_active',
];
protected $casts = [
'is_active' => 'boolean',
];
/**
* Get the roles that have this permission
*/
public function roles(): BelongsToMany
{
return $this->belongsToMany(Role::class, 'role_permissions')
->withTimestamps();
}
/**
* Get users who have this permission directly
*/
public function users(): BelongsToMany
{
return $this->belongsToMany(User::class, 'user_permissions')
->withPivot(['granted', 'branch_code', 'assigned_at', 'expires_at'])
->withTimestamps();
}
/**
* Scope to filter by module
*/
public function scopeByModule($query, string $module)
{
return $query->where('module', $module);
}
/**
* Scope to filter active permissions
*/
public function scopeActive($query)
{
return $query->where('is_active', true);
}
}