import React, { useState } from 'react'; import { BarChart3, TrendingUp, Target, AlertCircle, CheckCircle, Eye, Download } from 'lucide-react'; import { Button, Card, Badge } from '../../../../components/ui'; import { PageHeader } from '../../../../components/layout'; const OnboardingAnalysisPage: React.FC = () => { const [selectedPeriod, setSelectedPeriod] = useState('30days'); const analysisData = { onboardingScore: 87, completionRate: 92, averageTime: '4.2 días', stepsCompleted: 15, totalSteps: 16, dataQuality: 94 }; const stepProgress = [ { step: 'Información Básica', completed: true, quality: 95, timeSpent: '25 min' }, { step: 'Configuración de Menú', completed: true, quality: 88, timeSpent: '1.2 horas' }, { step: 'Datos de Inventario', completed: true, quality: 92, timeSpent: '45 min' }, { step: 'Configuración de Horarios', completed: true, quality: 100, timeSpent: '15 min' }, { step: 'Integración de Pagos', completed: true, quality: 85, timeSpent: '30 min' }, { step: 'Carga de Productos', completed: true, quality: 90, timeSpent: '2.1 horas' }, { step: 'Configuración de Personal', completed: true, quality: 87, timeSpent: '40 min' }, { step: 'Pruebas del Sistema', completed: false, quality: 0, timeSpent: '-' } ]; const insights = [ { type: 'success', title: 'Excelente Progreso', description: 'Has completado el 94% del proceso de configuración inicial', recommendation: 'Solo faltan las pruebas finales del sistema para completar tu configuración', impact: 'high' }, { type: 'info', title: 'Calidad de Datos Alta', description: 'Tus datos tienen una calidad promedio del 94%', recommendation: 'Considera revisar la configuración de pagos para mejorar la puntuación', impact: 'medium' }, { type: 'warning', title: 'Paso Pendiente', description: 'Las pruebas del sistema están pendientes', recommendation: 'Programa las pruebas para validar la configuración completa', impact: 'high' } ]; const dataAnalysis = [ { category: 'Información del Negocio', completeness: 100, accuracy: 95, items: 12, issues: 0, details: 'Toda la información básica está completa y verificada' }, { category: 'Menú y Productos', completeness: 85, accuracy: 88, items: 45, issues: 3, details: '3 productos sin precios definidos' }, { category: 'Inventario Inicial', completeness: 92, accuracy: 90, items: 28, issues: 2, details: '2 ingredientes sin stock mínimo definido' }, { category: 'Configuración Operativa', completeness: 100, accuracy: 100, items: 8, issues: 0, details: 'Horarios y políticas completamente configuradas' } ]; const benchmarkComparison = { industry: { onboardingScore: 74, completionRate: 78, averageTime: '6.8 días' }, yourData: { onboardingScore: 87, completionRate: 92, averageTime: '4.2 días' } }; const recommendations = [ { priority: 'high', title: 'Completar Pruebas del Sistema', description: 'Realizar pruebas integrales para validar toda la configuración', estimatedTime: '30 minutos', impact: 'Garantiza funcionamiento óptimo del sistema' }, { priority: 'medium', title: 'Revisar Precios de Productos', description: 'Definir precios para los 3 productos pendientes', estimatedTime: '15 minutos', impact: 'Permitirá generar ventas de todos los productos' }, { priority: 'medium', title: 'Configurar Stocks Mínimos', description: 'Establecer niveles mínimos para 2 ingredientes', estimatedTime: '10 minutos', impact: 'Mejorará el control de inventario automático' }, { priority: 'low', title: 'Optimizar Configuración de Pagos', description: 'Revisar métodos de pago y comisiones', estimatedTime: '20 minutos', impact: 'Puede reducir costos de transacción' } ]; const getInsightIcon = (type: string) => { const iconProps = { className: "w-5 h-5" }; switch (type) { case 'success': return ; case 'warning': return ; case 'info': return ; default: return ; } }; const getInsightColor = (type: string) => { switch (type) { case 'success': return 'bg-green-50 border-green-200'; case 'warning': return 'bg-yellow-50 border-yellow-200'; case 'info': return 'bg-blue-50 border-blue-200'; default: return 'bg-gray-50 border-gray-200'; } }; const getPriorityColor = (priority: string) => { switch (priority) { case 'high': return 'red'; case 'medium': return 'yellow'; case 'low': return 'green'; default: return 'gray'; } }; const getCompletionColor = (percentage: number) => { if (percentage >= 95) return 'text-green-600'; if (percentage >= 80) return 'text-yellow-600'; return 'text-red-600'; }; return (
} /> {/* Overall Score */}
{analysisData.onboardingScore}

Puntuación General

{analysisData.completionRate}%

Completado

{analysisData.averageTime}

Tiempo Promedio

{analysisData.stepsCompleted}/{analysisData.totalSteps}

Pasos Completados

{analysisData.dataQuality}%

Calidad de Datos

Por encima del promedio

{/* Progress Analysis */}

Progreso por Pasos

{stepProgress.map((step, index) => (
{step.completed ? ( ) : ( {index + 1} )}

{step.step}

Tiempo: {step.timeSpent}

{step.quality}%

Calidad

))}

Comparación con la Industria

Puntuación de Configuración
{benchmarkComparison.yourData.onboardingScore} vs {benchmarkComparison.industry.onboardingScore}
Tasa de Completado
{benchmarkComparison.yourData.completionRate}% vs {benchmarkComparison.industry.completionRate}%
Tiempo de Configuración
{benchmarkComparison.yourData.averageTime} vs {benchmarkComparison.industry.averageTime}

38% más rápido que el promedio de la industria

{/* Insights */}

Insights y Recomendaciones

{insights.map((insight, index) => (
{getInsightIcon(insight.type)}

{insight.title}

{insight.description}

Recomendación: {insight.recommendation}

{insight.impact === 'high' ? 'Alto' : insight.impact === 'medium' ? 'Medio' : 'Bajo'} Impacto
))}
{/* Data Analysis */}

Análisis de Calidad de Datos

{dataAnalysis.map((category, index) => (

{category.category}

{category.items} elementos
Completitud {category.completeness}%
Precisión {category.accuracy}%
{category.issues > 0 && (
{category.issues} problema{category.issues > 1 ? 's' : ''} detectado{category.issues > 1 ? 's' : ''}
)}

{category.details}

))}
{/* Action Items */}

Elementos de Acción

{recommendations.map((rec, index) => (
{rec.priority === 'high' ? 'Alta' : rec.priority === 'medium' ? 'Media' : 'Baja'}

{rec.title}

{rec.description}

Tiempo estimado: {rec.estimatedTime} Impacto: {rec.impact}
))}
); }; export default OnboardingAnalysisPage;