atharva9/meridian-api
0
1import { create } from 'zustand';2import { createJSONStorage, persist } from 'zustand/middleware';3 4type ModelConfigState = {5 step: number;6 target: string;7 modelType: 'linear' | 'ridge' | 'bayesian';8 alpha: number;9 adstock: Record<string, { lambda: number; max_lag: number }>;10 saturationMethod: 'hill' | 'log';11 saturationParams: Record<string, { K?: number; n?: number; scale?: number }>;12 set: (patch: Partial<ModelConfigState>) => void;13};14 15export const useModelConfigStore = create<ModelConfigState>()(16 persist(17 (set) => ({18 step: 1,19 target: '',20 modelType: 'linear',21 alpha: 1,22 adstock: {},23 saturationMethod: 'hill',24 saturationParams: {},25 set: (patch) => set((s) => ({ ...s, ...patch })),26 }),27 {28 name: 'meridian-model-config',29 storage: createJSONStorage(() => localStorage),30 },31 ),32);33 