import 'dart:collection'; import 'package:comunic/models/post.dart'; /// Posts List /// /// Contains method to easily process a list of posts /// /// @author Pierre HUBERT class PostsList extends ListBase { List _list = []; int get length => _list.length; set length(int l) => _list.length = l; @override Post operator [](int index) => _list[index]; @override void operator []=(int index, Post value) => _list[index] = value; // Get the list of users ID in this set Set get usersID { Set set = Set(); forEach((p) { set.add(p.userID); if (p.userPageID != null && p.userPageID > 0) set.add(p.userPageID); if (p.comments != null) set.addAll(p.comments.usersID); }); return set; } /// Get the list of groups in this list of posts Set get groupsID { Set set = Set(); forEach((p) { if (p.isGroupPost) set.add(p.groupID); }); return set; } /// Get the ID of the oldest post of this list. Returns 0 if the list is empty int get oldestID { if(isEmpty) return 0; return this.elementAt(length - 1).id; } }