import axios from "axios";
import FormData from "form-data";

import { useAuthStore } from "@/store/authStore";

const API_URL = "https://hopp.zikor.pl/api/v1/orders";

export async function createOrder(noticeId, orderType) {
  const { token } = useAuthStore.getState();
  const headers = token ? { Authorization: `Bearer ${token}` } : {};
  const clientId = 1;
  try {
    const response = await axios.post(
      `${API_URL}/add`,
      { clientId, noticeId, orderType },
      {
        headers: {
          "Content-Type": "application/json",
          ...headers,
        },
      }
    );
    return response.data;
  } catch (error) {
    console.log("Error", error.response?.data, error.response?.status);
    return null;
  }
}

export async function createPayment(orderId) {
  const { token } = useAuthStore.getState();
  const headers = token ? { Authorization: `Bearer ${token}` } : {};
  const clientId = 1;
  try {
    const response = await axios.post(
      `${API_URL}/token`,
      {},
      {
        headers: {
          "Content-Type": "application/json",
          ...headers,
        },
      }
    );
    return response.data;
  } catch (error) {
    console.log("Error", error.response?.data, error.response?.status);
    return null;
  }
}

export async function listOrders() {
  const { token } = useAuthStore.getState();
  const headers = token ? { Authorization: `Bearer ${token}` } : {};

  try {
    const response = await axios.get(`${API_URL}/get/all`, { headers });
    return response.data; // to będzie tablica OrderWithPaymentsDTO
  } catch (error) {
    console.error(
      "Error fetching orders:",
      error.response?.data,
      error.response?.status
    );
    throw error;
  }
}
