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 slaughterGetGuildsForAllocateService = createAsyncThunk(
  "SLAUGHTER_GET_GUILDS_FOR_ALLOCATE_SERVICE",
  async (d, { dispatch }) => {
    dispatch(LOADING_START());
    const { data, status } = await axios.get("guilds/", {
      params: { role: getRoleFromUrl(), ...d },
    });
    dispatch(LOADING_END());
    return { data, status };
  }
);

export const slaughterGetColdHousesForAllocateService = createAsyncThunk(
  "SLAUGHTER_GET_COLDHOUSES_FOR_ALLOCATE_SERVICE",
  async (d, { dispatch }) => {
    dispatch(LOADING_START());
    const { data, status } = await axios.get("cold-house/", {
      params: { role: getRoleFromUrl(), ...d },
    });
    dispatch(LOADING_END());
    return { data, status };
  }
);

export const slaughterGetStewardsForAllocateService = createAsyncThunk(
  "SLAUGHTER_GET_STEWARDS_FOR_ALLOCATE_SERVICE",
  async (d, { dispatch }) => {
    dispatch(LOADING_START());
    const { data, status } = await axios.get("main-stewards/", {
      params: {
        role: getRoleFromUrl(),
        ...d,
      },
    });
    dispatch(LOADING_END());
    return { data, status };
  }
);
