import React, { useState, useEffect } from 'react'; import { CheckCircle, Star, Rocket, Gift, Download, Share2, ArrowRight, Calendar } from 'lucide-react'; import { Button, Card, Badge } from '../../../ui'; import { OnboardingStepProps } from '../OnboardingWizard'; interface CompletionStats { totalProducts: number; inventoryItems: number; suppliersConfigured: number; mlModelAccuracy: number; estimatedTimeSaved: string; completionScore: number; } export const CompletionStep: React.FC = ({ data, onDataChange, onNext, onPrevious, isFirstStep, isLastStep }) => { const [showConfetti, setShowConfetti] = useState(false); const [completionStats, setCompletionStats] = useState(null); useEffect(() => { // Show confetti animation setShowConfetti(true); const timer = setTimeout(() => setShowConfetti(false), 3000); // Calculate completion stats const stats: CompletionStats = { totalProducts: data.detectedProducts?.filter((p: any) => p.status === 'approved').length || 0, inventoryItems: data.inventoryItems?.length || 0, suppliersConfigured: data.suppliers?.length || 0, mlModelAccuracy: data.trainingMetrics?.accuracy * 100 || 0, estimatedTimeSaved: '15-20 horas', completionScore: calculateCompletionScore() }; setCompletionStats(stats); // Update parent data onDataChange({ ...data, completionStats: stats, onboardingCompleted: true, completedAt: new Date().toISOString() }); return () => clearTimeout(timer); }, []); const calculateCompletionScore = () => { let score = 0; // Base score for completing setup if (data.bakery?.tenant_id) score += 20; // Data upload and analysis if (data.validation?.is_valid) score += 15; if (data.analysisStatus === 'completed') score += 15; // Product review const approvedProducts = data.detectedProducts?.filter((p: any) => p.status === 'approved').length || 0; if (approvedProducts > 0) score += 20; // Inventory setup if (data.inventoryItems?.length > 0) score += 15; // ML training if (data.trainingStatus === 'completed') score += 15; return Math.min(score, 100); }; const generateCertificate = () => { // Mock certificate generation const certificateData = { bakeryName: data.bakery?.name || 'Tu Panadería', completionDate: new Date().toLocaleDateString('es-ES'), score: completionStats?.completionScore || 0, features: [ 'Configuración de Tenant Multi-inquilino', 'Análisis de Datos con IA', 'Gestión de Inventario Inteligente', 'Entrenamiento de Modelo ML', 'Integración de Proveedores' ] }; console.log('Generating certificate:', certificateData); alert(`🎓 Certificado generado para ${certificateData.bakeryName}\nPuntuación: ${certificateData.score}/100`); }; const scheduleDemo = () => { // Mock demo scheduling alert('📅 Te contactaremos pronto para agendar una demostración personalizada de las funcionalidades avanzadas.'); }; const shareSuccess = () => { // Mock social sharing const shareText = `¡Acabo de completar la configuración de mi panadería inteligente con IA! 🥖🤖 Puntuación: ${completionStats?.completionScore}/100`; navigator.clipboard.writeText(shareText); alert('✅ Texto copiado al portapapeles. ¡Compártelo en tus redes sociales!'); }; const quickStartActions = [ { id: 'dashboard', title: 'Ir al Dashboard', description: 'Explora tu panel de control personalizado', icon: , action: () => onNext(), primary: true }, { id: 'inventory', title: 'Gestionar Inventario', description: 'Revisa y actualiza tu stock actual', icon: , action: () => console.log('Navigate to inventory'), primary: false }, { id: 'predictions', title: 'Ver Predicciones IA', description: 'Consulta las predicciones de demanda', icon: , action: () => console.log('Navigate to predictions'), primary: false } ]; const achievementBadges = [ { title: 'Pionero IA', description: 'Primera configuración con Machine Learning', icon: '🤖', earned: data.trainingStatus === 'completed' }, { title: 'Organizador', description: 'Inventario completamente configurado', icon: '📦', earned: (data.inventoryItems?.length || 0) >= 5 }, { title: 'Analista', description: 'Análisis de datos exitoso', icon: '📊', earned: data.analysisStatus === 'completed' }, { title: 'Perfeccionista', description: 'Puntuación de configuración 90+', icon: '⭐', earned: (completionStats?.completionScore || 0) >= 90 } ]; return (
{/* Confetti Effect */} {showConfetti && (
🎉
{/* Additional confetti elements could be added here */}
)} {/* Celebration Header */}

¡Felicidades! 🎉

{data.bakery?.name} está listo para funcionar

Has completado exitosamente la configuración inicial de tu panadería inteligente. Tu sistema está optimizado con IA y listo para transformar la gestión de tu negocio.

{/* Completion Stats */} {completionStats && (
{completionStats.completionScore} /100

Puntuación de Configuración

¡Excelente trabajo! Has superado el promedio de la industria (78/100)

{completionStats.totalProducts}

Productos

{completionStats.inventoryItems}

Inventario

{completionStats.suppliersConfigured}

Proveedores

{completionStats.mlModelAccuracy.toFixed(1)}%

Precisión IA

{completionStats.estimatedTimeSaved}

Tiempo Ahorrado

)} {/* Achievement Badges */}

🏆 Logros Desbloqueados

{achievementBadges.map((badge, index) => (
{badge.icon}

{badge.title}

{badge.description}

{badge.earned && (
Conseguido
)}
))}
{/* Quick Actions */}

🚀 Próximos Pasos

{quickStartActions.map((action) => ( ))}
{/* Additional Actions */}

Certificado

Descarga tu certificado de configuración

Demo Personal

Agenda una demostración 1-a-1

Compartir Éxito

Comparte tu logro en redes sociales

{/* Summary & Thanks */}

🙏 ¡Gracias por confiar en nuestra plataforma!

Tu panadería ahora cuenta con tecnología de vanguardia para:

Predicciones de demanda con IA
Gestión inteligente de inventario
Optimización de compras
Alertas automáticas de restock
Análisis de tendencias de venta
Control multi-tenant seguro

💡 Consejo: Explora el dashboard para descubrir todas las funcionalidades disponibles. El sistema aprenderá de tus patrones y mejorará sus recomendaciones con el tiempo.

); };