import 'package:meta/meta.dart'; /// Group information /// /// @author Pierre HUBERT enum GroupMembershipLevel { ADMINISTRATOR, MODERATOR, MEMBER, INVITED, PENDING, VISITOR } enum GroupVisibilityLevel { OPEN, PRIVATE, SECRETE } enum GroupRegistrationLevel { OPEN, MODERATED, CLOSED } enum GroupPostCreationLevel { MODERATORS, MEMBERS } class Group { final int id; final String name; final String iconURL; final int numberMembers; GroupMembershipLevel membershipLevel; final GroupVisibilityLevel visibilityLevel; final GroupRegistrationLevel registrationLevel; final GroupPostCreationLevel postCreationLevel; final String virtualDirectory; final bool following; Group({ @required this.id, @required this.name, @required this.iconURL, @required this.numberMembers, @required this.membershipLevel, @required this.visibilityLevel, @required this.registrationLevel, @required this.postCreationLevel, @required this.virtualDirectory, @required this.following, }) : assert(id != null), assert(name != null), assert(iconURL != null), assert(numberMembers != null), assert(membershipLevel != null), assert(visibilityLevel != null), assert(registrationLevel != null), assert(postCreationLevel != null), assert(following != null); get displayName => this.name; bool get getIsAtLeastMember => membershipLevel == GroupMembershipLevel.ADMINISTRATOR || membershipLevel == GroupMembershipLevel.MODERATOR || membershipLevel == GroupMembershipLevel.MEMBER; }