import 'package:comwell_key_app/services/interceptors/response_handle_interceptor.dart';
import 'package:common/utils/env_utils.dart';
import 'package:dio/dio.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

import '../utils/locator.dart';

class ComwellHttpClient {
  final Dio dio;

  ComwellHttpClient() : dio = _createDio();

  static Dio _createDio() {
    final dio = Dio(
      BaseOptions(
        baseUrl: dotenv.SERVICE_URL,
        receiveTimeout: const Duration(seconds: 15),
        connectTimeout: const Duration(seconds: 15),
        sendTimeout: const Duration(seconds: 15),
      ),
    );
    dio.interceptors.add(
      ResponseHandleInterceptor(locator.get(), locator.get()),
    );
    if (kDebugMode) dio.interceptors.add(PrettyDioLogger(requestHeader: true));
    return dio;
  }
}