import { Box, CircularProgress, Alert, Paper, Typography } from '@mui/material';
import { PiCow } from "react-icons/pi"; // Un icono divertido para "cabezas"
import ScaleIcon from '@mui/icons-material/Scale'; // Para kilos
import type { CotizacionGanado } from '../models/mercadoModels';
import { useApiData } from '../hooks/useApiData';
import { formatCurrency, formatInteger } from '../utils/formatters';
const AgroCard = ({ categoria }: { categoria: CotizacionGanado }) => {
    return (
        
            
                {categoria.categoria}
            
            
                Precio Máximo:
                ${formatCurrency(categoria.maximo)}
            
            
                Precio Mínimo:
                ${formatCurrency(categoria.minimo)}
            
            
                Precio Mediano:
                ${formatCurrency(categoria.mediano)}
            
            
            
                
                    
                    {formatInteger(categoria.cabezas)}
                    Cabezas
                
                 
                    
                    {formatInteger(categoria.kilosTotales)}
                    Kilos
                
            
        
    );
};
// Este widget agrupa los datos por categoría para un resumen más limpio.
export const MercadoAgroCardWidget = () => {
    const { data, loading, error } = useApiData('/mercados/agroganadero');
    if (loading) {
        return ;
    }
    if (error) {
        return {error};
    }
    if (!data || data.length === 0) {
        return No hay datos del mercado agroganadero disponibles.;
    }
    // Agrupamos y sumamos los datos por categoría principal
    const resumenPorCategoria = data.reduce((acc, item) => {
        if (!acc[item.categoria]) {
            acc[item.categoria] = { ...item };
        } else {
            acc[item.categoria].cabezas += item.cabezas;
            acc[item.categoria].kilosTotales += item.kilosTotales;
            acc[item.categoria].importeTotal += item.importeTotal;
            acc[item.categoria].maximo = Math.max(acc[item.categoria].maximo, item.maximo);
            acc[item.categoria].minimo = Math.min(acc[item.categoria].minimo, item.minimo);
        }
        return acc;
    }, {} as Record);
    return (
        
            {Object.values(resumenPorCategoria).map(categoria => (
                
            ))}
        
    );
};