import '../../models/user_model.dart'; import '../interfaces/user_service.dart'; import 'api_client.dart'; /// Real API implementation. /// NOTE: The backend has no list-users endpoint, so [getUsers] returns only /// users created during the current session (stored in memory). class UserApiService implements UserService { final ApiClient _client; final List _sessionUsers = []; UserApiService(this._client); @override Future> getUsers() async { return List.unmodifiable(_sessionUsers); } @override Future createUser(String username, UserRole role) async { final data = await _client.post('/admin/users', { 'username': username, 'role': role.apiValue, }); final user = UserModel.fromJson(data['user'] as Map); final secret = data['secret'] as String; _sessionUsers.add(user); return (user: user, secret: secret); } @override Future resetSecret(String userId) async { final data = await _client.post( '/admin/users/$userId/reset-secret', {}, ); return data['secret'] as String; } }