import 'package:equatable/equatable.dart'; /// UserModel representing authenticated user session data. class UserModel extends Equatable { final String userId; final String email; final String fullName; final String role; final String? token; const UserModel({ required this.userId, required this.email, required this.fullName, required this.role, this.token, }); bool get isAdmin => role.toLowerCase() == 'admin'; factory UserModel.fromJson(Map json, {String? token}) { return UserModel( userId: json['userId']?.toString() ?? json['id']?.toString() ?? '', email: json['email']?.toString() ?? '', fullName: json['fullName']?.toString() ?? json['name']?.toString() ?? '', role: json['role']?.toString() ?? 'User', token: token ?? json['token']?.toString(), ); } Map toJson() { return { 'userId': userId, 'email': email, 'fullName': fullName, 'role': role, 'token': token, }; } @override List get props => [userId, email, fullName, role, token]; }