import { create } from 'zustand'; import { persist } from 'zustand/middleware'; export interface CronHistoryEntry { id: string; expression: string; label?: string; savedAt: number; } interface CronStore { expression: string; history: CronHistoryEntry[]; setExpression: (expr: string) => void; addToHistory: (expr: string, label?: string) => void; removeFromHistory: (id: string) => void; clearHistory: () => void; } export const useCronStore = create()( persist( (set) => ({ expression: '0 9 * * 1-5', history: [], setExpression: (expression) => set({ expression }), addToHistory: (expression, label) => set((state) => { const entry: CronHistoryEntry = { id: `${Date.now()}-${Math.random().toString(36).slice(2)}`, expression, label, savedAt: Date.now(), }; const filtered = state.history.filter((h) => h.expression !== expression); return { history: [entry, ...filtered].slice(0, 30) }; }), removeFromHistory: (id) => set((state) => ({ history: state.history.filter((h) => h.id !== id) })), clearHistory: () => set({ history: [] }), }), { name: 'kit-cron-v1' }, ), );