belongsTo(SubdistrictArea::class); } public function subdistrict() { return $this->belongsTo(Subdistrict::class); } public function city() { return $this->belongsTo(City::class); } public function province() { return $this->belongsTo(Province::class); } public function getFullAddressAttribute() { return ($this->province ? $this->province->name . "," : "") . ($this->city ? $this->city->name . "," : "") . ($this->subdistrict ? $this->subdistrict->name . "," : "") . ($this->subdistrictArea ? $this->subdistrictArea->name . "," : "") . $this->address; } public function getIdCardSrcAttribute() { if ($this->uploaded_id_card) { return asset(self::$public_path_id_card . $this->uploaded_id_card); } return null; } protected $hidden = [ 'password', ]; public function customerPhone() { return $this->hasOne(CustomerPhone::class)->where('is_default', 1)->first() ? $this->hasOne(CustomerPhone::class)->where('is_default', 1) : $this->hasOne(CustomerPhone::class)->orderBy('id', 'asc'); } public function customerPhones() { return $this->hasMany(CustomerPhone::class); } public function customerAddresses() { return $this->hasMany(CustomerAddress::class); } public function customerAddress() { return $this->hasOne(CustomerAddress::class)->orderBy('id', 'asc'); } public function getJWTIdentifier() { return $this->getKey(); } public function getJWTCustomClaims() { return []; } public function scopeSearch($q, $search) { return $q->where(function ($q) use ($search) { $q->where('name', 'like', "%$search%") ->orWhere('email', 'like', "%$search%"); }); } }