Astro build funktioniert

This commit is contained in:
Moritz Utcke
2025-02-22 10:20:20 +11:00
parent fa272cf0f3
commit 785e0f78ff
193 changed files with 4003 additions and 773 deletions

View File

@@ -0,0 +1,10 @@
import * as z from "zod"
export const AnteilshaberSchema = z.object({
id: z.number().int(),
benutzer_id: z.number().int(),
rolle: z.string().nullish(),
privilegien: z.bigint().nullish(),
uid: z.string(),
objekt_id: z.number().int(),
})

View File

@@ -0,0 +1,14 @@
import * as z from "zod"
export const ApiRequestsSchema = z.object({
id: z.number().int(),
date: z.date(),
ip: z.string(),
method: z.string(),
path: z.string(),
status: z.number().int(),
responseTime: z.number(),
responseSize: z.number().int(),
userAgent: z.string(),
user_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,64 @@
import * as z from "zod"
import { Ausweisart, Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
export const AufnahmeSchema = z.object({
id: z.number().int(),
uid: z.string().describe("UID der Gebäude Aufnahme"),
benutzer_id: z.number().int().nullish(),
ausweisart: z.nativeEnum(Ausweisart).describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen").nullish(),
gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(),
gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(),
baujahr_gebaeude: z.number().int().array().describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde"),
baujahr_heizung: z.number().int().array().describe("Alle Jahre in denen die Heizung eingebaut oder grundlegend verändert wurde"),
baujahr_klima: z.number().int().array().describe("Alle Jahre in denen die Klimaanlage eingebaut oder grundlegend verändert wurde"),
einheiten: z.number().int().describe("Anzahl der (Wohn)Einheiten im Gebäude").nullish(),
flaeche: z.number().int().describe("Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden").nullish(),
nutzflaeche: z.number().int().describe("(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche").nullish(),
saniert: z.boolean().describe("Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen").nullish(),
keller: z.nativeEnum(Heizungsstatus).describe("Ob ein Keller vorhanden, beheizt oder unbeheizt ist").nullish(),
dachgeschoss: z.nativeEnum(Heizungsstatus).describe("Ob ein Dachgeschoss vorhanden, beheizt oder unbeheizt ist").nullish(),
lueftung: z.nativeEnum(Lueftungskonzept).describe("Art der Gebäudelüftung").nullish(),
kuehlung: z.string().describe("Art der Gebäudekühlung").nullish(),
leerstand: z.number().int().describe("Prozentualer Leerstand des Gebäudes in einem durchschnittlichen Jahr").nullish(),
alternative_heizung: z.boolean().describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
alternative_lueftung: z.boolean().describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
alternative_kuehlung: z.boolean().describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen").nullish(),
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").nullish(),
boxpruefung: z.boolean().nullish(),
energieeffizienzklasse: z.string().describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes").nullish(),
erstellungsdatum: z.date().describe("Datum an dem der Kunde den Ausweis erstellt hat").nullish(),
ausstellungsdatum: z.date().describe("Datum an dem der Aussteller den Ausweis ausgestellt hat").nullish(),
zentralheizung: z.boolean().describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen").nullish(),
solarsystem_warmwasser: z.boolean().describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen").nullish(),
warmwasser_rohre_gedaemmt: z.boolean().describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
niedertemperatur_kessel: z.boolean().describe("Falls das Gebäude über einen Niedertemperaturkessel verfügt, sollte dieser Wert auf true stehen").nullish(),
brennwert_kessel: z.boolean().describe("Falls das Gebäude über einen Brennwertkessel verfügt, sollte dieser Wert auf true stehen").nullish(),
heizungsrohre_gedaemmt: z.boolean().describe("Falls die Heizungsrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
standard_kessel: z.boolean().nullish(),
waermepumpe: z.boolean().describe("Falls das Gebäude über eine Wärmepumpe verfügt, sollte dieser Wert auf true stehen").nullish(),
raum_temperatur_regler: z.boolean().describe("Falls das Gebäude über einen Raumtemperaturregler verfügt, sollte dieser Wert auf true stehen").nullish(),
photovoltaik: z.boolean().describe("Falls das Gebäude über eine Photovoltaikanlage verfügt, sollte dieser Wert auf true stehen").nullish(),
durchlauf_erhitzer: z.boolean().describe("Falls das Gebäude über einen Durchlauferhitzer verfügt, sollte dieser Wert auf true stehen").nullish(),
einzelofen: z.boolean().nullish(),
zirkulation: z.boolean().describe("Falls das Gebäude über eine Zirkulationspumpe verfügt, sollte dieser Wert auf true stehen").nullish(),
einfach_verglasung: z.boolean().describe("Falls die Fenster des Gebäudes einfach gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
dreifach_verglasung: z.boolean().describe("Falls die Fenster des Gebäudes dreifach gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
fenster_teilweise_undicht: z.boolean().describe("Falls die Fenster des Gebäudes teilweise undicht sind, sollte dieser Wert auf true stehen").nullish(),
doppel_verglasung: z.boolean().describe("Falls die Fenster des Gebäudes doppelt gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
fenster_dicht: z.boolean().describe("Falls die Fenster des Gebäudes dicht sind, sollte dieser Wert auf true stehen").nullish(),
rolllaeden_kaesten_gedaemmt: z.boolean().describe("Falls das Gebäude über gedämmte Rolllädenkästen verfügt, sollte dieser Wert auf true stehen").nullish(),
isolier_verglasung: z.boolean().describe("Falls die Fenster des Gebäudes isolier Verglasung haben, sollte dieser Wert auf true stehen").nullish(),
tueren_undicht: z.boolean().describe("Falls die Türen des Gebäudes undicht sind, sollte dieser Wert auf true stehen").nullish(),
tueren_dicht: z.boolean().describe("Falls die Türen des Gebäudes dicht sind, sollte dieser Wert auf true stehen").nullish(),
dachgeschoss_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
keller_decke_gedaemmt: z.boolean().describe("Falls die Kellerdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
keller_wand_gedaemmt: z.boolean().describe("Falls die Kellerwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
aussenwand_gedaemmt: z.boolean().describe("Falls die Außenwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
oberste_geschossdecke_gedaemmt: z.boolean().describe("Falls die oberste Geschossdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
aussenwand_min_12cm_gedaemmt: z.boolean().describe("Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
dachgeschoss_min_12cm_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
oberste_geschossdecke_min_12cm_gedaemmt: z.boolean().describe("Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
objekt_id: z.number().int(),
})

View File

@@ -0,0 +1,10 @@
import * as z from "zod"
export const BedarfsausweisGewerbeSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
aufnahme_id: z.number().int(),
rechnung_id: z.number().int().nullish(),
geg_einpreisung_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,71 @@
import * as z from "zod"
import { Ausstellgrund } from "@prisma/client"
export const BedarfsausweisWohnenSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int().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(),
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(),
rechnung_id: z.number().int().nullish(),
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
})

View File

@@ -0,0 +1,20 @@
import * as z from "zod"
import { BenutzerRolle } from "@prisma/client"
export const BenutzerSchema = z.object({
id: z.number().int(),
uid: z.string(),
name: z.string().nullish(),
vorname: z.string().nullish(),
email: z.string(),
passwort: z.string(),
profilbild: z.string().nullish(),
plz: z.string().nullish(),
ort: z.string().nullish(),
adresse: z.string().nullish(),
telefon: z.string().nullish(),
anrede: z.string().nullish(),
rolle: z.nativeEnum(BenutzerRolle),
firma: z.string().nullish(),
lex_office_id: z.string().nullish(),
})

View File

@@ -0,0 +1,9 @@
import * as z from "zod"
import { BilderKategorie } from "@prisma/client"
export const BildSchema = z.object({
id: z.number().int(),
kategorie: z.nativeEnum(BilderKategorie),
uid: z.string(),
aufnahme_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,14 @@
import * as z from "zod"
export const documenttemplatesSchema = z.object({
id: z.number().int(),
name: z.string(),
shortdescription: z.string(),
longdescription: z.string(),
user_id: z.number().int(),
is_private: z.boolean(),
documenttype: z.number().int(),
filename: z.string(),
created_at: z.date(),
updated_at: z.date(),
})

View File

@@ -0,0 +1,8 @@
import * as z from "zod"
export const documenttypesSchema = z.object({
id: z.number().int(),
name: z.string(),
shortdescription: z.string(),
longdescription: z.string(),
})

View File

@@ -0,0 +1,11 @@
import * as z from "zod"
export const EventSchema = z.object({
id: z.number().int(),
uid: z.string(),
date: z.date(),
title: z.string(),
description: z.string().nullish(),
aufnahme_id: z.number().int(),
benutzer_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,22 @@
import * as z from "zod"
import { Einpreisungsstatus } from "@prisma/client"
export const GEGEinpreisungSchema = z.object({
id: z.number().int(),
uid: z.string(),
empfaenger: z.string().nullish(),
strasse: z.string().nullish(),
plz: z.string().nullish(),
ort: z.string().nullish(),
zusatzzeile: z.string().nullish(),
telefon: z.string().nullish(),
email: z.string().nullish(),
abweichende_versand_adresse: z.boolean().nullish(),
versand_empfaenger: z.string().nullish(),
versand_strasse: z.string().nullish(),
versand_plz: z.string().nullish(),
versand_ort: z.string().nullish(),
versand_zusatzzeile: z.string().nullish(),
status: z.nativeEnum(Einpreisungsstatus),
benutzer_id: z.number().int().describe("Die ID des Benutzers, der diese Einpreisung bekommt.").nullish(),
})

View File

@@ -0,0 +1,17 @@
import * as z from "zod"
import { Ausstellgrund } from "@prisma/client"
export const GEGNachweisGewerbeSchema = z.object({
id: z.number().int(),
uid: z.string(),
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
aufnahme_id: z.number().int(),
rechnung_id: z.number().int().nullish(),
geg_einpreisung_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,17 @@
import * as z from "zod"
import { Ausstellgrund } from "@prisma/client"
export const GEGNachweisWohnenSchema = z.object({
id: z.number().int(),
uid: z.string(),
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
aufnahme_id: z.number().int(),
rechnung_id: z.number().int().nullish(),
geg_einpreisung_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,23 @@
export * from "./anteilshaber"
export * from "./apirequests"
export * from "./aufnahme"
export * from "./bedarfsausweisgewerbe"
export * from "./bedarfsausweiswohnen"
export * from "./benutzer"
export * from "./bild"
export * from "./event"
export * from "./gegeinpreisung"
export * from "./gegnachweisgewerbe"
export * from "./gegnachweiswohnen"
export * from "./klimafaktoren"
export * from "./objekt"
export * from "./postleitzahlen"
export * from "./rechnung"
export * from "./refreshtokens"
export * from "./tickets"
export * from "./unterlage"
export * from "./verbrauchsausweisgewerbe"
export * from "./verbrauchsausweiswohnen"
export * from "./documenttemplates"
export * from "./documenttypes"
export * from "./tokens"

View File

@@ -0,0 +1,9 @@
import * as z from "zod"
export const KlimafaktorenSchema = z.object({
id: z.number().int(),
plz: z.string(),
month: z.number().int(),
year: z.number().int(),
klimafaktor: z.number(),
})

View File

@@ -0,0 +1,13 @@
import * as z from "zod"
export const ObjektSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int().nullish(),
latitude: z.number().nullish(),
longitude: z.number().nullish(),
plz: z.string().describe("Postleitzahl des Gebäudes").nullish(),
ort: z.string().describe("Ort des Gebäudes").nullish(),
adresse: z.string().describe("Adresse (Straße und Hausnummer) des Gebäudes").nullish(),
erstellungsdatum: z.date().nullish(),
})

View File

@@ -0,0 +1,11 @@
import * as z from "zod"
export const PostleitzahlenSchema = z.object({
id: z.number().int(),
plz: z.string(),
stadt: z.string(),
bundesland: z.string(),
landkreis: z.string(),
lat: z.number(),
lon: z.number(),
})

View File

@@ -0,0 +1,30 @@
import * as z from "zod"
import { Bezahlmethoden, Rechnungsstatus, Service, AusweisTyp } from "@prisma/client"
export const RechnungSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int(),
empfaenger: z.string().nullish(),
strasse: z.string().nullish(),
plz: z.string().nullish(),
ort: z.string().nullish(),
zusatzzeile: z.string().nullish(),
telefon: z.string().nullish(),
email: z.string().nullish(),
abweichende_versand_adresse: z.boolean().nullish(),
versand_empfaenger: z.string().nullish(),
versand_strasse: z.string().nullish(),
versand_plz: z.string().nullish(),
versand_ort: z.string().nullish(),
versand_zusatzzeile: z.string().nullish(),
bezahlmethode: z.nativeEnum(Bezahlmethoden),
status: z.nativeEnum(Rechnungsstatus),
services: z.nativeEnum(Service).array(),
ausweistyp: z.nativeEnum(AusweisTyp),
betrag: z.number(),
erstellt_am: z.date(),
bezahlt_am: z.date().nullish(),
storniert_am: z.date().nullish(),
transaktions_referenz: z.string().nullish(),
})

View File

@@ -0,0 +1,9 @@
import * as z from "zod"
export const RefreshTokensSchema = z.object({
id: z.number().int(),
benutzer_id: z.number().int(),
token: z.string(),
ip: z.string(),
expiry: z.date(),
})

View File

@@ -0,0 +1,24 @@
import * as z from "zod"
import { TicketStatus } from "@prisma/client"
// Helper schema for JSON fields
type Literal = boolean | number | string
type Json = Literal | { [key: string]: Json } | Json[]
const literalSchema = z.union([z.string(), z.number(), z.boolean()])
const jsonSchema: z.ZodSchema<Json> = z.lazy(() => z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]))
export const TicketsSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int().nullish(),
created_at: z.date(),
updated_at: z.date().nullish(),
deleted_at: z.date().nullish(),
status: z.nativeEnum(TicketStatus),
titel: z.string(),
beschreibung: z.string(),
metadata: jsonSchema,
email: z.string(),
bearbeiter_id: z.number().int().nullish(),
prioritaet: z.number().int().nullish(),
})

View File

@@ -0,0 +1,11 @@
import * as z from "zod"
export const tokensSchema = z.object({
id: z.number().int(),
token: z.string(),
user_id: z.number().int(),
date_created: z.date(),
last_used: z.date(),
times_used: z.number().int(),
permissions: z.number().int(),
})

View File

@@ -0,0 +1,10 @@
import * as z from "zod"
export const UnterlageSchema = z.object({
id: z.number().int(),
uid: z.string(),
name: z.string().nullish(),
kategorie: z.string().nullish(),
mime: z.string().nullish(),
aufnahme_id: z.number().int().nullish(),
})

View File

@@ -0,0 +1,51 @@
import * as z from "zod"
import { Ausstellgrund } from "@prisma/client"
export const VerbrauchsausweisGewerbeSchema = z.object({
id: z.number().int(),
uid: z.string(),
benutzer_id: z.number().int().nullish(),
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
registriernummer: z.string().nullish(),
zusaetzliche_heizquelle: z.boolean().nullish(),
brennstoff_1: z.string().nullish(),
einheit_1: z.string().nullish(),
brennstoff_2: z.string().nullish(),
einheit_2: z.string().nullish(),
startdatum: z.date().nullish(),
verbrauch_1: z.number().int().nullish(),
verbrauch_2: z.number().int().nullish(),
verbrauch_3: z.number().int().nullish(),
verbrauch_4: z.number().int().nullish(),
verbrauch_5: z.number().int().nullish(),
verbrauch_6: z.number().int().nullish(),
strom_1: z.number().int().nullish(),
strom_2: z.number().int().nullish(),
strom_3: z.number().int().nullish(),
stromverbrauch_enthaelt_heizung: z.boolean().nullish(),
stromverbrauch_enthaelt_warmwasser: z.boolean().nullish(),
stromverbrauch_enthaelt_lueftung: z.boolean().nullish(),
stromverbrauch_enthaelt_beleuchtung: z.boolean().nullish(),
stromverbrauch_enthaelt_kuehlung: z.boolean().nullish(),
stromverbrauch_enthaelt_sonstige: z.string().nullish(),
kuehlung_enthalten: z.boolean().nullish(),
anteil_kuehlung_1: z.number().nullish(),
anteil_kuehlung_2: z.number().nullish(),
keller_beheizt: z.boolean().nullish(),
alternative_heizung: z.boolean().nullish(),
alternative_warmwasser: z.boolean().nullish(),
alternative_lueftung: z.boolean().nullish(),
alternative_kuehlung: z.boolean().nullish(),
warmwasser_enthalten: z.boolean().nullish(),
anteil_warmwasser_1: z.number().nullish(),
anteil_warmwasser_2: 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(),
rechnung_id: z.number().int().nullish(),
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
})

View File

@@ -0,0 +1,39 @@
import * as z from "zod"
import { Ausstellgrund } from "@prisma/client"
export const VerbrauchsausweisWohnenSchema = z.object({
id: z.number().int(),
uid: z.string().describe("UID des Ausweises"),
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
registriernummer: z.string().describe("Die Registriernummer des Ausweises").nullish(),
zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(),
einheit_1: z.string().describe("Einheit des Energieträgers der primären Heizquelle").nullish(),
einheit_2: z.string().describe("Einheit des Energieträgers der sekundären Heizquelle").nullish(),
startdatum: z.date().nullish(),
verbrauch_1: z.number().int().describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre").nullish(),
verbrauch_2: z.number().int().describe("Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre").nullish(),
verbrauch_3: z.number().int().describe("Energieverbrauch der primären Heizquelle im letzten der drei Verbrauchsjahre").nullish(),
verbrauch_4: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im ersten der drei Verbrauchsjahre").nullish(),
verbrauch_5: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im zweiten der drei Verbrauchsjahre").nullish(),
verbrauch_6: z.number().int().describe("Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre").nullish(),
warmwasser_enthalten: z.boolean().describe("Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen").nullish(),
warmwasser_anteil_bekannt: z.boolean().describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen").nullish(),
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
faktorKeller: z.number().describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.").nullish(),
alternative_heizung: z.boolean().describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet, sollte dieser Wert auf true stehen.").nullish(),
alternative_warmwasser: z.boolean().describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme (z.B. Solarsystem, Wärmepumpe, etc.) beinhaltet, sollte dieser Wert auf true stehen.").nullish(),
alternative_lueftung: z.boolean().describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen.").nullish(),
alternative_kuehlung: z.boolean().describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen.").nullish(),
anteil_warmwasser_1: z.number().describe("Anteil des Warmwassers am Gesamtverbrauch der primären Energiequelle in Prozent").nullish(),
anteil_warmwasser_2: z.number().describe("Anteil des Warmwassers am Gesamtverbrauch der sekundären Energiequelle in Prozent").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(),
rechnung_id: z.number().int().nullish(),
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
})