skills/flutter-bloc-development/examples/shared/data/models/user.dart

37 lines
852 B
Dart

// Example: Shared User Model
// Path: lib/shared/data/models/user.dart
import 'package:equatable/equatable.dart';
/// Shared user model used across multiple features
class User extends Equatable {
final String id;
final String email;
final String name;
final String? avatarUrl;
const User({
required this.id,
required this.email,
required this.name,
this.avatarUrl,
});
factory User.fromJson(Map<String, dynamic> json) => User(
id: json['id'] as String,
email: json['email'] as String,
name: json['name'] as String,
avatarUrl: json['avatar_url'] as String?,
);
Map<String, dynamic> toJson() => {
'id': id,
'email': email,
'name': name,
'avatar_url': avatarUrl,
};
@override
List<Object?> get props => [id, email, name, avatarUrl];
}