58 lines
3.1 KiB
TypeScript
58 lines
3.1 KiB
TypeScript
import * as z from "zod"
|
|
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
|
|
|
export const VerbrauchsausweisGewerbeSchema = z.object({
|
|
id: z.string(),
|
|
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
|
registriernummer: z.string().nullish(),
|
|
zusaetzliche_heizquelle: z.boolean().nullish(),
|
|
einheit_1: 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(),
|
|
brennstoff_1: z.string().describe("Genutzer Brennstoff der primären Energiequelle").nullish(),
|
|
brennstoff_2: z.string().describe("Genutzer Brennstoff der sekundären Energiequelle").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(),
|
|
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(),
|
|
warmwasser_anteil_bekannt: z.boolean().describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen").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(),
|
|
created_at: z.date(),
|
|
updated_at: z.date(),
|
|
ausweistyp: z.nativeEnum(AusweisTyp),
|
|
benutzer_id: z.string().nullish(),
|
|
rechnung_id: z.string().nullish(),
|
|
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
|
})
|