import 'package:google_maps_flutter/google_maps_flutter.dart';

class BillingAddress {
  String id;
  String firstName;
  String lastName;
  String email;
  String company;
  int countryId;
  String country;
  String stateProvinceId;
  String city;
  String address1;
  String address2;
  String zipPostalCode;
  String phoneNumber;
  String faxNumber;
  String customerAttributes;
  String createdOnUtc;
  String province;
  String latLong;

  BillingAddress(
      {this.id,
        this.firstName,
        this.lastName,
        this.email,
        this.company,
        this.countryId,
        this.country,
        this.stateProvinceId,
        this.city,
        this.address1,
        this.address2,
        this.zipPostalCode,
        this.phoneNumber,
        this.faxNumber,
        this.customerAttributes,
        this.createdOnUtc,
        this.province,
        this.latLong});

  BillingAddress.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    firstName = json['first_name'];
    lastName = json['last_name'];
    email = json['email'];
    company = json['company'];
    countryId = json['country_id'];
    country = json['country'];
    stateProvinceId = json['state_province_id'];
    city = json['city'];
    address1 = json['address1'];
    address2 = json['address2'];
    zipPostalCode = json['zip_postal_code'];
    phoneNumber = json['phone_number'];
    faxNumber = json['fax_number'];
    customerAttributes = json['customer_attributes'];
    createdOnUtc = json['created_on_utc'];
    province = json['province'];
    latLong = json['lat_long'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['first_name'] = this.firstName;
    data['last_name'] = this.lastName;
    data['email'] = this.email;
    data['company'] = this.company;
    data['country_id'] = this.countryId;
    data['country'] = this.country;
    data['state_province_id'] = this.stateProvinceId;
    data['city'] = this.city;
    data['address1'] = this.address1;
    data['address2'] = this.address2;
    data['zip_postal_code'] = this.zipPostalCode;
    data['phone_number'] = this.phoneNumber;
    data['fax_number'] = this.faxNumber;
    data['customer_attributes'] = this.customerAttributes;
    data['created_on_utc'] = this.createdOnUtc;
    data['province'] = this.province;
    data['lat_long'] = this.latLong;
    return data;
  }

  LatLng getLocation(){
    if(latLong.contains(',')){
      var parts = latLong.trim().split(',');
      if(parts.length == 2){
        var lat = double.tryParse(parts.first);
        var lng = double.tryParse(parts.last);
        if(lat != null || lng != null) {
          var location = LatLng(lat, lng);
          return location;
        }
      }
    }
    return null;
  }
}
