import { create } from 'zustand' import type { Message, IotDevice } from '../types/chat' interface MoodState { mood: string intensity: number affection: number } interface ChatState { messages: Message[] isStreaming: boolean currentSessionId: string | null iotDevices: IotDevice[] inputText: string mood: MoodState | null setInput: (text: string) => void setSessionId: (id: string) => void setMessages: (msgs: Message[]) => void setMood: (m: MoodState) => void addMessage: (msg: Message) => void appendToLast: (content: string) => void setStreaming: (v: boolean) => void setIotDevices: (d: IotDevice[]) => void clearMessages: () => void } export const useChatStore = create((set, get) => ({ messages: [], isStreaming: false, currentSessionId: null, iotDevices: [], inputText: '', mood: null, setInput: (text) => set({ inputText: text }), setSessionId: (id) => set({ currentSessionId: id }), setMessages: (msgs) => set({ messages: msgs }), setMood: (m) => set({ mood: m }), setStreaming: (v) => set({ isStreaming: v }), setIotDevices: (d) => set({ iotDevices: d }), addMessage: (msg) => set((s) => ({ messages: [...s.messages, msg] })), appendToLast: (content) => { const msgs = [...get().messages] if (msgs.length > 0) { msgs[msgs.length - 1] = { ...msgs[msgs.length - 1], content: msgs[msgs.length - 1].content + content } } set({ messages: msgs }) }, clearMessages: () => set({ messages: [] }), }))