36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { generateId } from "@/lib/id"
|
|
import { mockServices } from "@/lib/mock"
|
|
import type { PlayerService } from "@/lib/types"
|
|
import { create } from "zustand"
|
|
|
|
interface ServiceState {
|
|
services: PlayerService[]
|
|
createService: (service: Omit<PlayerService, "id">) => void
|
|
updateService: (serviceId: string, patch: Partial<Omit<PlayerService, "id">>) => void
|
|
deleteService: (serviceId: string) => void
|
|
}
|
|
|
|
export const useServiceStore = create<ServiceState>((set) => ({
|
|
services: mockServices,
|
|
createService: (service) =>
|
|
set((state) => ({
|
|
services: [
|
|
...state.services,
|
|
{
|
|
...service,
|
|
id: generateId("svc"),
|
|
},
|
|
],
|
|
})),
|
|
updateService: (serviceId, patch) =>
|
|
set((state) => ({
|
|
services: state.services.map((service) =>
|
|
service.id === serviceId ? { ...service, ...patch } : service,
|
|
),
|
|
})),
|
|
deleteService: (serviceId) =>
|
|
set((state) => ({
|
|
services: state.services.filter((service) => service.id !== serviceId),
|
|
})),
|
|
}))
|