import Link from "next/link"; import { notFound, redirect } from "next/navigation"; import { ArrowLeft } from "lucide-react"; import { aktuelleSitzung } from "@/lib/auth"; import { hatRecht } from "@/lib/authz"; import { fuerOrganisation } from "@/lib/db"; import { Button } from "@/components/ui/button"; import { GeraetFormular } from "@/components/stammdaten/geraet-formular"; import { LEERES_GERAET, alsFeldwert, } from "@/components/stammdaten/geraet-formular-werte"; export const metadata = { title: "Gerät bearbeiten" }; /** Ein vorhandenes Gerät bearbeiten. */ export default async function GeraetBearbeitenSeite({ params, }: { params: Promise<{ id: string }>; }) { const sitzung = await aktuelleSitzung(); if (!sitzung) redirect("/anmelden"); const { id } = await params; if (!hatRecht(sitzung, "geraet.bearbeiten")) redirect(`/geraete/${id}`); const geraet = await fuerOrganisation(sitzung.organisationId, (db) => db.geraet.findUnique({ where: { id } }), ); if (!geraet) notFound(); const vorgabe = { ...LEERES_GERAET, id: geraet.id, inventarnummer: geraet.inventarnummer, bezeichnung: geraet.bezeichnung, geraetetypId: geraet.geraetetypId, hersteller: geraet.hersteller ?? "", modell: geraet.modell ?? "", seriennummer: geraet.seriennummer ?? "", herstellungsdatum: alsFeldwert(geraet.herstellungsdatum), indienststellung: alsFeldwert(geraet.indienststellung), // Decimal aus Prisma: als deutscher Text ins Feld, damit das Komma bleibt. anschaffungspreis: geraet.anschaffungspreis ? String(geraet.anschaffungspreis).replace(".", ",") : "", status: geraet.status, pruefintervallMonate: geraet.pruefintervallMonate?.toString() ?? "", letztePruefung: alsFeldwert(geraet.letztePruefung), lebensdauerJahre: geraet.lebensdauerJahre?.toString() ?? "", lagerungsart: (geraet.fahrzeugId ? "fahrzeug" : "standort") as "fahrzeug" | "standort", standortId: geraet.standortId, fahrzeugId: geraet.fahrzeugId, geraeteraumId: geraet.geraeteraumId, lagerort: geraet.lagerort ?? "", bemerkung: geraet.bemerkung ?? "", }; return (