import { create } from 'zustand' import type { Message } from '../types' interface InterviewState { sessionId: string | null topicId: string | null messages: Message[] turnCount: number maxTurns: number status: 'idle' | 'loading' | 'waiting' | 'finished' } interface InterviewActions { startSession: (sessionId: string, topicId: string, firstMessage: string) => void addMessage: (message: Message) => void setTurnCount: (count: number) => void setStatus: (status: InterviewState['status']) => void reset: () => void } const initialState: InterviewState = { sessionId: null, topicId: null, messages: [], turnCount: 0, maxTurns: 5, status: 'idle', } export const useInterviewStore = create((set) => ({ ...initialState, startSession: (sessionId, topicId, firstMessage) => set({ sessionId, topicId, messages: [{ role: 'ai', content: firstMessage }], turnCount: 0, status: 'waiting', }), addMessage: (message) => set((state) => ({ messages: [...state.messages, message] })), setTurnCount: (count) => set({ turnCount: count }), setStatus: (status) => set({ status }), reset: () => set(initialState), }))