import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Sparkles, PenTool, ArrowRight } from 'lucide-react'; import Button from '../../../ui/Button/Button'; import Card from '../../../ui/Card/Card'; export interface DataSourceChoiceStepProps { onUpdate?: (data: { dataSource: 'ai-assisted' | 'manual' }) => void; onComplete?: () => void; initialData?: { dataSource?: 'ai-assisted' | 'manual'; }; } interface DataSourceOption { id: 'ai-assisted' | 'manual'; icon: React.ReactNode; title: string; description: string; benefits: string[]; idealFor: string[]; estimatedTime: string; color: string; gradient: string; badge?: string; badgeColor?: string; } export const DataSourceChoiceStep: React.FC = ({ onUpdate, onComplete, initialData, }) => { const { t } = useTranslation(); const [selectedSource, setSelectedSource] = useState<'ai-assisted' | 'manual' | null>( initialData?.dataSource || null ); const [hoveredSource, setHoveredSource] = useState(null); const dataSourceOptions: DataSourceOption[] = [ { id: 'ai-assisted', icon: , title: t('onboarding:data_source.ai_assisted.title', 'Configuración Inteligente con IA'), description: t( 'onboarding:data_source.ai_assisted.description', 'Sube tus datos de ventas históricos y nuestra IA te ayudará a configurar automáticamente tu inventario' ), benefits: [ t('onboarding:data_source.ai_assisted.benefit1', '⚡ Configuración automática de productos'), t('onboarding:data_source.ai_assisted.benefit2', '🎯 Clasificación inteligente por categorías'), t('onboarding:data_source.ai_assisted.benefit3', '💰 Análisis de costos y precios históricos'), t('onboarding:data_source.ai_assisted.benefit4', '📊 Recomendaciones basadas en patrones de venta'), ], idealFor: [ t('onboarding:data_source.ai_assisted.ideal1', 'Panaderías con historial de ventas'), t('onboarding:data_source.ai_assisted.ideal2', 'Migración desde otro sistema'), t('onboarding:data_source.ai_assisted.ideal3', 'Necesitas configurar rápido'), ], estimatedTime: t('onboarding:data_source.ai_assisted.time', '5-10 minutos'), color: 'text-purple-600', gradient: 'bg-gradient-to-br from-purple-50 to-pink-50', badge: t('onboarding:data_source.ai_assisted.badge', 'Recomendado'), badgeColor: 'bg-purple-100 text-purple-700', }, { id: 'manual', icon: , title: t('onboarding:data_source.manual.title', 'Configuración Manual Paso a Paso'), description: t( 'onboarding:data_source.manual.description', 'Configura tu panadería desde cero ingresando cada detalle manualmente' ), benefits: [ t('onboarding:data_source.manual.benefit1', '🎯 Control total sobre cada detalle'), t('onboarding:data_source.manual.benefit2', '📝 Perfecto para comenzar desde cero'), t('onboarding:data_source.manual.benefit3', '🧩 Personalización completa'), t('onboarding:data_source.manual.benefit4', '✨ Sin necesidad de datos históricos'), ], idealFor: [ t('onboarding:data_source.manual.ideal1', 'Panaderías nuevas sin historial'), t('onboarding:data_source.manual.ideal2', 'Prefieres control manual total'), t('onboarding:data_source.manual.ideal3', 'Configuración muy específica'), ], estimatedTime: t('onboarding:data_source.manual.time', '15-20 minutos'), color: 'text-blue-600', gradient: 'bg-gradient-to-br from-blue-50 to-cyan-50', }, ]; const handleSelectSource = (sourceId: 'ai-assisted' | 'manual') => { setSelectedSource(sourceId); onUpdate?.({ dataSource: sourceId }); }; const handleContinue = () => { if (selectedSource) { onComplete?.(); } }; return (
{/* Header */}

{t('onboarding:data_source.title', '¿Cómo prefieres configurar tu panadería?')}

{t( 'onboarding:data_source.subtitle', 'Elige el método que mejor se adapte a tu situación actual' )}

{/* Data Source Options */}
{dataSourceOptions.map((option) => { const isSelected = selectedSource === option.id; const isHovered = hoveredSource === option.id; return ( handleSelectSource(option.id)} onMouseEnter={() => setHoveredSource(option.id)} onMouseLeave={() => setHoveredSource(null)} > {/* Badge */} {option.badge && (
{option.badge}
)} {/* Selection Indicator */} {isSelected && (
)} {/* Gradient Background */}
{/* Content */}
{/* Icon & Title */}
{option.icon}

{option.title}

{option.description}

{/* Benefits */}

{t('onboarding:data_source.benefits_label', 'Beneficios')}

    {option.benefits.map((benefit, index) => (
  • {benefit}
  • ))}
{/* Ideal For */}

{t('onboarding:data_source.ideal_for_label', 'Ideal para')}

    {option.idealFor.map((item, index) => (
  • {item}
  • ))}
{/* Estimated Time */}
⏱️ {t('onboarding:data_source.estimated_time_label', 'Tiempo estimado')}: {option.estimatedTime}
); })}
{/* Additional Info Based on Selection */} {selectedSource === 'ai-assisted' && (

{t('onboarding:data_source.ai_info_title', '¿Qué necesitas para la configuración con IA?')}

  • {t('onboarding:data_source.ai_info1', 'Archivo de ventas (CSV, Excel o JSON)')}
  • {t('onboarding:data_source.ai_info2', 'Datos de al menos 1-3 meses (recomendado)')}
  • {t('onboarding:data_source.ai_info3', 'Información de productos, precios y cantidades')}
)} {selectedSource === 'manual' && (

{t('onboarding:data_source.manual_info_title', '¿Qué configuraremos paso a paso?')}

  • {t('onboarding:data_source.manual_info1', 'Proveedores y sus datos de contacto')}
  • {t('onboarding:data_source.manual_info2', 'Inventario de ingredientes y productos')}
  • {t('onboarding:data_source.manual_info3', 'Recetas o procesos de producción')}
  • {t('onboarding:data_source.manual_info4', 'Estándares de calidad y equipo (opcional)')}
)} {/* Continue Button */}
{/* Help Text */}

{t( 'onboarding:data_source.help_text', '💡 Puedes cambiar entre métodos en cualquier momento durante la configuración' )}

); }; export default DataSourceChoiceStep;