import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Factory, DollarSign, Award, Settings, Brain, Lock, BarChart3, TrendingUp, Target, Zap } from 'lucide-react'; import { PageHeader } from '../../../components/layout'; import { Card, StatsGrid, Button, Tabs } from '../../../components/ui'; import { useSubscription } from '../../../api/hooks/subscription'; import { useCurrentTenant } from '../../../stores/tenant.store'; import { useProductionDashboard } from '../../../api/hooks/production'; // Import all analytics widgets import { TodaysScheduleSummaryWidget, LiveBatchTrackerWidget, OnTimeCompletionWidget, CapacityUtilizationWidget, CostPerUnitWidget, WasteDefectTrackerWidget, YieldPerformanceWidget, QualityScoreTrendsWidget, TopDefectTypesWidget, EquipmentStatusWidget, MaintenanceScheduleWidget, EquipmentEfficiencyWidget, AIInsightsWidget, PredictiveMaintenanceWidget } from '../../../components/domain/production/analytics/widgets'; const ProductionAnalyticsPage: React.FC = () => { const { t } = useTranslation('production'); const { canAccessAnalytics, subscriptionInfo } = useSubscription(); const currentTenant = useCurrentTenant(); const tenantId = currentTenant?.id || ''; const [activeTab, setActiveTab] = useState('overview'); const { data: dashboard, isLoading: dashboardLoading } = useProductionDashboard(tenantId); // Check if user has access to advanced analytics (professional/enterprise) const hasAdvancedAccess = canAccessAnalytics('advanced'); // Show loading state while subscription data is being fetched if (subscriptionInfo.loading) { return (

{t('common.loading') || 'Cargando información de suscripción...'}

); } // If user doesn't have access to advanced analytics, show upgrade message if (!hasAdvancedAccess) { return (

{t('subscription.exclusive_professional_enterprise')}

{t('subscription.advanced_production_analytics_description')}

); } // Tab configuration const tabs = [ { id: 'overview', label: t('tabs.overview'), icon: BarChart3 }, { id: 'operations', label: t('tabs.bakery_operations'), icon: Factory }, { id: 'cost-efficiency', label: t('tabs.cost_efficiency'), icon: DollarSign }, { id: 'quality', label: t('tabs.quality_assurance'), icon: Award }, { id: 'equipment', label: t('tabs.equipment_maintenance'), icon: Settings }, { id: 'ai-insights', label: t('tabs.ai_insights'), icon: Brain } ]; return (
} /> {/* Key Performance Indicators */} {/* Analytics Tabs */} ({ id: tab.id, label: tab.label }))} activeTab={activeTab} onTabChange={setActiveTab} /> {/* Tab Content */}
{/* Overview Tab - Mixed Dashboard */} {activeTab === 'overview' && (
)} {/* Bakery Operations Tab */} {activeTab === 'operations' && (
)} {/* Cost & Efficiency Tab */} {activeTab === 'cost-efficiency' && (
)} {/* Quality Assurance Tab */} {activeTab === 'quality' && (
)} {/* Equipment & Maintenance Tab */} {activeTab === 'equipment' && (
)} {/* AI Insights Tab */} {activeTab === 'ai-insights' && (
)}
{/* Mobile Optimization Notice */}

{t('mobile.optimized_experience')}

{t('mobile.swipe_scroll_interact')}

); }; export default ProductionAnalyticsPage;