import 'package:fluffychat/pangea/common/constants/model_keys.dart'; import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart'; class ActivitiesProfileModel { final List _bookmarkedActivities; ActivitiesProfileModel({ required List bookmarkedActivities, }) : _bookmarkedActivities = bookmarkedActivities; static ActivitiesProfileModel get empty => ActivitiesProfileModel( bookmarkedActivities: [], ); bool isBookmarked(String id) => _bookmarkedActivities.contains(id); void addBookmark(String activityId) { if (!_bookmarkedActivities.contains(activityId)) { _bookmarkedActivities.add(activityId); } } void removeBookmark(String activityId) { _bookmarkedActivities.remove(activityId); } // Future> getBookmarkedActivities() => Future.wait( // _bookmarkedActivities.map((id) => ActivityPlanRepo.get(id)).toList(), // ); // List getBookmarkedActivitiesSync() => _bookmarkedActivities // .map((id) => ActivityPlanRepo.getCached(id)) // .whereType() // .toList(); static ActivitiesProfileModel fromJson(Map json) { if (!json.containsKey(PangeaEventTypes.profileActivities)) { return ActivitiesProfileModel.empty; } final profileJson = json[PangeaEventTypes.profileActivities]; return ActivitiesProfileModel( bookmarkedActivities: List.from(profileJson[ModelKey.bookmarkedActivities] ?? []), ); } Map toJson() { return { ModelKey.bookmarkedActivities: _bookmarkedActivities, }; } }