import { createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios";
import { LOADING_END, LOADING_START } from "../../../lib/redux/slices/appSlice";

export const cityIncreaseHatchingeService = createAsyncThunk(
  "CITY_INCREASE_HATCHING_SERVICE",
  async (d, { dispatch }) => {
    try {
      dispatch(LOADING_START());
      const { data, status } = await axios.post(
        "hatching-increase-request/",
        d
      );
      dispatch(LOADING_END());
      return { data, status };
    } catch (e) {
      dispatch(LOADING_END());
      return { error: e.response.data.result };
    }
  }
);

export const cityEditIncreaseHatchingeService = createAsyncThunk(
  "CITY_EDIT_INCREASE_HATCHING_SERVICE",
  async (d, { dispatch }) => {
    try {
      dispatch(LOADING_START());
      const { data, status } = await axios.put(
        "hatching-increase-request/0/",
        d
      );
      dispatch(LOADING_END());
      return { data, status };
    } catch (e) {
      dispatch(LOADING_END());
      return { error: e.response.data.result };
    }
  }
);

export const cityDeleteIncreaseHatchingeService = createAsyncThunk(
  "CITY_DELETE_INCREASE_HATCHING_SERVICE",
  async (d, { dispatch }) => {
    dispatch(LOADING_START());
    try {
      const { data, status } = await axios.delete(
        `/hatching-increase-request/0/?key=${d}`
      );
      dispatch(LOADING_END());
      return { data, status };
    } catch (e) {
      dispatch(LOADING_END());
      return { error: e.response.data.result };
    }
  }
);

export const cityIncreaseGetHatchingeService = createAsyncThunk(
  "CITY_INCREASE_GET_HATCHING_SERVICE",
  async (d) => {
    const { data, status } = await axios.get("hatching-increase-request/", {
      params: d,
    });
    return { data, status };
  }
);
