import axios from "axios";
import { baseUrl } from "../../constants/urls";
const FormData = require('form-data');
import { RcFile } from "antd/lib/upload";
export const getOrders = async (payload: any) => {
  let url;
  if (payload?.status) {
    url = `${baseUrl}/api/orders?token=true&status=${payload.status}`;
  } else {
    url = `${baseUrl}/api/orders?token=true`;
  }
  const config = {
    method: "GET",
    url: url,

    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
    params: {
      page: payload.page,
      limit: payload.limit,
    },
  };
  const get_orders = await axios(config);

  return get_orders.data;
};

export const getOrdersById = async (payload: any) => {
  const url = `${baseUrl}/api/orders/${payload.id}?token=true`;
  const config = {
    method: "GET",
    url: url,

    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
  };
  const get_orders_Id = await axios(config);



  return get_orders_Id.data;
};

export const deleteOrder = async (payload: any) => {
  const url = `${baseUrl}/api/customisation/orders/${payload.id}/cancel?token=true`;
  const config = {
    method: "POST",
    url: url,

    headers: {
      Accept: "application/json",
      Authorization: `Bearer ` + payload.token,
    },
    data: {
      cancel_reason: payload.reason,
    },
  };
   

  const delete_order = await axios(config);


  return delete_order.data;
};


export const returnOrder = async (payload: any,id:any, token:any) => {
  const url = `${baseUrl}/api/order-return/${id}?token=true`;

  const data = new FormData();
  for (let index = 0; index < payload.image.length; index++) {
    data.append( 'image[]', payload.image[index] as RcFile);  
    
  }

data.append('reason', payload.reason);
data.append('id', payload.id);

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

    headers: {
      Accept: "application/json",
      'Content-Type': 'multipart/form-data',
      Authorization: `Bearer ` + token,
    },
    data:  data
  };


  const return_order = await axios(config);

 

  return return_order.data;
};