*/ protected $fillable = [ 'name', 'email', 'password', 'configs', 'registered_ip', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', 'registered_ip', 'configs', 'status', 'group_id', 'is_adminer', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'capacity' => 'float', 'is_adminer' => 'bool', 'configs' => 'collection', 'email_verified_at' => 'datetime', ]; protected static function booted() { static::creating(function (self $user) { $user->configs = collect([ 'default_album' => 0, 'default_strategy' => 0, ])->merge($user->configs ?: []); }); } public function group(): BelongsTo { return $this->belongsTo(Group::class, 'group_id', 'id'); } public function album(): HasMany { return $this->hasMany(Album::class, 'user_id', 'id'); } public function images(): HasMany { return $this->hasMany(Image::class, 'user_id', 'id'); } }