"use client";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import {
Users,
MessageSquare,
CreditCard,
TrendingUp,
TrendingDown,
Activity,
Euro,
} from "lucide-react";
import { cn } from "@/lib/utils";
import { convertCreditsToEuros } from "@/lib/utils/currency";
interface MetricCardProps {
title: string;
value: string;
change?: {
value: number;
type: "increase" | "decrease";
};
icon: React.ComponentType<{ className?: string }>;
description?: string;
}
function MetricCard({
title,
value,
change,
icon: Icon,
description,
}: MetricCardProps) {
return (
{title}
{value}
{description && (
{description}
)}
{change && (
{change.type === "increase" ? (
) : (
)}
{change.type === "increase" ? "+" : "-"}
{change.value}%
par rapport au mois dernier
)}
);
}
interface MetricCardsProps {
metrics: {
totalUsers: number;
activeUsers: number;
totalConversations: number;
totalMessages: number;
totalTokensConsumed: number;
totalCreditsUsed: number;
};
}
export function MetricCards({ metrics }: MetricCardsProps) {
// Conversion des crédits en euros
const creditsConversion = convertCreditsToEuros(metrics.totalCreditsUsed);
return (
Crédits totaux
{metrics.totalCreditsUsed.toLocaleString()}
crédits disponibles
{/* Conversion en euros */}
Valeur en EUR:
{creditsConversion.formatted.eur}
USD: {creditsConversion.formatted.usd}
Taux: 1 USD = 0.92 EUR
+23%
par rapport au mois dernier
);
}