import { createSlice, PayloadAction } from '@reduxjs/toolkit'; export interface Customer { _id: string; name: string; email: string; totalOrders: number; totalSpent: number; } interface CustomerState { customers: Customer[]; loading: boolean; error: string | null; } const initialState: CustomerState = { customers: [], loading: false, error: null, }; const customerSlice = createSlice({ name: 'customers', initialState, reducers: { setCustomers: (state, action: PayloadAction) => { state.customers = action.payload; }, addCustomer: (state, action: PayloadAction) => { state.customers.push(action.payload); }, updateCustomer: (state, action: PayloadAction) => { const index = state.customers.findIndex(c => c._id === action.payload._id); if (index !== -1) state.customers[index] = action.payload; }, setLoading: (state, action: PayloadAction) => { state.loading = action.payload; }, setError: (state, action: PayloadAction) => { state.error = action.payload; }, }, }); export const { setCustomers, addCustomer, updateCustomer, setLoading, setError } = customerSlice.actions; export default customerSlice.reducer;