import 'package:equatable/equatable.dart'; import 'user.dart'; class Group extends Equatable { final String id; final String name; final List members; const Group({ required this.id, required this.name, required this.members, }); factory Group.fromJson(Map json) { return Group( id: json['id'] as String, name: json['name'] as String, members: (json['members'] as List) .map((m) => User.fromJson(m as Map)) .toList(), ); } Map toJson() { return { 'id': id, 'name': name, 'members': members.map((m) => m.toJson()).toList(), }; } Group copyWith({ String? id, String? name, List? members, }) { return Group( id: id ?? this.id, name: name ?? this.name, members: members ?? this.members, ); } @override List get props => [id, name, members]; }