'timestamp', 'created_at' => 'timestamp', 'deleted_at' => 'timestamp', ]; protected $hidden = [ 'password', 'remember_token', 'user_id', 'company_id', 'client_id', 'google_2fa_secret', 'id', 'oauth_provider_id', 'oauth_user_id', 'token', ]; protected $fillable = [ 'first_name', 'last_name', 'phone', 'custom_value1', 'custom_value2', 'custom_value3', 'custom_value4', 'email', ]; public function getHashedIdAttribute() { return $this->encodePrimaryKey($this->id); } /**/ public function getRouteKeyName() { return 'contact_id'; } public function getContactIdAttribute() { return $this->encodePrimaryKey($this->id); } public function setAvatarAttribute($value) { if(!filter_var($value, FILTER_VALIDATE_URL) && $value) $this->attributes['avatar'] = url('/') . $value; else $this->attributes['avatar'] = $value; } public function client() { return $this->belongsTo(Client::class); } public function primary_contact() { return $this->where('is_primary', true); } public function company() { return $this->belongsTo(Company::class); } public function user() { return $this->belongsTo(User::class); } public function sendPasswordResetNotification($token) { $this->notify(new ClientContactResetPassword($token)); } }