import { createSlice } from '@reduxjs/toolkit'; const initialState = { activities: [], currentActivity: null, registrations: [], loading: false, error: null, }; const activitySlice = createSlice({ name: 'activity', initialState, reducers: { setLoading: (state, action) => { state.loading = action.payload; }, setError: (state, action) => { state.error = action.payload; state.loading = false; }, setActivities: (state, action) => { state.activities = action.payload; state.loading = false; }, setCurrentActivity: (state, action) => { state.currentActivity = action.payload; }, setRegistrations: (state, action) => { state.registrations = action.payload; state.loading = false; }, addActivity: (state, action) => { state.activities.unshift(action.payload); }, updateActivity: (state, action) => { const index = state.activities.findIndex(activity => activity.id === action.payload.id); if (index !== -1) { state.activities[index] = action.payload; } }, deleteActivity: (state, action) => { state.activities = state.activities.filter(activity => activity.id !== action.payload); }, updateRegistrationStatus: (state, action) => { const { registrationId, status } = action.payload; const registration = state.registrations.find(reg => reg.id === registrationId); if (registration) { registration.status = status; } }, }, }); export const { setLoading, setError, setActivities, setCurrentActivity, setRegistrations, addActivity, updateActivity, deleteActivity, updateRegistrationStatus, } = activitySlice.actions; export default activitySlice.reducer;