import 'dart:convert'; import '../../../core/api/api_client.dart'; import '../../../core/platform/token_storage.dart'; class AuthRepository { final ApiClient _api; final ITokenStorage _storage; AuthRepository(this._api, this._storage); Future login(String username, String password) async { final response = await _api.post( '/auth/login', jsonEncode({'username': username, 'password': password}), ); if (response.statusCode != 200 && response.statusCode != 201) { throw Exception('Login failed: ${response.statusCode}'); } final data = jsonDecode(response.body) as Map; final token = data['accessToken'] as String; await _storage.saveToken(token); return token; } Future logout() => _storage.deleteToken(); Future getToken() => _storage.getToken(); }