feat: MVP Fase 0 — Process Cost Platform v0.1.0

Plataforma completa de análisis de costos operativos basada en BPMN 2.0.

Funcionalidades incluidas:
- Import de archivos BPMN 2.0 por drag & drop + 3 procesos de ejemplo
- Visualización read-only del diagrama (bpmn-js)
- Configuración de actividades (costo, tiempo, recursos asignados)
- CRUD de recursos (rol, persona, sistema, equipo, insumo)
- Configuración global (moneda, overhead %, nombre, cliente)
- Motor de simulación determinístico agregado con propagación de gateways XOR/AND
- Reporte visual con mapa de calor en dos modos (relativo/absoluto)
- Gráficos: KPIs, top actividades, composición, costo por recurso
- Export PDF (jsPDF + html2canvas) y CSV (papaparse)
- Persistencia en IndexedDB (Dexie)
- 268 tests unitarios/integración + 6 E2E con Playwright
- Deploy: https://process-cost-platform.pages.dev

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 01:58:40 -03:00
commit bed161c92a
97 changed files with 19638 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import { create } from 'zustand'
import type { SimulationResult } from '@/domain/types'
interface SimulationState {
result: SimulationResult | null
isRunning: boolean
error: string | null
selectedActivityId: string | null
setResult: (result: SimulationResult) => void
setRunning: (running: boolean) => void
setError: (error: string | null) => void
selectActivity: (bpmnElementId: string | null) => void
reset: () => void
}
export const useSimulationStore = create<SimulationState>((set) => ({
result: null,
isRunning: false,
error: null,
selectedActivityId: null,
setResult: (result) => set({ result, error: null }),
setRunning: (isRunning) => set({ isRunning }),
setError: (error) => set({ error }),
selectActivity: (selectedActivityId) => set({ selectedActivityId }),
reset: () => set({ result: null, isRunning: false, error: null, selectedActivityId: null }),
}))