2025-12-26 11:42:02 -07:00
|
|
|
class ContactGroup {
|
|
|
|
|
final String name;
|
|
|
|
|
final List<String> memberKeys;
|
|
|
|
|
|
2026-02-04 08:32:35 -08:00
|
|
|
const ContactGroup({required this.name, required this.memberKeys});
|
2025-12-26 11:42:02 -07:00
|
|
|
|
2026-02-04 08:32:35 -08:00
|
|
|
ContactGroup copyWith({String? name, List<String>? memberKeys}) {
|
2025-12-26 11:42:02 -07:00
|
|
|
return ContactGroup(
|
|
|
|
|
name: name ?? this.name,
|
|
|
|
|
memberKeys: memberKeys ?? List<String>.from(this.memberKeys),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
2026-02-04 08:32:35 -08:00
|
|
|
return {'name': name, 'members': memberKeys};
|
2025-12-26 11:42:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
factory ContactGroup.fromJson(Map<String, dynamic> json) {
|
2026-02-04 08:32:35 -08:00
|
|
|
final members =
|
|
|
|
|
(json['members'] as List?)?.map((value) => value.toString()).toList() ??
|
2025-12-26 11:42:02 -07:00
|
|
|
<String>[];
|
|
|
|
|
return ContactGroup(
|
|
|
|
|
name: json['name'] as String? ?? '',
|
|
|
|
|
memberKeys: members,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|