import 'package:equatable/equatable.dart'; class User extends Equatable { final String id; final String name; final String email; final String avatarUrl; final double score; const User({ required this.id, required this.name, required this.email, required this.avatarUrl, required this.score, }); factory User.fromJson(Map json) { return User( id: json['id'] as String, name: json['name'] as String, email: json['email'] as String, avatarUrl: json['avatarUrl'] as String, score: (json['score'] as num).toDouble(), ); } Map toJson() { return { 'id': id, 'name': name, 'email': email, 'avatarUrl': avatarUrl, 'score': score, }; } User copyWith({ String? id, String? name, String? email, String? avatarUrl, double? score, }) { return User( id: id ?? this.id, name: name ?? this.name, email: email ?? this.email, avatarUrl: avatarUrl ?? this.avatarUrl, score: score ?? this.score, ); } @override List get props => [id, name, email, avatarUrl, score]; }