import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import type { RootState } from './store';

export interface PolicyResourcesState {
  read: string[];
  write: string[];
}

//TODO !FIXME: add middleware to fetch resources from backend
const initialState: PolicyResourcesState = {
  read: ['database', 'query', 'visualization', 'policy'],
  write: ['database', 'query', 'visualization', 'policy'],
};

export const policyResourcesSlice = createSlice({
  name: 'policyResources',
  initialState,
  reducers: {
    getResourcesPolicy: (state, action: PayloadAction<PolicyResourcesState>) => {
      return action.payload;
    },
  },
});

export const { getResourcesPolicy } = policyResourcesSlice.actions;
export default policyResourcesSlice.reducer;
export const selectResourcesPolicyState = (state: RootState) => state.policyResources;