import { get } from "lodash";
import { baseUrl } from "./../../constants/urls";
import axios from "axios";

export const addAdress = async (payload: any) => {
  const url = `${baseUrl}/api/addresses/create?token=true`;
  axios.defaults.withCredentials = true;
  console.log(payload, "payload");
  const address = [];
  address.push(payload.address2);
  address.push(payload.address1);
  address.push(payload.landmark);
  const config = {
    method: "POST",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },

    data: {
      address1: address,
      city: payload.city,
      country: payload.country,
      country_name: payload.country_name,
      phone: payload.phone,
      postcode: payload.postcode,
      state: payload.state,
      first_name: payload.firstname,
      last_name: payload.lastname,
      prefer_time: payload.prefer_time,
      prefer_delivery: payload.prefer_delivery,
      delivery_instructions: payload.delivery_instruction,
      longitude: payload.longitude,
      latitude: payload.latitude,
      state_code:payload.state_code,
      company_name:payload.company_name
    },
  };

  console.log(config, "config");

  const add_address = await axios(config);

  return add_address.data;
};

export const updateAdress = async (payload: any) => {
  const url = `${baseUrl}/api/addresses/${payload.id}?token=true`;
  axios.defaults.withCredentials = true;
  console.log(payload, "payload");
  const address = [];
  address.push(payload.address2 || "");
  address.push(payload?.address1 || "");
  address.push(payload?.landmark || "");
  const config = {
    method: "PUT",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },

    data: {
      id: payload.id,
      address1: address,
      city: payload.city,
      country: payload.country,
      country_name: payload.country_name,
      phone: payload.phone,
      postcode: payload.postcode,
      state: payload.state,
      first_name: payload.firstname,
      last_name: payload.lastname,
      prefer_time: payload.prefer_time,
      prefer_delivery: payload.prefer_delivery,
      delivery_instructions: payload.delivery_instructions,
      longitude: payload.longitude,
      latitude: payload.latitude,
      default_address:payload.default_address
    },
  };

  console.log(config, "config");

  const add_address = await axios(config);

  return add_address.data;
};

export const idDefaultAddress = async (token: any, id: any,cus_id:any) => {
  const url = `${baseUrl}/api/customer-address/${cus_id}/${id}/default?token=true`;
  const config = {
    method: "GET",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + token,
    }
  };
  console.log(config);

  const isDefault_address = await axios(config);

  return isDefault_address.data;
};

export const getAdresses = async (payload: any) => {
  const url = `${baseUrl}/api/addresses?token=true`;

  const config = {
    method: "GET",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload,
    },
  };

  const get_address = await axios(config);

  
  return get_address.data;
};

export const getAdressesByID = async (payload: any) => {

  const url = `${baseUrl}/api/get-customer-address/${payload.id}/details?token=true`;

  const config = {
    method: "GET",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
  };

  const get_address_id = await axios(config);

  console.log(get_address_id.data);

  return get_address_id.data;
};

export const addressDeleteID = async (payload: any) => {
  const url = `${baseUrl}/api/addresses/${payload.id}?token=true`;

  const config = {
    method: "delete",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
  };

  const get_address_id = await axios(config);

  console.log(get_address_id.data);

  return get_address_id.data;
};
