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
}