// lib/data/sources/remote/api_service.dart import 'package:autos/core/constants/api_endpoints.dart'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; class ApiService { final Dio _dio; ApiService({String? baseUrl}) : _dio = Dio( BaseOptions( baseUrl: baseUrl ?? ApiEndpoints.baseUrl, connectTimeout: ApiEndpoints.connectTimeout, receiveTimeout: ApiEndpoints.receiveTimeout, headers: ApiEndpoints.defaultHeaders, ), ) { // Add logging interceptor in debug mode if (kDebugMode) { _dio.interceptors.add( LogInterceptor(requestBody: true, responseBody: true), ); } } /// POST request Future post( String endpoint, Map data, { Options? options, }) async { return await _dio.post(endpoint, data: data, options: options); } /// GET request with optional overrideBaseUrl and headers Future get( String endpoint, { Map? params, Map? headers, // ✅ NOW SUPPORTED String? overrideBaseUrl, }) async { final String requestUrl = overrideBaseUrl != null ? overrideBaseUrl + endpoint : endpoint; return await _dio.get( requestUrl, queryParameters: params, options: headers != null ? Options(headers: headers) : null, ); } }