import 'package:finlytic_app/core/network/api_client.dart'; import 'package:finlytic_app/features/admin/models/admin_user_model.dart'; import 'package:finlytic_app/features/admin/models/admin_create_user_request_dto.dart'; import 'package:finlytic_app/features/admin/models/admin_update_user_request_dto.dart'; class AdminRepository { final ApiClient apiClient; AdminRepository({required this.apiClient}); Future> fetchUsers() async { try { final res = await apiClient.get('/api/v1/admin/users'); if (res.statusCode == 200 && res.data != null) { final List data = res.data; return data.map((json) => AdminUserModel.fromJson(json)).toList(); } return []; } catch (e) { print('Error fetching admin users: $e'); throw Exception('Nutzer konnten nicht geladen werden'); } } Future createUser(AdminCreateUserRequestDto dto) async { final res = await apiClient.post('/api/v1/admin/users', data: dto.toJson()); if (res.statusCode != 200 && res.statusCode != 201) { throw Exception('Erstellen fehlgeschlagen'); } } Future updateUser(String id, AdminUpdateUserRequestDto dto) async { final res = await apiClient.put('/api/v1/admin/users/$id', data: dto.toJson()); if (res.statusCode != 200) { throw Exception('Aktualisieren fehlgeschlagen'); } } }