import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:geolocator/geolocator.dart';

class HospitalService extends BaseService {
  List<HospitalsModel> _hospitals = List();

  List<HospitalsModel> get hospitals => _hospitals;

  double _latitude;
  double _longitude;

  _getCurrentLocation() async {
    await Geolocator.getLastKnownPosition().then((value) {
      _latitude = value.latitude;
      _longitude = value.longitude;
    }).catchError((e) {
      _longitude = 0;
      _latitude = 0;
    });
  }

  Future getHospitals({bool isResBasedOnLoc = true}) async {
    if(isResBasedOnLoc)
    await _getCurrentLocation();
    Map<String, dynamic> body = Map();
    body['Latitude'] = await this.sharedPref.getDouble(USER_LAT);
    body['Longitude'] = await this.sharedPref.getDouble(USER_LONG);
    body['IsOnlineCheckIn'] = isResBasedOnLoc;
    body['PatientOutSA'] = 0;

    await baseAppClient.post(GET_PROJECT,
        onSuccess: (dynamic response, int statusCode) {
      _hospitals.clear();
      response['ListProject'].forEach((hospital) {
        _hospitals.add(HospitalsModel.fromJson(hospital));
      });
    }, onFailure: (String error, int statusCode) {
      hasError = true;
      super.error = error;
    }, body: body);
  }

}
