// ignore_for_file: public_member_api_docs, sort_constructors_first

import 'package:http/http.dart' as http;
import 'dart:convert';
import '../config/environment.dart';
import '../models/locationiq_model.dart';

class LocationIQService {
  static final String baseUrl = Environment.locationIQBaseUrl;
  late LocationIQ locationIQ;

  Future<void> fetchLocationIQ(double lat, double lon) async {
    // https://eu1.locationiq.com/v1/reverse?key=$locationIQKey&lat=47.93875449671056&lon=13.762706553431048&format=json

    // Http Request
    var httpClient = http.Client();
    var url = '$baseUrl&lat=$lat&lon=$lon&format=json';
    print('Fetching LocationIQ data from: $url');
    try {
      var response = await httpClient.get(Uri.parse(url));
      if (response.statusCode == 200) {
        print('LocationIQ API response: ${response.body}');
        locationIQ = LocationIQ.fromJson(
          Map<String, dynamic>.from(
            jsonDecode(response.body) as Map<String, dynamic>,
          ),
        );
        print('LocationIQ data parsed successfully: ${locationIQ.displayName}');
      } else {
        print('Failed to fetch LocationIQ data. Status code: ${response.statusCode}');  
      }
    } catch (e) {
      print('Error fetching LocationIQ data: $e');
    } finally {
      httpClient.close();
    }
  }



  
}
