*/ protected $fillable = [ 'fname', 'lname', 'name', 'password', 'mobile', 'user_type', 'token_sms', 'last_seen_at', 'active', 'send_sms', 'avatar_id', 'email', 'sts' ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'active'=> 'boolean', 'send_sms'=> 'boolean', ]; /** * Get the identifier that will be stored in the subject claim of the JWT. * * @return mixed */ public function getJWTIdentifier() { return $this->getKey(); } /** * Return a key value array, containing any custom claims to be added to the JWT. * * @return array */ public function getJWTCustomClaims() { return []; } // hash password public function setPasswordAttribute($value){ $this->attributes['password'] = Hash::make($value); } public static function isMobileTaken(?string $mobile, ?int $exceptId = null): bool { return Customer::isMobileTakenOnTable(self::class, $mobile, $exceptId); } public static function assertMobileUnique(?string $mobile, ?int $exceptId = null): void { if (self::isMobileTaken($mobile, $exceptId)) { throw new UnprocessableEntityHttpException('این شماره موبایل قبلاً ثبت شده است'); } } }