*/ use HasFactory, Notifiable; /** * The attributes that are mass assignable. * * @var list */ protected $fillable = [ 'name', 'email', 'password', 'tenant_id', 'role', 'is_active', ]; /** * The attributes that should be hidden for serialization. * * @var list */ protected $hidden = [ 'password', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', 'is_active' => 'boolean', ]; } /** * Beziehung zum Mandanten */ public function tenant() { return $this->belongsTo(Tenant::class); } /** * Prüfe ob Benutzer Super-Admin ist */ public function isSuperAdmin(): bool { return $this->role === 'super_admin'; } /** * Prüfe ob Benutzer Mandanten-Admin ist */ public function isTenantAdmin(): bool { return $this->role === 'tenant_admin'; } /** * Prüfe ob Benutzer Admin-Rechte hat (Super-Admin oder Mandanten-Admin) */ public function isAdmin(): bool { return in_array($this->role, ['super_admin', 'tenant_admin']); } /** * Scope für aktive Benutzer */ public function scopeActive($query) { return $query->where('is_active', true); } }