import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import '../config/api_config.dart'; import 'dio_client.dart'; class AuthService { late final Dio _dio; AuthService(BuildContext context) { _dio = DioClient.getInstance(context); } /// Login API Future> login(String loginId, String password) async { try { final response = await _dio.post('/user/login', data: { 'login_id': loginId, 'password': password, }); return Map.from(response.data); } on DioException catch (e) { final data = e.response?.data; return { 'success': false, 'message': data is Map && data['message'] != null ? data['message'] : e.message ?? 'Login failed' }; } catch (e) { return {'success': false, 'message': e.toString()}; } } /// Logout API Future> logout() async { try { final response = await _dio.post('/user/logout'); return Map.from(response.data); } catch (e) { return {'success': false, 'message': e.toString()}; } } /// Refresh token Future> refreshToken(String oldToken) async { try { final response = await _dio.post( '/user/refresh', options: Options(headers: { 'Authorization': 'Bearer $oldToken', }), ); return Map.from(response.data); } on DioException catch (e) { final msg = e.response?.data?['message'] ?? 'Refresh failed'; return {'success': false, 'message': msg}; } } }