namespace SfeduSchedule.Plugin.UniVerse; /// /// Результат поиска пользователя. /// /// Статус выполнения поиска. /// Найденный Sub ID пользователя. /// Описание ошибки вышестоящего сервиса. public sealed record UniverseUserLookupResult( UniverseUserLookupStatus Status, string? SubId = null, string? ErrorMessage = null) { /// /// Успешный результат поиска. /// /// Найденный Sub ID пользователя. /// Результат со статусом Found. public static UniverseUserLookupResult Found(string subId) => new(UniverseUserLookupStatus.Found, subId); /// /// Результат для случая, когда пользователь не найден. /// /// Результат со статусом NotFound. public static UniverseUserLookupResult NotFound() => new(UniverseUserLookupStatus.NotFound); /// /// Результат ошибки вышестоящего сервиса. /// /// Описание ошибки. /// Результат со статусом UpstreamError. public static UniverseUserLookupResult UpstreamError(string message) => new(UniverseUserLookupStatus.UpstreamError, ErrorMessage: message); } public enum UniverseUserLookupStatus { Found, NotFound, UpstreamError }