import 'package:flutter/foundation.dart'; import 'market_history_admin_api.dart'; enum AdminAccessStatus { unknown, loading, authorized, forbidden, unauthorized, error, } /// Probes admin API access for home-screen discovery (allowlist-backed). class AdminAccessService { AdminAccessService._(); static final AdminAccessService instance = AdminAccessService._(); final ValueNotifier status = ValueNotifier(AdminAccessStatus.unknown); Future refresh({MarketHistoryAdminApi? api}) async { status.value = AdminAccessStatus.loading; try { await (api ?? MarketHistoryAdminApi()).fetchSyncRuns(limit: 1); status.value = AdminAccessStatus.authorized; } on MarketHistoryAdminApiException catch (e) { status.value = switch (e.statusCode) { 401 => AdminAccessStatus.unauthorized, 403 => AdminAccessStatus.forbidden, _ => AdminAccessStatus.error, }; } catch (_) { status.value = AdminAccessStatus.error; } } void reset() { status.value = AdminAccessStatus.unknown; } }