Files
shahrzadzandi09/app/Models/Admin.php
T
2026-08-20 08:22:19 +03:30

182 lines
3.7 KiB
PHP

<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use App\Enums\AdminStatus;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
/**
* Class Admin
*
* @property int $id
* @property string $full_name
* @property string $username
* @property string $email
* @property string $mobile
* @property string $password
* @property int $status
* @property Carbon $created_at
* @property Carbon $updated_at
*
* @package App\Models
*/
class Admin extends Authenticatable
{
use HasFactory;
protected $table = 'admins';
public static $snakeAttributes = false;
protected $casts = [
'status' => 'int',
];
protected $hidden = [
'password',
'remember_token',
];
protected $fillable = [
'full_name',
'username',
'email',
'mobile',
'password',
'status',
];
public function permissions()
{
return $this->belongsToMany(
Permission::class,
'admin_permission',
'admin_id',
'permission_id'
);
}
/**
* بررسی دسترسی مدیر به ماژول مدیریت کاربران
*/
public function canManageUsers(string $action): bool
{
return $this->status == 1;
}
public function canManageTravelTypes(string $action): bool
{
return $this->status == 1;
}
public function canManageFlights(string $action): bool
{
return $this->status == 1;
}
public function canManageTours(string $action): bool
{
return $this->status == 1;
}
}
//
///**
// * Created by Reliese Model.
// */
//
//namespace App\Models;
//
//use App\Enums\AdminStatus;
//use Carbon\Carbon;
//use Illuminate\Auth\Middleware\Authenticate;
//use Illuminate\Database\Eloquent\Factories\HasFactory;
//use Illuminate\Database\Eloquent\Model;
//
////use Illuminate\Foundation\Auth\Admin as User;
////use Illuminate\Foundation\Auth\Admin as Authenticate;
//
//
///**
// * Class Admin
// *
// * @property int $id
// * @property string $full_name
// * @property string $username
// * @property string $email
// * @property string $mobile
// * @property string $password
// * @property int $status
// * @property Carbon $created_at
// * @property Carbon $updated_at
// *
// * @package App\Models
// */
//class Admin extends Authenticate
//{
// protected $table = 'admins';
//
// public static $snakeAttributes = false;
//
// protected $casts = [
// 'status' => 'int',
// ];
//
// protected $hidden = [
// 'password',
// ];
//
// protected $fillable = [
// 'full_name',
// 'username',
// 'email',
// 'mobile',
// 'password',
// 'status',
// ];
//
// public function permissions()
// {
// return $this->belongsToMany(
// Permission::class,
// 'admin_permission',
// 'admin_id',
// 'permission_id'
// );
// }
//
//
// /**
// * بررسی دسترسی مدیر به ماژول مدیریت کاربران
// *
// * @param string $action view|edit|delete|password
// */
// public function canManageUsers(string $action): bool
// {
// // مدیریت کاربران فقط برای مدیر فعال مجاز است
// return $this->status == 1;
// }
//
//
// public function canManageTravelTypes(string $action): bool
// {
// return $this->status == 1;
// }
//
// public function canManageFlights(string $action): bool
// {
// return $this->status == 1;
// }
//
// public function canManageTours(string $action): bool
// {
// return $this->status == 1;
// }
//}