64 lines
1.4 KiB
PHP
Executable File
64 lines
1.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Traits\HasCacheModel;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Illuminate\Support\Str;
|
|
class Client extends Model
|
|
{
|
|
use HasFactory;
|
|
use HasCacheModel;
|
|
|
|
const DEFAULT_PASSWORD = "Pay@2023";
|
|
const PATH_AVATAR = 'client-avatar';
|
|
|
|
public function __construct()
|
|
{
|
|
$this->table = 'users';
|
|
$this->guarded = [
|
|
'password',
|
|
'email',
|
|
'remember_token'
|
|
];
|
|
$this->hidden = [
|
|
'password',
|
|
'remember_token'
|
|
];
|
|
$this->append([
|
|
'country_name',
|
|
'country_flag'
|
|
]);
|
|
}
|
|
|
|
// custom attribute get{name}Attribute()
|
|
public function getAvatarAttribute($path)
|
|
{
|
|
if ($path) {
|
|
if (Str::isUrl($path)) {
|
|
return $path;
|
|
} else {
|
|
return Storage::disk('public')->url($path);
|
|
}
|
|
}
|
|
return asset('img/avatar.png');
|
|
}
|
|
|
|
public function getCountryNameAttribute()
|
|
{
|
|
$countries = HCountry::getByCache();
|
|
|
|
return $countries
|
|
->where('code', $this->country_code)
|
|
->value('name');
|
|
}
|
|
|
|
public function getCountryFlagAttribute()
|
|
{
|
|
$code = $this->country_code;
|
|
return asset(HCountry::PUBLIC_PATH . "/$code.svg");
|
|
}
|
|
}
|