import React, { useState } from 'react'; import { WizardStep, WizardStepProps } from '../../../ui/WizardModal/WizardModal'; import { Package, Leaf, Cookie, CheckCircle2 } from 'lucide-react'; interface WizardDataProps extends WizardStepProps { data: Record; onDataChange: (data: Record) => void; } // Step 1: Type Selection const TypeSelectionStep: React.FC = ({ data, onDataChange, onNext }) => { const [selectedType, setSelectedType] = useState<'ingredient' | 'finished_product'>( data.inventoryType || 'ingredient' ); const handleContinue = () => { onDataChange({ ...data, inventoryType: selectedType }); onNext(); }; return (

¿Qué tipo de inventario agregarás?

); }; // Step 2: Core Details const CoreDetailsStep: React.FC = ({ data, onDataChange, onNext }) => { const isIngredient = data.inventoryType === 'ingredient'; const [formData, setFormData] = useState({ name: data.name || '', category: data.category || '', unit: data.unit || '', storage: data.storage || 'dry', reorderPoint: data.reorderPoint || '', shelfLife: data.shelfLife || '', }); const handleSubmit = () => { onDataChange({ ...data, ...formData }); onNext(); }; return (

Detalles del {isIngredient ? 'Ingrediente' : 'Producto'}

setFormData({ ...formData, name: e.target.value })} placeholder={isIngredient ? "Ej: Harina de trigo" : "Ej: Baguette tradicional"} className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" />
setFormData({ ...formData, reorderPoint: e.target.value })} placeholder="Cantidad mínima" className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" min="0" />
); }; // Step 3: Initial Lot (Optional) const InitialLotStep: React.FC = ({ data, onDataChange, onComplete }) => { const [addLot, setAddLot] = useState(false); const [lotData, setLotData] = useState({ quantity: '', batchNumber: '', expiryDate: '', costPerUnit: '', }); const handleComplete = () => { if (addLot) { onDataChange({ ...data, initialLot: lotData }); } // Here you would save to API console.log('Saving inventory:', data); onComplete(); }; return (

Inventario Inicial (Opcional)

Agrega un lote inicial si ya tienes stock

{addLot && (
setLotData({ ...lotData, quantity: e.target.value })} placeholder="100" className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" min="0" />
setLotData({ ...lotData, batchNumber: e.target.value })} placeholder="LOT-2025-001" className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" />
setLotData({ ...lotData, expiryDate: e.target.value })} className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" />
setLotData({ ...lotData, costPerUnit: e.target.value })} placeholder="1.50" className="w-full px-3 py-2 border border-[var(--border-secondary)] rounded-lg focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)]" min="0" step="0.01" />
)}
); }; export const InventoryWizardSteps = ( data: Record, setData: (data: Record) => void ): WizardStep[] => [ { id: 'type-selection', title: 'Tipo', description: 'Ingrediente o producto terminado', component: (props) => , }, { id: 'core-details', title: 'Detalles', description: 'Información básica', component: (props) => , }, { id: 'initial-lot', title: 'Lote Inicial', description: 'Inventario de arranque (opcional)', component: (props) => , isOptional: true, }, ];