import { RcFile } from "antd/lib/upload";
import axios from "axios";
import { baseUrl } from "../../constants/urls";
const FormData = require('form-data');


export const RFQAPI = async (payload: any) => {
  const url = `${baseUrl}/api/customer/generate-rfq?token=true`;
  const form = new FormData();
  for (let index: any = 0; index < payload.product.length; index++) {

    payload.product[index].item_image?.[0] && form.append(`${index}[image]`, payload.product[index].item_image?.[0]?.originFileObj, payload.product[index].item_image?.[0]?.name);
    form.append(`${index}[name]`, payload.product[index].item_name);
    form.append(`${index}[specifications]`, payload.product[index].specification);
    form.append(`${index}[brand]`, payload.product[index].brand);
    form.append(`${index}[uom]`, payload.product[index].uom);
    form.append(`${index}[quantity]`, payload.product[index].quantity);
    form.append(`${index}[delivery_date]`, payload.product[index].delivery_date);
    form.append(`${index}[price]`, payload.product[index].price);

  }
  form.append('comment', payload.comment);
  form.append('customer_location', payload.customer_location);
  form.append('representative_name', payload.representative_name);
  form.append('representative_contact_number', payload.representative_contact_number);
  //   data.append( 'image', payload.image as RcFile);



  const config = {
    method: "POST",
    url: url,

    headers: {
      'Content-Type': 'multipart/form-data',
      Authorization: `Bearer ` + payload?.token,
    },
    data: form
  };


  const delete_order = await axios(config);



  return delete_order.data;
};

export const updateRfq = async (payload: any, id: any, token: any) => {
  try {
    const url = `${baseUrl}/api/customer/edit-rfq-item/${id}?token=true`
    const config = {
      method: 'patch',
      url,
      headers: {
        Accept: 'application/json',
        Authorization: `Bearer ${token}`,
        "Access-Control-Allow-Origin": "*"
      },
      data: payload
    };

    const rfqUpdate = await axios(config);

    return rfqUpdate.data;
  } catch (error: any) {

    console.log(error);

    return error.response.data;
  }
}

export const deleteRfq = async (payload: any) => {
  try {
    const url = `${baseUrl}/api/customer/rfq/${payload.id}?token=true`
    const config = {
      method: 'DELETE',
      url,
      headers: {
        Accept: 'application/json',
        Authorization: `Bearer ${payload.token}`,
        "Access-Control-Allow-Origin": "*"
      },

    };

    const rfqUpdate = await axios(config);

    return rfqUpdate.data;
  } catch (error: any) {

    console.log(error);

    return error.response.data;
  }
}

export const deleteItemRfq = async (payload: any) => {
  try {
    const url = `${baseUrl}/api/customer/rfq-item/${payload.id}?token=true`
    const config = {
      method: 'DELETE',
      url,
      headers: {
        Accept: 'application/json',
        Authorization: `Bearer ${payload.token}`,
        "Access-Control-Allow-Origin": "*"
      },

    };

    const rfqUpdate = await axios(config);

    return rfqUpdate.data;
  } catch (error: any) {

    console.log(error);

    return error.response.data;
  }
}

export const RFQEXCELAPI = async (payload: any) => {
  const url = `${baseUrl}/api/customer/generate-rfq-file?token=true`;
  const form = new FormData();

  form.append('excelfile', payload.file as RcFile);
  form.append('comment', payload.comment);
  form.append('representative_name', payload.representative_name);
  form.append('representative_contact_number', payload.representative_contact_number);
  form.append('customer_location', payload.customerLocation)


  const config = {
    method: "POST",
    url: url,
    headers: {
      'Content-Type': 'multipart/form-data',
      Authorization: `Bearer ` + payload?.token,
    },
    data: form
  };

  const send_order = await axios(config);

  return send_order.data;

}