import { baseUrl } from "./../../constants/urls";
import axios from "axios";
import {
  CreateQuoteData,
  Message,
  QuotationData,
  quoteToCart,
} from "../../components/customerDashboard/myQuotation/quotation";

export const getProfile = async (payload: any) => {
  const url = `${baseUrl}/api/customer-details?token=true`;

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

  const get_profile = await axios(config);

  //console.log(get_profile.data);

  return get_profile.data;
};

// export const editProfile = async (payload: any) => {
//   const url = `${baseUrl}/api/customer-update?token=true`;
//   const config = {
//     method: 'PUT',
//     url: url,
//     headers: {
//       Accept: 'application/json',
//       Authorization: `Bearer ` + payload.token
//     },
//     data: {
//       first_name: payload.first_name,
//       last_name: payload.last_name,
//       email: payload.email,
//       password: payload.password,
//       gender: payload.gender,
//       company_name: payload.company_name,
//       company_gst: payload.company_gst,
//       company_pan: payload.company_pan,
//       phone:payload.phone,

//     }
//     }
//     const edit_profile =  await axios(config);

//      return edit_profile.data;
// }

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

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

  const get_profile = await axios(config);

 // console.log(get_profile.data);

  return get_profile.data;
};

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

  const params = {
    first_name: payload.first_name,
    last_name: payload.last_name,
    gender: payload.gender,
    email: payload.email,
    password: payload.password,
    password_confirmation: payload.confirmPassword,
  };

  const config = {
    method: "PUT",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
    data: params,
  };
  console.log(config);

  const get_profile = await axios(config);

  console.log(get_profile.data);

  return get_profile.data;
};

export const profileUpdate = async (payload: any, token: any) => {
  const url = `${baseUrl}/api/customer-update?token=true`;

  const params = {
    first_name: payload.first_name,
    last_name: payload.last_name,
    gender: payload.gender,
    email: payload.email,
    phone: payload.phone,
    bussiness_type: payload.bussiness_type,
    company_gst: payload.company_gst,
    company_pan: payload.company_pan,
    company_name: payload.company_name,
    alternative_number: payload.alternative_number,
    business_number: payload.business_number,
    business_email: payload.business_email,
    whatsapp_number: payload.whatsapp_number,
    company_url: payload.company_url,
  };

  const config = {
    method: "PUT",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + token,
    },
    data: params,
  };

  const get_profile = await axios(config);

  return get_profile.data;
};

export const getQuotationData = async (authToken: any) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/get-quote`;

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

  const response = await axios(config);

  return response;
};

export const getEditQuotationData = async (authToken: string, Id: any) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/edit-quote/${Id}`;

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

  const response = await axios(config);

  return response.data;
};

export const UpdateQuotationData = async (
  payload: QuotationData,
  authToken: string,
  Id: any
) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/update-quote/${Id}`;

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

  const response = await axios(config);
  return response;
};

export const CreateQuotationRequest = async (
  payload: CreateQuoteData,
  authToken: string
) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/create-quote`;

  const config = {
    method: "POST",
    url: url,
    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + authToken,
    },
    data: payload,
  };
  const response = await axios(config);

  return response;
};

export const deleteQuotationRequest = async (authToken: string, Id: any) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/delete-quote/${Id}`;

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

  const response = await axios(config);

  return response;
};

export const addToCartQuoteItem = async (
  authToken: string,
  payload: quoteToCart
) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/add-to-cart`;

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

  const response = await axios(config);

  return response;
};

export const sendMessage = async (
  authToken: string,
  payload: Message,
  Id: any
) => {
  const url = `${baseUrl}/api/shop/customer/quote-management/reply-message`;

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

  const response = await axios(config);

  return response;
};
