import React, { useState } from 'react'; import { WizardStep, WizardStepProps } from '../../../ui/WizardModal/WizardModal'; import { Wrench, CheckCircle2, Loader2 } from 'lucide-react'; import { useTenant } from '../../../../stores/tenant.store'; import { equipmentService } from '../../../../api/services/equipment'; import { showToast } from '../../../../utils/toast'; interface WizardDataProps extends WizardStepProps { data: Record; onDataChange: (data: Record) => void; } const EquipmentDetailsStep: React.FC = ({ data, onDataChange, onComplete }) => { const { currentTenant } = useTenant(); const [equipmentData, setEquipmentData] = useState({ type: data.type || 'oven', brand: data.brand || '', model: data.model || '', location: data.location || '', purchaseDate: data.purchaseDate || '', status: data.status || 'active', }); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleSave = async () => { if (!currentTenant?.id) { setError('No se pudo obtener información del tenant'); return; } setLoading(true); setError(null); try { const equipmentCreateData: any = { name: `${equipmentData.type} - ${equipmentData.brand || 'Sin marca'}`, type: equipmentData.type, model: equipmentData.brand, serialNumber: equipmentData.model, location: equipmentData.location, status: equipmentData.status, installDate: equipmentData.purchaseDate || new Date().toISOString().split('T')[0], lastMaintenance: new Date().toISOString().split('T')[0], nextMaintenance: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], maintenanceInterval: 30, is_active: true }; await equipmentService.createEquipment(currentTenant.id, equipmentCreateData); showToast.success('Equipo creado exitosamente'); onDataChange({ ...data, ...equipmentData }); onComplete(); } catch (err: any) { console.error('Error creating equipment:', err); const errorMessage = err.response?.data?.detail || 'Error al crear el equipo'; setError(errorMessage); showToast.error(errorMessage); } finally { setLoading(false); } }; return (

Equipo de Panadería

{error && (
{error}
)}
setEquipmentData({ ...equipmentData, brand: e.target.value })} placeholder="Ej: Rational SCC 101" 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)]" />
setEquipmentData({ ...equipmentData, location: e.target.value })} placeholder="Ej: Cocina principal" 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)]" />
setEquipmentData({ ...equipmentData, purchaseDate: 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)]" />
); }; export const EquipmentWizardSteps = (data: Record, setData: (data: Record) => void): WizardStep[] => [ { id: 'equipment-details', title: 'Detalles del Equipo', description: 'Tipo, modelo, ubicación', component: (props) => }, ];