"use client" import { useAuth } from "@/lib/auth-context" import { DashboardLayout } from "@/components/dashboard-layout" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Users, FileText, Building2, Calendar } from "lucide-react" import Link from "next/link" import { useApi } from "@/lib/use-api" import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, PieChart, Pie, Cell, Legend } from "recharts" const COLORS = ["#0088FE", "#00C49F", "#FFBB28", "#FF8042", "#8884d8", "#82ca9d"] export default function DashboardPage() { const { user } = useAuth() const isAdmin = user?.role === "admin" const { data: dashboardData, isLoading } = useApi("/dashboard/stats") const currentMonth = new Date().toLocaleDateString("es-AR", { month: "long", year: "numeric" }) const stats = [ { title: "Recetas Emitidas Este Mes", value: isLoading ? "-" : dashboardData?.stats?.recetas_mes || 0, description: `Total en ${currentMonth}`, icon: FileText, show: true, }, { title: "Productores Activos", value: isLoading ? "-" : dashboardData?.stats?.productores_activos || 0, description: "Con recetas vigentes", icon: Users, show: true, }, { title: "Establecimientos", value: isLoading ? "-" : dashboardData?.stats?.establecimientos_total || 0, description: "Campos registrados", icon: Building2, show: true, }, { title: "Este Mes", value: isLoading ? "-" : `${dashboardData?.stats?.variacion_recetas > 0 ? "+" : ""}${dashboardData?.stats?.variacion_recetas}%`, description: "vs mes anterior", icon: Calendar, show: isAdmin, }, ] const visibleStats = stats.filter((stat) => stat.show) const recentRecipes = dashboardData?.latest_recetas || [] return (

Bienvenido, {user?.name}

{isAdmin ? "Panel de administración completo de AgroRecetas" : "Panel de gestión de productores y recetas agrícolas"}

{visibleStats.map((stat) => { const Icon = stat.icon return ( {stat.title}
{isLoading ?
: stat.value}

{stat.description}

) })}
{/* Charts Section */}
Superficie Sembrada por Cultivo Total de hectáreas (Labor: Siembra)
{isLoading ? (
Cargando...
) : !dashboardData?.charts?.superficie_por_cultivo?.length ? (
No hay datos de siembra registrados
) : ( `${name}: ${value} ha`} outerRadius={80} fill="#8884d8" dataKey="value" > {dashboardData.charts.superficie_por_cultivo.map((entry: any, index: number) => ( ))} `${value} ha`} labelStyle={{ color: '#000', fontWeight: 'bold' }} itemStyle={{ color: '#000' }} /> )}
Evolución de Recetas Cantidad de recetas por fecha
{isLoading ? (
Cargando...
) : !dashboardData?.charts?.recetas_por_fecha?.length ? (
No hay recetas registradas
) : ( )}
Últimas Recetas Recetas recientes
{isLoading ? (
Cargando recetas...
) : recentRecipes.length === 0 ? (
No hay recetas recientes
) : ( recentRecipes.map((receta: any) => (

{receta.id}

{receta.productor} - {receta.establecimiento}

{receta.fecha}

)) )}
Ver todas las recetas →
) }