93 lines
4.3 KiB
TypeScript
93 lines
4.3 KiB
TypeScript
import * as z from "zod"
|
|
import { Ausstellgrund, AusweisTyp, Ausweisart } from "@prisma/client"
|
|
|
|
export const BedarfsausweisWohnenSchema = z.object({
|
|
id: z.string(),
|
|
alte_ausweis_id: z.number().int().nullish(),
|
|
benutzer_id: z.string().nullish(),
|
|
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
|
registriernummer: z.string().nullish(),
|
|
alternative_heizung: z.boolean().nullish(),
|
|
alternative_warmwasser: z.boolean().nullish(),
|
|
alternative_lueftung: z.boolean().nullish(),
|
|
alternative_kuehlung: z.boolean().nullish(),
|
|
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
|
|
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
|
|
boxpruefung: z.boolean().nullish(),
|
|
anzahl_vollgeschosse: z.number().int().nullish(),
|
|
geschosshoehe: z.number().nullish(),
|
|
anzahl_gauben: z.number().int().nullish(),
|
|
breite_gauben: z.number().nullish(),
|
|
masse_a: z.number().nullish(),
|
|
masse_b: z.number().nullish(),
|
|
masse_c: z.number().nullish(),
|
|
masse_d: z.number().nullish(),
|
|
masse_e: z.number().nullish(),
|
|
masse_f: z.number().nullish(),
|
|
fensterflaeche_so_sw: z.number().nullish(),
|
|
fensterflaeche_nw_no: z.number().nullish(),
|
|
aussenwandflaeche_unbeheizt: z.number().nullish(),
|
|
dachflaeche: z.number().nullish(),
|
|
deckenflaeche: z.number().nullish(),
|
|
dach_u_wert: z.number().nullish(),
|
|
decke_u_wert: z.number().nullish(),
|
|
aussenwand_flaeche: z.number().nullish(),
|
|
aussenwand_u_wert: z.number().nullish(),
|
|
fussboden_flaeche: z.number().nullish(),
|
|
fussboden_u_wert: z.number().nullish(),
|
|
volumen: z.number().nullish(),
|
|
dicht: z.boolean().nullish(),
|
|
fenster_flaeche_1: z.number().nullish(),
|
|
fenster_art_1: z.number().nullish(),
|
|
fenster_flaeche_2: z.number().nullish(),
|
|
fenster_art_2: z.number().nullish(),
|
|
dachfenster_flaeche: z.number().nullish(),
|
|
dachfenster_art: z.number().nullish(),
|
|
haustuer_flaeche: z.number().nullish(),
|
|
haustuer_art: z.number().nullish(),
|
|
dach_bauart: z.string().nullish(),
|
|
decke_bauart: z.string().nullish(),
|
|
dach_daemmung: z.number().nullish(),
|
|
decke_daemmung: z.number().nullish(),
|
|
aussenwand_daemmung: z.number().nullish(),
|
|
boden_daemmung: z.number().nullish(),
|
|
aussenwand_bauart: z.string().nullish(),
|
|
boden_bauart: z.string().nullish(),
|
|
warmwasser_verteilung: z.string().nullish(),
|
|
warmwasser_speicherung: z.string().nullish(),
|
|
warmwasser_erzeugung: z.string().nullish(),
|
|
heizung_zentral: z.boolean().nullish(),
|
|
heizung_verteilung: z.string().nullish(),
|
|
heizung_speicherung: z.string().nullish(),
|
|
waerme_erzeugung_heizung: z.string().nullish(),
|
|
anteil_zusatzheizung: z.number().nullish(),
|
|
kollektor_flaeche: z.number().nullish(),
|
|
ausgestellt: z.boolean().nullish(),
|
|
storniert: z.boolean().describe("Falls der Ausweis storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
|
bestellt: z.boolean().describe("Falls der Ausweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
|
zurueckgestellt: z.boolean().describe("Falls der Ausweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
|
prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(),
|
|
beschreibung: z.string().nullish(),
|
|
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
|
created_at: z.date(),
|
|
updated_at: z.date(),
|
|
pruefpunkt_heizungsalter: z.boolean().nullish(),
|
|
pruefpunkt_verbrauch_niedrig: z.boolean().nullish(),
|
|
pruefpunkt_verbrauch_hoch: z.boolean().nullish(),
|
|
pruefpunkt_verbrauch_null: z.boolean().nullish(),
|
|
pruefpunkt_verbrauch_abweichung: z.boolean().nullish(),
|
|
pruefpunkt_wohnflaeche_einheiten: z.boolean().nullish(),
|
|
pruefpunkt_strom_null: z.boolean().nullish(),
|
|
pruefpunkt_strom_abweichung: z.boolean().nullish(),
|
|
pruefpunkt_plz: z.boolean().nullish(),
|
|
pruefpunkt_heizungsanlage: z.boolean().nullish(),
|
|
pruefpunkt_anteil_warmwasser: z.boolean().nullish(),
|
|
pruefpunkt_wohnflaeche: z.boolean().nullish(),
|
|
pruefpunkt_geometrie: z.boolean().nullish(),
|
|
pruefpunkt_fenster: z.boolean().nullish(),
|
|
ausweistyp: z.nativeEnum(AusweisTyp),
|
|
ausweisart: z.nativeEnum(Ausweisart),
|
|
rechnung_id: z.string().nullish(),
|
|
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
|
})
|