You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
PHP
64 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Models\Traits\UserTrackable;
|
|
use Illuminate\Database\Eloquent\Casts\Attribute;
|
|
use Illuminate\Database\Eloquent\Concerns\HasUlids;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
|
|
|
class Customer extends Authenticatable
|
|
{
|
|
use HasFactory, HasUlids, UserTrackable, SoftDeletes;
|
|
|
|
protected $fillable = [
|
|
'username',
|
|
'email',
|
|
'password',
|
|
'name',
|
|
'fullname',
|
|
'address',
|
|
'phone',
|
|
'image',
|
|
'referral_code',
|
|
'google_id',
|
|
'deposit_balance',
|
|
'coin_balance',
|
|
'identity_verified',
|
|
'identity_image',
|
|
'customer_level_id',
|
|
'google_oauth_response'
|
|
];
|
|
|
|
protected $hidden = [
|
|
'password',
|
|
'google_oauth_reponse'
|
|
];
|
|
|
|
protected $appends = [
|
|
'image_url',
|
|
];
|
|
|
|
public function imageUrl(): Attribute
|
|
{
|
|
return Attribute::make(
|
|
get: function () {
|
|
if ($this->google_id != null) {
|
|
$image = explode('-', $this->images);
|
|
if ($image[0] == "IMAGE") {
|
|
return $image[1];
|
|
}
|
|
}
|
|
|
|
if ($this->image != null) {
|
|
return $this->asset($this->image);
|
|
}
|
|
|
|
return asset('sample/avatar.svg');
|
|
}
|
|
);
|
|
}
|
|
}
|