class ContactGroup { final String name; final List memberKeys; const ContactGroup({ required this.name, required this.memberKeys, }); ContactGroup copyWith({ String? name, List? memberKeys, }) { return ContactGroup( name: name ?? this.name, memberKeys: memberKeys ?? List.from(this.memberKeys), ); } Map toJson() { return { 'name': name, 'members': memberKeys, }; } factory ContactGroup.fromJson(Map json) { final members = (json['members'] as List?) ?.map((value) => value.toString()) .toList() ?? []; return ContactGroup( name: json['name'] as String? ?? '', memberKeys: members, ); } }