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, ); } }