import type { UptimeMessage } from "@/services/types";
import { Progressbar } from "@/components/Progressbar";
import { formatRelativeTime, isAgentOnline } from "@/services/utils";
type AgentOverviewCardProps = {
    count: number;
    title: string;
    icon: {
        ref: React.ReactNode;
        color: string;
        bgColor: string;
    };
};
export function AgentOverviewCard({
    props,
}: {
    props: AgentOverviewCardProps;
}) {
    return (
        
            
                
                    
                        {props.title}
                    
                    
                        {props.count}
                    
                 
                
                    {props.icon.ref}
                
             
         
    );
}
type AgentCardProps = {
    data: UptimeMessage;
    onClick: () => void;
};
export function AgentCard({ data, onClick }: AgentCardProps) {
    const status = isAgentOnline(data)
        ? {
              name: "online",
              color: "bg-green-500",
              textColor: "text-green-400",
              borderColor: "border-green-500/20",
              bgColor: "bg-green-500/10",
          }
        : {
              name: "offline",
              color: "bg-red-500",
              textColor: "text-red-400",
              borderColor: "border-red-500/20",
              bgColor: "bg-red-500/10",
          };
    return (
         onClick()}
            className="bg-[#111111] border border-[#262626] rounded-lg p-6 hover:bg-[#151515] transition-all cursor-pointer group"
        >
            
                
                    
                        {status.name.toUpperCase()}
                    
                    
                        {data.agent}
                    
                 
                
                    
                        
                        
                            {formatRelativeTime(data.last_seen)}
                            {data.uptime.toFixed(2)}%