// resources\assets\ts\DataPage\formSlice.ts
import { PayloadAction, createSlice } from '@reduxjs/toolkit';

const initialState = {
  isOpen: false,
  updateID: null,
  nextFormID: null,
  ergID: null,
  agbID: null,
  name: ''
};

const slice = createSlice({
  name: 'monitor/form',
  initialState,
  reducers: {
    openFormDialog(state) {
      state.isOpen = true;
    },
    closeFormDialog(state) {
      state.isOpen = false;
    },
    updateForm(
      state,
      { payload }: PayloadAction<{ ergID: number; lngid: string }>
    ) {
      state.nextFormID = null;
      state.agbID = null;
      state.updateID = payload.lngid;
      state.ergID = payload.ergID;
      state.isOpen = true;
    },
    nextForm(
      state,
      { payload }: PayloadAction<{ ergID: number; lngid: string, name: string }>
    ) {
      state.agbID = null;
      state.updateID = null;
      state.nextFormID = payload.lngid;
      state.ergID = payload.ergID;
      state.isOpen = true;
      state.name = payload.name;
    },
    newForm(
      state,
      { payload }: PayloadAction<{ agbID: number; name: string }>
    ) {
      state.updateID = null;
      state.nextFormID = null;
      state.ergID = null;
      state.agbID = payload.agbID;
      state.isOpen = true;
      state.name = payload.name;
    }
  }
});

export const {
  openFormDialog,
  closeFormDialog,
  updateForm,
  nextForm,
  newForm
} = slice.actions;
export default slice.reducer;
