import Link from "next/link"; import { redirect } from "next/navigation"; import { Truck } from "lucide-react"; import { aktuelleSitzung } from "@/lib/auth"; import { fuerOrganisation } from "@/lib/db"; import { alsDatum } from "@/lib/utils"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { FristAnzeige, NichtsGefunden } from "@/components/stammdaten/anzeige"; export const metadata = { title: "Fahrzeuge" }; const ART_TEXT: Record = { LOESCHFAHRZEUG: "Löschfahrzeug", DREHLEITER: "Drehleiter", RUESTWAGEN: "Rüstwagen", GERAETEWAGEN: "Gerätewagen", MANNSCHAFTSTRANSPORT: "Mannschaftstransport", EINSATZLEITWAGEN: "Einsatzleitwagen", WECHSELLADER: "Wechsellader", ANHAENGER: "Anhänger", SONSTIGES: "Sonstiges", }; /** * Fahrzeugübersicht als Kacheln statt als Tabelle. * * Eine Wehr hat drei bis zehn Fahrzeuge, nicht dreihundert. Für diese Menge * ist eine Kachel mit den wichtigen Terminen brauchbarer als eine Zeile: der * TÜV-Termin und die Zahl der verlasteten Geräte sind das, wonach man sucht. */ export default async function FahrzeugeSeite() { const sitzung = await aktuelleSitzung(); if (!sitzung) redirect("/anmelden"); const fahrzeuge = await fuerOrganisation(sitzung.organisationId, (db) => db.fahrzeug.findMany({ where: { geloeschtAm: null }, orderBy: { funkrufname: "asc" }, include: { standort: { select: { name: true } }, _count: { select: { geraete: true, geraeteraeume: true } }, }, }), ); return (

Fahrzeuge

Einsatzfahrzeuge der Wehr mit Terminen und verlasteten Geräten.

{fahrzeuge.length === 0 ? ( ) : (
{fahrzeuge.map((fahrzeug) => (
{fahrzeug.funkrufname} {fahrzeug.dinTyp ? `${fahrzeug.dinTyp} — ` : ""} {fahrzeug.bezeichnung}
{ART_TEXT[fahrzeug.art] ?? fahrzeug.art} {fahrzeug.kennzeichen && ( {fahrzeug.kennzeichen} )} {!fahrzeug.aktiv && außer Dienst}
Nächster TÜV
Baujahr
{fahrzeug.baujahr ?? "—"}
Standort
{fahrzeug.standort?.name ?? "—"}
Indienststellung
{alsDatum(fahrzeug.indienststellung)}

{fahrzeug._count.geraete}{" "} {fahrzeug._count.geraete === 1 ? "Gerät" : "Geräte"} verlastet {" · "} {fahrzeug._count.geraeteraeume}{" "} {fahrzeug._count.geraeteraeume === 1 ? "Geräteraum" : "Geräteräume"}

))}
)}
); }