import { VerbrauchsausweisWohnenClient } from "#components/Ausweis/types"; import { z } from "zod"; import { verbrauchsausweisWohnenPDFValidator } from "./validators/verbrauchsausweis-wohnen-pdf-validator"; export function convertAusweisData( inputs: Partial ): Record { // Wir wollen alle Werte zu einem Flachen Objekt umwandeln, sodass wir dass später benutzen können. // Dazu kommen noch einige wichtige Eigenschaften die man im PDF brauchen könnte. let pdfInputs: z.infer = { ...inputs, pdf: { "brennstoff": [inputs.aufnahme?.brennstoff_1, inputs.aufnahme?.brennstoff_2].filter(x => x).join(", ") } } let result = recursiveFlatten(inputs, ""); // Außerdem müssen wir alle Werte zu strings umwandeln. for (const key in result) { result[key] = String(result[key]); } return result; } function recursiveFlatten(obj: any, parentKey = ""): Record { const result: Record = {}; for (const key in obj) { const value = obj[key]; const newKey = parentKey ? `${parentKey}.${key}` : key; if (typeof value === "object") { Object.assign(result, recursiveFlatten(value, newKey)); } else { result[newKey] = value; } } return result; }