feat(validation): complete validation editor and master data modules

This commit is contained in:
Schubert Ferenc 2026-07-10 22:42:03 +02:00
parent 2b5c765e41
commit f73a24df13
73 changed files with 10194 additions and 0 deletions

View file

@ -0,0 +1,47 @@
"use client";
import { z } from "zod";
import { CrudPage } from "@/components/crud-page";
import { Equipment } from "@/lib/api";
const schema = z.object({
kind: z.enum(["temperature_logger", "pressure_logger", "sensor"]),
manufacturer: z.string().optional().nullable(),
model: z.string().optional().nullable(),
serial_number: z.string().min(2),
calibrated_on: z.string().optional().nullable(),
calibration_due_on: z.string().optional().nullable(),
certificate_document_id: z.string().optional().nullable(),
status: z.enum(["green", "yellow", "red"])
});
export default function EquipmentPage() {
return (
<CrudPage<Equipment>
title="Pruefmittel"
subtitle="Temperaturlogger, Drucklogger, Sensoren, Kalibrierstatus und Zertifikate."
endpoint="/equipment"
columns={[
{ key: "kind", label: "Art" },
{ key: "manufacturer", label: "Hersteller" },
{ key: "model", label: "Modell" },
{ key: "serial_number", label: "Seriennummer" },
{ key: "calibration_due_on", label: "Gueltig bis" },
{ key: "status", label: "Status" }
]}
fields={[
{ name: "kind", label: "Art", type: "select", options: [{ label: "Temperaturlogger", value: "temperature_logger" }, { label: "Drucklogger", value: "pressure_logger" }, { label: "Sensor", value: "sensor" }] },
{ name: "manufacturer", label: "Hersteller" },
{ name: "model", label: "Modell" },
{ name: "serial_number", label: "Seriennummer" },
{ name: "calibrated_on", label: "Kalibrierung", type: "date" },
{ name: "calibration_due_on", label: "Kalibrierung gueltig bis", type: "date" },
{ name: "certificate_document_id", label: "Kalibrierzertifikat Dokument-ID" },
{ name: "status", label: "Ampel", type: "select", options: [{ label: "Gruen", value: "green" }, { label: "Gelb", value: "yellow" }, { label: "Rot", value: "red" }] }
]}
schema={schema}
emptyValues={{ kind: "temperature_logger", manufacturer: "", model: "", serial_number: "", calibrated_on: "", calibration_due_on: "", certificate_document_id: "", status: "green" }}
/>
);
}