import 'package:dio/dio.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../auth/auth_state.dart'; final apiClientProvider = Provider((ref) { final authState = ref.watch(authStateProvider); return ApiClient(token: authState.user?.token); }); class ApiClient { late final Dio _dio; ApiClient({String? token}) { _dio = Dio(BaseOptions( baseUrl: 'http://localhost:8080/api/v1', connectTimeout: const Duration(seconds: 10), receiveTimeout: const Duration(seconds: 30), headers: { 'Content-Type': 'application/json', if (token != null) 'Authorization': 'Bearer $token', }, )); } Future get(String path, {Map? params}) => _dio.get(path, queryParameters: params); Future post(String path, {dynamic data}) => _dio.post(path, data: data); Future put(String path, {dynamic data}) => _dio.put(path, data: data); Future delete(String path) => _dio.delete(path); }