Files
online-energieausweis/src/pages/verbrauchsausweis/index.astro

37 lines
1.5 KiB
Plaintext

---
import AusweisLayout from "#layouts/AusweisLayout.astro";
import VerbrauchsausweisWohnenModule from "#modules/Ausweise/VerbrauchsausweisWohnenModule.svelte";
import { GebaeudeStammdaten, VerbrauchsausweisWohnen, prisma } from "@ibcornelsen/database/server";
import { exclude } from "#lib/exclude";
// TODO: In eigene Datei auslagern und in den Frontend Dateien verwenden.
type VerbrauchsausweisWohnenIDStripped = Omit<VerbrauchsausweisWohnen, "id" | "gebaeude_stammdaten_id" | "ausweisart" | "benutzer_id" | "rechnungen_id">;
const uid = Astro.url.searchParams.get("uid");
let ausweis: VerbrauchsausweisWohnenIDStripped = {} as VerbrauchsausweisWohnen;
// TODO: Hiervon auch eine ID Stripped Version erstellen.
let gebaeude: GebaeudeStammdaten = {} as GebaeudeStammdaten;
if (uid) {
const request = await prisma.verbrauchsausweisWohnen.findUnique({
where: { uid },
include: {
gebaeude_stammdaten: true
}
})
if (request) {
const { gebaeude_stammdaten, ...rest } = request;
// TODO: `uid` kann als Key wieder hinzugefügt werden, dadurch können wir es uns sparen, `uid` nochmal extra mitzugeben.
ausweis = exclude(rest, ["id", "uid", "gebaeude_stammdaten_id", "ausweisart", "benutzer_id", "rechnungen_id"]);
gebaeude = exclude(request.gebaeude_stammdaten, ["id", "uid", "benutzer_id"]) as GebaeudeStammdaten;
}
}
---
<AusweisLayout title="Verbrauchsausweis erstellen">
<VerbrauchsausweisWohnenModule client:load uid={uid} ausweis={ausweis} gebaeude={gebaeude} />
</AusweisLayout>