import { createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios";
import { LOADING_END, LOADING_START } from "../../../lib/redux/slices/appSlice";
import { getRoleFromUrl } from "../../../utils/getRoleFromUrl";
export const provinceGetAllocatedRequestsService = createAsyncThunk(
  "PROVINCE_GET_ALLOCATED_REQUESTS_SERVICE",
  async (d, { dispatch }) => {
    dispatch(LOADING_START());

    const params = {
      role: getRoleFromUrl(),
      role_key: d.role_key || "",
      date1: d.selectedDate1,
      date2: d.selectedDate2,
      filter: "search",
      value: d.textValue,
    };

    if (d.hasDocumentState) {
      params.allocated_car_state = true;
    } else {
      params.allocations = true;
    }

    const { data, status } = await axios.get(`province_kill_request/`, {
      params,
    });

    dispatch(LOADING_END());
    return { data, status };
  }
);

export const provinceUpdateAllocatedRequestService = createAsyncThunk(
  "PROVINCE_UPDATE_ALLOCATED_REQUEST_SERVICE",
  async (d, { dispatch }) => {
    try {
      dispatch(LOADING_START());
      const { data, status } = await axios.put("province_kill_request/0/", d);
      dispatch(LOADING_END());
      return { data, status };
    } catch (e) {
      dispatch(LOADING_END());
      return { error: e.response.data.result };
    }
  }
);
