diff --git a/src/lib/AusweisData.ts b/src/lib/AusweisData.ts deleted file mode 100644 index 4c2255d0..00000000 --- a/src/lib/AusweisData.ts +++ /dev/null @@ -1,42 +0,0 @@ -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; -} \ No newline at end of file diff --git a/src/lib/validators/index.ts b/src/lib/validators/index.ts deleted file mode 100644 index 98c3d862..00000000 --- a/src/lib/validators/index.ts +++ /dev/null @@ -1,255 +0,0 @@ -import { - VerbrauchsausweisWohnenSchema, - AufnahmeSchema, - ObjektSchema, - BildSchema, - RechnungSchema, - EventSchema, - BenutzerSchema, - GebaeudePlaeneSchema, - AnteilshaberSchema, - BedarfsausweisWohnenSchema, - VerbrauchsausweisGewerbeSchema -} from "#lib/client/prisma"; -import { z } from "zod"; - -export const RechnungValidator = RechnungSchema.omit({ - aufnahme_id: true, - id: true, - benutzer_id: true -}) - -export const GebaeudePlaeneValidator = GebaeudePlaeneSchema.omit({ - id: true, - objekt_id: true -}) - -export const AnteilshaberValidator = AnteilshaberSchema.omit({ - benutzer_id: true, - id: true, - objekt_id: true -}) - -export const BildValidator = BildSchema.omit({ - id: true, - objekt_id: true -}) - -export const AufnahmeValidator = AufnahmeSchema.omit({ - id: true, - benutzer_id: true, - objekt_id: true, -}).merge( - z.object({ - verbrauchsausweis_wohnen: VerbrauchsausweisWohnenSchema.omit({ - id: true, - benutzer_id: true, - aufnahme_id: true, - }).nullable(), - bedarfsausweis_wohnen: VerbrauchsausweisWohnenSchema.omit({ - id: true, - benutzer_id: true, - aufnahme_id: true, - }).nullable(), - verbrauchsausweis_gewerbe: VerbrauchsausweisWohnenSchema.omit({ - id: true, - benutzer_id: true, - aufnahme_id: true, - }).nullable(), - rechnungen: z.array( - RechnungValidator - ), - events: z.array( - EventSchema.omit({ - benutzer_id: true, - id: true, - }).merge( - z.object({ - benutzer: BenutzerSchema.pick({ uid: true }), - }) - ) - ), - }) -); - -export const ObjektValidator = ObjektSchema.omit({ - benutzer_id: true, - id: true -}).merge(z.object({ - aufnahme: z.array( - AufnahmeValidator - ).nullable().optional(), - bilder: z.array( - BildValidator - ).nullable().optional(), - gebaeude_plaene: z.array( - GebaeudePlaeneValidator - ).nullable().optional(), - Anteilshaber: z.array( - AnteilshaberValidator - ).nullable().optional() -})) - -/** - * Runtime überprüfung für den Verbrauchsausweis Wohnen - * Dieser Typ beinhaltet alle Daten bis auf die IDs aller Verlinkungen. - */ -export const VerbrauchsausweisWohnenValidator = - VerbrauchsausweisWohnenSchema.merge( - z.object({ - benutzer: BenutzerSchema.omit({ - id: true, - passwort: true - }), - aufnahme: AufnahmeSchema.omit({ - benutzer_id: true, - objekt_id: true, - id: true, - }).merge( - z.object({ - objekt: ObjektSchema.omit({ - benutzer_id: true, - id: true, - }).merge( - z.object({ - bilder: z.array( - BildSchema.omit({ - id: true, - objekt_id: true, - }) - ) - }) - ), - rechnungen: RechnungSchema.omit({ - aufnahme_id: true, - benutzer_id: true, - id: true, - }).array(), - events: z.array( - EventSchema.omit({ - aufnahme_id: true, - id: true, - benutzer_id: true - }).merge(z.object({ - benutzer: BenutzerSchema.pick({ - uid: true - }) - })) - ) - }) - ) - }) - ).omit({ - benutzer_id: true, - id: true, - aufnahme_id: true, - }); - - export const VerbrauchsausweisWohnenBerechnungValidator2024 = z.object({ - endEnergieVerbrauchGesamt: z.number(), - primaerEnergieVerbrauchGesamt: z.number(), - energieEffizienzKlasse: z.string(), - co2EmissionenGesamt: z.number() - }) - - /** - * Runtime überprüfung für den Verbrauchsausweis Wohnen - * Dieser Typ beinhaltet alle Daten bis auf die IDs aller Verlinkungen. - */ -export const BedarfsausweisWohnenValidator = -BedarfsausweisWohnenSchema.merge( - z.object({ - aufnahme: AufnahmeSchema.omit({ - benutzer_id: true, - objekt_id: true, - id: true, - }).merge( - z.object({ - objekt: ObjektSchema.omit({ - benutzer_id: true, - id: true, - }).merge( - z.object({ - bilder: z.array( - BildSchema.omit({ - id: true, - objekt_id: true, - }) - ) - }) - ), - rechnungen: RechnungSchema.omit({ - aufnahme_id: true, - benutzer_id: true, - id: true, - }).array(), - events: z.array( - EventSchema.omit({ - aufnahme_id: true, - id: true, - benutzer_id: true - }).merge(z.object({ - benutzer: BenutzerSchema.pick({ - uid: true - }) - })) - ) - }) - ) - }) -).omit({ - benutzer_id: true, - id: true, - aufnahme_id: true, -}); - -/** - * Runtime überprüfung für den Verbrauchsausweis Wohnen - * Dieser Typ beinhaltet alle Daten bis auf die IDs aller Verlinkungen. - */ -export const VerbrauchsausweisGewerbeValidator = - VerbrauchsausweisGewerbeSchema.merge( - z.object({ - aufnahme: AufnahmeSchema.omit({ - benutzer_id: true, - objekt_id: true, - id: true, - }).merge( - z.object({ - objekt: ObjektSchema.omit({ - benutzer_id: true, - id: true, - }).merge( - z.object({ - bilder: z.array( - BildSchema.omit({ - id: true, - objekt_id: true, - }) - ) - }) - ), - rechnungen: RechnungSchema.omit({ - aufnahme_id: true, - benutzer_id: true, - id: true, - }).array(), - events: z.array( - EventSchema.omit({ - aufnahme_id: true, - id: true, - benutzer_id: true - }).merge(z.object({ - benutzer: BenutzerSchema.pick({ - uid: true - }) - })) - ) - }) - ) - }) - ).omit({ - benutzer_id: true, - id: true, - aufnahme_id: true, - }); \ No newline at end of file