import Link from "next/link";
import { LEVEL_LABEL, LEVEL_CLASS } from "@/lib/priority-ui";

interface BilanListItem {
  id: string;
  patientFirstName: string | null;
  patientLastName: string | null;
  ageRange: string | null;
  createdAt: Date;
  priorityCount: number;
  analysis: unknown;
}

export function BilanList({
  bilans,
  hrefFor,
}: {
  bilans: BilanListItem[];
  hrefFor: (bilanId: string) => string;
}) {
  if (bilans.length === 0) {
    return <p className="text-sm text-slate-400">Aucun bilan reçu pour le moment.</p>;
  }

  return (
    <div className="divide-y divide-slate-100">
      {bilans.map((b) => {
        const analysis = b.analysis as { topPriorities?: { level: string }[] };
        const top = analysis.topPriorities ?? [];
        const level = top[0]?.level ?? "low";
        return (
          <Link
            key={b.id}
            href={hrefFor(b.id)}
            className="flex items-center justify-between py-3 text-sm hover:bg-slate-50 -mx-2 px-2 rounded-lg"
          >
            <div>
              <div className="font-semibold">
                {[b.patientFirstName, b.patientLastName].filter(Boolean).join(" ") || "Patient anonyme"}
              </div>
              <div className="text-xs text-slate-400">
                {b.ageRange ? `${b.ageRange} ans · ` : ""}
                {new Date(b.createdAt).toLocaleDateString("fr-FR")}
              </div>
            </div>
            <span className={`text-xs font-bold rounded-full px-2.5 py-1 ${LEVEL_CLASS[level]}`}>
              {LEVEL_LABEL[level]} ({b.priorityCount})
            </span>
          </Link>
        );
      })}
    </div>
  );
}
