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 provinceGetTotalGuildsService = createAsyncThunk(
  "PROVINCE_GET_TOTAL_GUILDS_SERVICE",
  async (
    {
      search = "filter",
      value = "",
      page = 1,
      page_size = 10,
      steward = false,
      active_state = "active",
      is_real_person = true,
      role_key = "",
    },
    { dispatch }
  ) => {
    try {
      dispatch(LOADING_START());
      const { data, status } = await axios.get("total_guilds/", {
        params: {
          search,
          value,
          role: getRoleFromUrl(),
          page,
          page_size,
          steward,
          active_state,
          is_real_person,
          role_key: role_key,
        },
      });
      dispatch(LOADING_END());
      return { data, status };
    } catch (e) {
      dispatch(LOADING_END());
      return {
        error:
          e.response?.data?.result ||
          e.response?.data ||
          "خطا در دریافت اطلاعات",
      };
    }
  }
);
