// class AuthType {
//   static const String apple = "apple";
//   static const String google = "google";
//   static const String facebook = "facebook";
//   static const String anonymous = "anonymous";
// }
//
// enum AuthCode { success, conflict, error }
//
// String authTypeName(String authType) {
//   switch (authType) {
//     case AuthType.facebook:
//       return "Facebook";
//     case AuthType.google:
//       return "Google";
//     case AuthType.apple:
//       return "Apple";
//     default:
//       return "Anonymous";
//   }
// }
//
// class AuthResult {
//   final AuthCode code;
//   final dynamic errorCause;
//   final dynamic credential;
//
//   bool get isSuccess => code == AuthCode.success;
//
//   AuthResult.success(this.credential)
//       : code = AuthCode.success,
//         errorCause = null;
//
//   AuthResult.error(this.errorCause)
//       : code = AuthCode.error,
//         credential = null;
//
//   @override
//   String toString() {
//     return 'AuthResult{code: $code, credential: $credential, errorCause: $errorCause}';
//   }
// }
