import 'package:flutter/widgets.dart'; /// Server static configuration /// /// @author Pierre Hubert class PasswordPolicy { final bool allowMailInPassword; final bool allowNameInPassword; final int minPasswordLength; final int minNumberUpperCaseLetters; final int minNumberLowerCaseLetters; final int minNumberDigits; final int minNumberSpecialCharacters; final int minCategoriesPresence; const PasswordPolicy({ @required this.allowMailInPassword, @required this.allowNameInPassword, @required this.minPasswordLength, @required this.minNumberUpperCaseLetters, @required this.minNumberLowerCaseLetters, @required this.minNumberDigits, @required this.minNumberSpecialCharacters, @required this.minCategoriesPresence, }) : assert(allowMailInPassword != null), assert(allowNameInPassword != null), assert(minPasswordLength != null), assert(minNumberUpperCaseLetters != null), assert(minNumberLowerCaseLetters != null), assert(minNumberDigits != null), assert(minNumberSpecialCharacters != null), assert(minCategoriesPresence != null); } class ServerDataConservationPolicy { final int minInactiveAccountLifetime; final int minNotificationLifetime; final int minCommentsLifetime; final int minPostsLifetime; final int minConversationMessagesLifetime; final int minLikesLifetime; const ServerDataConservationPolicy({ @required this.minInactiveAccountLifetime, @required this.minNotificationLifetime, @required this.minCommentsLifetime, @required this.minPostsLifetime, @required this.minConversationMessagesLifetime, @required this.minLikesLifetime, }) : assert(minInactiveAccountLifetime != null), assert(minNotificationLifetime != null), assert(minCommentsLifetime != null), assert(minPostsLifetime != null), assert(minConversationMessagesLifetime != null), assert(minLikesLifetime != null); } class ServerConfig { final PasswordPolicy passwordPolicy; final ServerDataConservationPolicy dataConservationPolicy; const ServerConfig({ @required this.passwordPolicy, @required this.dataConservationPolicy, }) : assert(passwordPolicy != null), assert(dataConservationPolicy != null); }