import { mockShops } from "@/lib/mock" import type { Shop, ShopSection } from "@/lib/types" import { create } from "zustand" interface ShopState { shops: Shop[] updateShop: (shopId: string, patch: Partial>) => void updateTemplateSections: (shopId: string, sections: ShopSection[]) => void updateAnnouncement: (shopId: string, index: number, announcement: string) => void addAnnouncement: (shopId: string, announcement: string) => void } export const useShopStore = create((set) => ({ shops: mockShops, updateShop: (shopId, patch) => set((state) => ({ shops: state.shops.map((shop) => (shop.id === shopId ? { ...shop, ...patch } : shop)), })), updateTemplateSections: (shopId, sections) => set((state) => ({ shops: state.shops.map((shop) => shop.id === shopId ? { ...shop, templateConfig: { ...shop.templateConfig, sections, }, } : shop, ), })), updateAnnouncement: (shopId, index, announcement) => set((state) => ({ shops: state.shops.map((shop) => shop.id === shopId ? { ...shop, announcements: shop.announcements.map((item, currentIndex) => currentIndex === index ? announcement : item, ), } : shop, ), })), addAnnouncement: (shopId, announcement) => set((state) => ({ shops: state.shops.map((shop) => shop.id === shopId ? { ...shop, announcements: [...shop.announcements, announcement], } : shop, ), })), }))