import { createSlice } from '@reduxjs/toolkit';
import { aGetInitSuccess, aLocationChange, aSetFilterData } from './bonus';
/**
* @namespace reducer/cashiersReducer
*/
const initialState = {
cashiers: [],
lastUserId: '',
statementTypes: [],
statements: [],
lastStatementId: '',
userId: '',
};
const resetCashier = (state) => {
state.cashiers = [];
state.lastUserId = '';
state.statements = [];
state.lastStatementId = '';
};
const clearUserId = (state) => {
state.userId = '';
};
const cashierSlice = createSlice({
name: 'cashier',
initialState,
reducers: {
aClearUserId: clearUserId,
aClearFilterData: clearUserId,
aGetCashierListSuccess: (state, action) => {
state.cashiers = action.payload.cashiers;
state.lastUserId = action.payload.lastUserId;
},
aGetStatementListSuccess: (state, action) => {
state.statements = action.payload.statements;
state.lastStatementId = action.payload.lastStatementId;
},
aSetUserId: (state, action) => {
state.userId = action.payload;
},
},
extraReducers: (builder) => {
builder.addCase(aGetInitSuccess, (state, action) => {
state.statementTypes = action.payload.selects.statementTypes;
});
builder.addCase(aLocationChange, resetCashier);
builder.addCase(aSetFilterData, resetCashier);
},
});
export default cashierSlice.reducer;
export const { aClearUserId, aClearFilterData, aGetCashierListSuccess, aGetStatementListSuccess, aSetUserId } =
cashierSlice.actions;