From 147b1ff44fa6810d033c5112d9b64ddceb48b8fe Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Wed, 19 Mar 2025 13:15:40 -0300 Subject: [PATCH] Alte Ausweis Id --- .../migrations/20250319160937_/migration.sql | 50 +++++++++++++++++++ prisma/schema/BedarfsausweisWohnen.prisma | 1 + prisma/schema/VerbrauchsausweisGewerbe.prisma | 1 + prisma/schema/VerbrauchsausweisWohnen.prisma | 1 + src/generated/zod/bedarfsausweiswohnen.ts | 1 + src/generated/zod/verbrauchsausweisgewerbe.ts | 1 + src/generated/zod/verbrauchsausweiswohnen.ts | 1 + src/pages/pdf/ansichtsausweis.ts | 6 ++- src/pages/pdf/datenblatt.ts | 6 ++- src/testing/daten-umziehen.ts | 3 ++ 10 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 prisma/migrations/20250319160937_/migration.sql diff --git a/prisma/migrations/20250319160937_/migration.sql b/prisma/migrations/20250319160937_/migration.sql new file mode 100644 index 00000000..6cdd5411 --- /dev/null +++ b/prisma/migrations/20250319160937_/migration.sql @@ -0,0 +1,50 @@ +-- AlterTable +ALTER TABLE "Anteilshaber" ALTER COLUMN "uid" SET DEFAULT 'ant-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Aufnahme" ALTER COLUMN "uid" SET DEFAULT 'auf-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'bag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "alte_ausweis_id" INTEGER, +ALTER COLUMN "uid" SET DEFAULT 'baw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Bild" ALTER COLUMN "uid" SET DEFAULT 'img-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Event" ALTER COLUMN "uid" SET DEFAULT 'evt-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGEinpreisung" ALTER COLUMN "uid" SET DEFAULT 'gge-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'gng-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "uid" SET DEFAULT 'gnw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Objekt" ALTER COLUMN "uid" SET DEFAULT 'obj-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Rechnung" ALTER COLUMN "uid" SET DEFAULT 'inv-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Tickets" ALTER COLUMN "uid" SET DEFAULT 'tkt-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "Unterlage" ALTER COLUMN "uid" SET DEFAULT 'pln-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "alte_ausweis_id" INTEGER, +ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "alte_ausweis_id" INTEGER, +ALTER COLUMN "uid" SET DEFAULT 'vaw-' || gen_random_uuid(); + +-- AlterTable +ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid(); diff --git a/prisma/schema/BedarfsausweisWohnen.prisma b/prisma/schema/BedarfsausweisWohnen.prisma index 55023a8e..578466bf 100644 --- a/prisma/schema/BedarfsausweisWohnen.prisma +++ b/prisma/schema/BedarfsausweisWohnen.prisma @@ -1,6 +1,7 @@ model BedarfsausweisWohnen { id Int @id @default(autoincrement()) + alte_ausweis_id Int? uid String @unique @default(dbgenerated("'baw-' || gen_random_uuid()")) benutzer_id Int? ausstellgrund Ausstellgrund? diff --git a/prisma/schema/VerbrauchsausweisGewerbe.prisma b/prisma/schema/VerbrauchsausweisGewerbe.prisma index c4902cb5..46973729 100644 --- a/prisma/schema/VerbrauchsausweisGewerbe.prisma +++ b/prisma/schema/VerbrauchsausweisGewerbe.prisma @@ -1,6 +1,7 @@ model VerbrauchsausweisGewerbe { id Int @id @default(autoincrement()) + alte_ausweis_id Int? uid String @unique @default(dbgenerated("'vag-' || gen_random_uuid()")) benutzer_id Int? ausstellgrund Ausstellgrund? diff --git a/prisma/schema/VerbrauchsausweisWohnen.prisma b/prisma/schema/VerbrauchsausweisWohnen.prisma index 8492a280..2dec2998 100644 --- a/prisma/schema/VerbrauchsausweisWohnen.prisma +++ b/prisma/schema/VerbrauchsausweisWohnen.prisma @@ -1,6 +1,7 @@ model VerbrauchsausweisWohnen { id Int @id @default(autoincrement()) + alte_ausweis_id Int? /// @zod.describe("UID des Ausweises") uid String @unique @default(dbgenerated("'vaw-' || gen_random_uuid()")) /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") diff --git a/src/generated/zod/bedarfsausweiswohnen.ts b/src/generated/zod/bedarfsausweiswohnen.ts index d1754982..64c883c8 100644 --- a/src/generated/zod/bedarfsausweiswohnen.ts +++ b/src/generated/zod/bedarfsausweiswohnen.ts @@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client" export const BedarfsausweisWohnenSchema = z.object({ id: z.number().int(), + alte_ausweis_id: z.number().int().nullish(), uid: z.string(), benutzer_id: z.number().int().nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(), diff --git a/src/generated/zod/verbrauchsausweisgewerbe.ts b/src/generated/zod/verbrauchsausweisgewerbe.ts index 648fb51b..a9381c0e 100644 --- a/src/generated/zod/verbrauchsausweisgewerbe.ts +++ b/src/generated/zod/verbrauchsausweisgewerbe.ts @@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client" export const VerbrauchsausweisGewerbeSchema = z.object({ id: z.number().int(), + alte_ausweis_id: z.number().int().nullish(), uid: z.string(), benutzer_id: z.number().int().nullish(), ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(), diff --git a/src/generated/zod/verbrauchsausweiswohnen.ts b/src/generated/zod/verbrauchsausweiswohnen.ts index c1d29a06..aac68af2 100644 --- a/src/generated/zod/verbrauchsausweiswohnen.ts +++ b/src/generated/zod/verbrauchsausweiswohnen.ts @@ -3,6 +3,7 @@ import { Ausstellgrund } from "@prisma/client" export const VerbrauchsausweisWohnenSchema = z.object({ id: z.number().int(), + alte_ausweis_id: z.number().int().nullish(), 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(), diff --git a/src/pages/pdf/ansichtsausweis.ts b/src/pages/pdf/ansichtsausweis.ts index abbcfe8f..ba9694e4 100644 --- a/src/pages/pdf/ansichtsausweis.ts +++ b/src/pages/pdf/ansichtsausweis.ts @@ -5,6 +5,7 @@ import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen. import { Enums } from "#lib/client/prisma.js"; import { APIRoute } from "astro"; import { createCaller } from "src/astro-typesafe-api-caller.js"; +import { getS3File } from "#lib/s3.js"; export const GET: APIRoute = async (Astro) => { const uidAusweis = Astro.url.searchParams.get("uid"); @@ -73,7 +74,10 @@ export const GET: APIRoute = async (Astro) => { }); let pdf: Uint8Array | null = null; - if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { + if (ausweis.alte_ausweis_id) { + // Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren. + pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Energieausweis.pdf`) + } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user); } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user); diff --git a/src/pages/pdf/datenblatt.ts b/src/pages/pdf/datenblatt.ts index e355325e..ae1d5a0e 100644 --- a/src/pages/pdf/datenblatt.ts +++ b/src/pages/pdf/datenblatt.ts @@ -7,6 +7,7 @@ import { pdfVerbrauchsausweisWohnen } from "#lib/pdf/pdfVerbrauchsausweisWohnen. import { Enums } from "#lib/client/prisma.js"; import { APIRoute } from "astro"; import { createCaller } from "src/astro-typesafe-api-caller.js"; +import { getS3File } from "#lib/s3.js"; export const GET: APIRoute = async (Astro) => { const uidAusweis = Astro.url.searchParams.get("uid"); @@ -75,7 +76,10 @@ export const GET: APIRoute = async (Astro) => { }); let pdf: Uint8Array | null = null; - if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { + if (ausweis.alte_ausweis_id) { + // Dieser Ausweis wurde mit der alten Version erstellt, das PDF sollte bereits existieren. + pdf = await getS3File("ibc-pdfs", `ID_${ausweis.alte_ausweis_id}_Datenblatt.pdf`) + } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { pdf = await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user); } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { pdf = await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user); diff --git a/src/testing/daten-umziehen.ts b/src/testing/daten-umziehen.ts index f5355a57..69c1612a 100644 --- a/src/testing/daten-umziehen.ts +++ b/src/testing/daten-umziehen.ts @@ -216,6 +216,7 @@ Papa.parse(file, { if (dataset.ausweisart === "VA") { const ausweis = await tx.verbrauchsausweisWohnen.create({ data: { + alte_ausweis_id: dataset.id, alternative_heizung: dataset.alheizung == "1", alternative_kuehlung: dataset.alkuehlung == "1", alternative_lueftung: dataset.allueftung == "1", @@ -283,6 +284,7 @@ Papa.parse(file, { } else if (dataset.ausweisart === "VANW") { const ausweis = await tx.verbrauchsausweisGewerbe.create({ data: { + alte_ausweis_id: dataset.id, alternative_heizung: dataset.alheizung == "1", alternative_kuehlung: dataset.alkuehlung == "1", alternative_lueftung: dataset.allueftung == "1", @@ -362,6 +364,7 @@ Papa.parse(file, { } else if (dataset.ausweisart === "BA") { const ausweis = await tx.bedarfsausweisWohnen.create({ data: { + alte_ausweis_id: dataset.id, alternative_heizung: dataset.alheizung == "1", alternative_kuehlung: dataset.alkuehlung == "1", alternative_lueftung: dataset.allueftung == "1",