import { StatusBadge } from "@/components/ui/badge";
import { EtaBadge } from "@/components/geo/eta-badge";
import { t } from "@/lib/i18n/de";
import type { EtaResult } from "@/lib/geo/types";
import type { SearchHit } from "@/lib/search/types";

export type VehicleRowData = SearchHit & { eta?: EtaResult };

/**
 * Eine Fahrzeug-Trefferzeile. Zeigt Name, Funkrufname, Status und — sobald ein
 * Standort gewählt wurde — die Eintreffzeit. Ohne Standort bleibt der ETA-Slot
 * offen (Hinweistext), die Liste ist dann unsortiert.
 */
export function VehicleResultRow({ hit }: { hit: VehicleRowData }) {
  return (
    <li className="flex items-center justify-between gap-4 border-b border-rand px-1 py-3 last:border-0">
      <div className="min-w-0">
        <a
          href={`/fahrzeuge/${hit.entityId}`}
          className="truncate font-medium text-navy hover:underline"
        >
          {hit.name}
        </a>
        <p className="truncate text-xs text-anthrazit/60">
          {hit.funkrufname ?? t("search.keinFunkrufname")}
        </p>
      </div>
      <div className="flex shrink-0 items-center gap-2">
        <StatusBadge status={hit.status} />
        {hit.eta ? (
          <EtaBadge eta={hit.eta} />
        ) : (
          <span className="text-xs text-anthrazit/40">
            {t("search.eintreffzeitOffen")}
          </span>
        )}
      </div>
    </li>
  );
}
