import { createSignal } from 'solid-js'; import { createStore } from 'solid-js/store'; import type { ExtractedItem } from '../utils/csv-parser'; import type { TemplateItem, Scope, SubScope, EstimateItem, JobInfo } from '../types'; // Raw CSV Data const [activeItems, setActiveItems] = createSignal([]); const [activeIgnoredLines, setActiveIgnoredLines] = createSignal([]); // Estimate Metadata const [activeEstimateId, setActiveEstimateId] = createSignal(null); const [activeEstimateName, setActiveEstimateName] = createSignal(''); const [activeHistory, setActiveHistory] = createSignal([]); const [activeLatestSnapshot, setActiveLatestSnapshot] = createSignal(null); const [isLatestVersion, setIsLatestVersion] = createSignal(true); // Estimate Builder State const [scopes, setScopes] = createStore([]); const [subScopes, setSubScopes] = createStore([]); const [estimateItems, setEstimateItems] = createStore([]); const [clientInfo, setClientInfo] = createStore({ name: '', address: '', phone: '', fax: '' }); const [jobInfo, setJobInfo] = createStore({ number: '', name: '', address: '', workOrder: '' }); const [generalEstimateNotes, setGeneralEstimateNotes] = createSignal(''); const [generalPreNotes, setGeneralPreNotes] = createSignal(''); // Template Creator State const [activeTemplateName, setActiveTemplateName] = createSignal(''); const [activeTemplateItems, setActiveTemplateItems] = createStore([]); const [activeTemplateId, setActiveTemplateId] = createSignal(null); export const appStore = { // Raw CSV Extraction items: activeItems, setItems: setActiveItems, ignoredLines: activeIgnoredLines, setIgnoredLines: setActiveIgnoredLines, // Estimate Meta estimateId: activeEstimateId, setEstimateId: setActiveEstimateId, estimateName: activeEstimateName, setEstimateName: setActiveEstimateName, history: activeHistory, setHistory: setActiveHistory, latestSnapshot: activeLatestSnapshot, setLatestSnapshot: setActiveLatestSnapshot, isLatestVersion: isLatestVersion, setIsLatestVersion: setIsLatestVersion, // Estimate Builder scopes, setScopes, subScopes, setSubScopes, estimateItems, setEstimateItems, clientInfo, setClientInfo, jobInfo, setJobInfo, generalEstimateNotes, setGeneralEstimateNotes, generalPreNotes, setGeneralPreNotes, // Templates templateId: activeTemplateId, setTemplateId: setActiveTemplateId, templateName: activeTemplateName, setTemplateName: setActiveTemplateName, templateItems: activeTemplateItems, setTemplateItems: setActiveTemplateItems };