import '../../core/network/i_api_client.dart'; import 'models/user_summary.dart'; abstract class UserRepository { Future getById(String userId); Future getMe(); } class UserRepositoryImpl implements UserRepository { final IApiClient _apiClient; static const _prefix = '/api/v1/users'; UserRepositoryImpl(this._apiClient); @override Future getById(String userId) async { final response = await _apiClient.get>( '$_prefix/$userId', ); final user = response.data; if (user == null) { throw StateError('Invalid getById response: empty payload'); } return UserSummary.fromJson(user); } @override Future getMe() async { final response = await _apiClient.get>('$_prefix/me'); final user = response.data; if (user == null) { throw StateError('Invalid getMe response: empty payload'); } return UserSummary.fromJson(user); } }