import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
import axios from 'B/axios';

interface History {
  aud_id: number;
  aud_timestamp: string;
  aud_text: string;
  aud_krzl: string;
}

type State = { history: History[]; isOpen: boolean };
const initialState: State = {
  history: [],
  isOpen: false
};

export const fetchHistory = createAsyncThunk(
  'fetch_history',
  async (ergID: number) => {
    const r = await axios.get(`c/${ergID}/history`);

    return r.data as History[];
  }
);

const slice = createSlice({
  name: 'comission/history',
  initialState,
  reducers: {
    close(state) {
      state.history = [];
      state.isOpen = false;
    }
  },
  extraReducers: (builder) => {
    builder.addCase(fetchHistory.fulfilled, (state, { payload }) => {
      state.history = payload;
      state.isOpen = true;
    });
  }
});

export const { close: closeHistory } = slice.actions;
export default slice.reducer;
