class AuthUser { final int id; final String username; final String role; const AuthUser({required this.id, required this.username, required this.role}); bool get isAdmin => role == 'admin'; factory AuthUser.fromMap(Map map) => AuthUser( id: map['id'] as int, username: map['username'] as String, role: map['role'] as String, ); } abstract class AuthState { const AuthState(); } class AuthLoading extends AuthState { const AuthLoading(); } class AuthAuthenticated extends AuthState { final AuthUser user; const AuthAuthenticated(this.user); } class AuthUnauthenticated extends AuthState { const AuthUnauthenticated(); }