diff --git a/prisma/migrations/20250331182241_nachweise/migration.sql b/prisma/migrations/20250331182241_nachweise/migration.sql new file mode 100644 index 00000000..b92d17c6 --- /dev/null +++ b/prisma/migrations/20250331182241_nachweise/migration.sql @@ -0,0 +1,22 @@ +/* + Warnings: + + - Added the required column `updated_at` to the `BedarfsausweisGewerbe` table without a default value. This is not possible if the table is not empty. + - Added the required column `updated_at` to the `GEGNachweisGewerbe` table without a default value. This is not possible if the table is not empty. + - Added the required column `updated_at` to the `GEGNachweisWohnen` table without a default value. This is not possible if the table is not empty. + +*/ +-- AlterTable +ALTER TABLE "BedarfsausweisGewerbe" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL; + +-- AlterTable +ALTER TABLE "GEGNachweisGewerbe" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL; + +-- AlterTable +ALTER TABLE "GEGNachweisWohnen" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, +ADD COLUMN "nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard', +ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL; diff --git a/prisma/schema/BedarfsausweisGewerbe.prisma b/prisma/schema/BedarfsausweisGewerbe.prisma index d0c97158..f2ec3991 100644 --- a/prisma/schema/BedarfsausweisGewerbe.prisma +++ b/prisma/schema/BedarfsausweisGewerbe.prisma @@ -25,6 +25,11 @@ model BedarfsausweisGewerbe { bauteilaktivierung Boolean? @default(false) klimatisierung Boolean? @default(false) + nachweistyp AusweisTyp @default(Standard) + + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/GEGNachweisGewerbe.prisma b/prisma/schema/GEGNachweisGewerbe.prisma index b7f39cca..3fb83957 100644 --- a/prisma/schema/GEGNachweisGewerbe.prisma +++ b/prisma/schema/GEGNachweisGewerbe.prisma @@ -16,6 +16,11 @@ model GEGNachweisGewerbe { /// @zod.describe("Beschreibung des Bauvorhabens") beschreibung String? @db.Text + nachweistyp AusweisTyp @default(Standard) + + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/prisma/schema/GEGNachweisWohnen.prisma b/prisma/schema/GEGNachweisWohnen.prisma index c4b747b0..951e1fa3 100644 --- a/prisma/schema/GEGNachweisWohnen.prisma +++ b/prisma/schema/GEGNachweisWohnen.prisma @@ -16,6 +16,11 @@ model GEGNachweisWohnen { /// @zod.describe("Beschreibung des Bauvorhabens") beschreibung String? @db.Text + nachweistyp AusweisTyp @default(Standard) + + created_at DateTime @default(now()) + updated_at DateTime @updatedAt + /// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört") benutzer_id String? benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index af572bf4..932430d6 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -12,7 +12,6 @@ export const createCaller = createCallerFactory({ "admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), - "ausweise": await import("../src/pages/api/ausweise/index.ts"), "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "auth/access-token": await import("../src/pages/api/auth/access-token.ts"), "auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"), @@ -21,6 +20,7 @@ export const createCaller = createCallerFactory({ "bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"), "bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"), "bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"), + "ausweise": await import("../src/pages/api/ausweise/index.ts"), "bilder/[id]": await import("../src/pages/api/bilder/[id].ts"), "geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"), "geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"), diff --git a/src/client/lib/nachweisSpeichern.ts b/src/client/lib/nachweisSpeichern.ts index 5dc8ed4d..8752bece 100644 --- a/src/client/lib/nachweisSpeichern.ts +++ b/src/client/lib/nachweisSpeichern.ts @@ -4,10 +4,10 @@ import { exclude } from "#lib/exclude.js"; import Cookies from "js-cookie"; import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js"; import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js"; -import { Enums } from "#lib/client/prisma.js"; +import { BedarfsausweisGewerbe, Enums, GEGNachweisGewerbe, GEGNachweisWohnen } from "#lib/client/prisma.js"; export async function nachweisSpeichern( - nachweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient, + nachweis: BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe, objekt: ObjektClient, aufnahme: AufnahmeClient, bilder: BildClient[], diff --git a/src/components/Ausweis/ButtonWeiterHilfe.svelte b/src/components/Ausweis/ButtonWeiterHilfe.svelte index 8e616e77..0049f552 100644 --- a/src/components/Ausweis/ButtonWeiterHilfe.svelte +++ b/src/components/Ausweis/ButtonWeiterHilfe.svelte @@ -5,12 +5,12 @@ import Overlay from "#components/Overlay.svelte"; import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte"; - import { AusweisTyp, Enums } from "#lib/client/prisma.js"; + import { AusweisTyp, BedarfsausweisGewerbe, Enums } from "#lib/client/prisma.js"; import { openWindowWithPost } from "#lib/helpers/window.js"; import { PRICES } from "#lib/constants.js"; import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js"; - export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient; + export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | BedarfsausweisGewerbe; export let bilder: BildClient[]; export let unterlagen: UnterlageClient[] = []; export let user: BenutzerClient | null; @@ -71,7 +71,7 @@ let result: Awaited> | Awaited> | null = null; if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) { - result = await nachweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart) + result = await nachweisSpeichern({ ...ausweis, nachweistyp: ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart) ausweis.id = result.nachweis_id; } else { result = await ausweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, ausweisart) diff --git a/src/components/Ausweis/types.ts b/src/components/Ausweis/types.ts index be1410fa..b1ca6604 100644 --- a/src/components/Ausweis/types.ts +++ b/src/components/Ausweis/types.ts @@ -107,7 +107,7 @@ export const UUidWithPrefix = z.string().refine((value) => { return false; }) -export function getAusweisartFromUUID(id: string): Enums.Ausweisart | null { +export function getAusweisartFromId(id: string): Enums.Ausweisart | null { if (!UUidWithPrefix.safeParse(id).success) { return null } diff --git a/src/components/AusweisPruefenBox.svelte b/src/components/AusweisPruefenBox.svelte index c68b5435..c782deeb 100644 --- a/src/components/AusweisPruefenBox.svelte +++ b/src/components/AusweisPruefenBox.svelte @@ -3,7 +3,7 @@ import moment from "moment"; import { AufnahmeClient, - getAusweisartFromUUID, + getAusweisartFromId, ObjektClient, BildClient, VerbrauchsausweisWohnenClient, @@ -31,7 +31,7 @@ async function ausweisAusstellen(uid: string) { try { await api.admin.ausstellen.GET.fetch({ - uid_ausweis: uid + id_ausweis: uid }, { headers: { "Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}` @@ -49,7 +49,7 @@ - const ausweisArt = getAusweisartFromUUID(ausweis.id) + const ausweisArt = getAusweisartFromId(ausweis.id) let verbrauchWWGesamt_1 = ""; let verbrauchWWGesamt_2 = ""; diff --git a/src/components/Dashboard/DashboardAusweis.svelte b/src/components/Dashboard/DashboardAusweis.svelte index 49a6cad9..8d0efafe 100644 --- a/src/components/Dashboard/DashboardAusweis.svelte +++ b/src/components/Dashboard/DashboardAusweis.svelte @@ -1,5 +1,5 @@ diff --git a/src/components/FileGrid.svelte b/src/components/FileGrid.svelte index 6b8bad6c..243dacec 100644 --- a/src/components/FileGrid.svelte +++ b/src/components/FileGrid.svelte @@ -8,10 +8,11 @@ export let max: number = Infinity; export let min: number = 1; export let name: string = ""; - export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient; + export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | BedarfsausweisGewerbe; export let objekt: ObjektClient; import mime from "mime-types"; import { api } from "astro-typesafe-api/client"; + import { BedarfsausweisGewerbe } from "#lib/client/prisma.js"; function getAllFiles(this: HTMLInputElement) { diff --git a/src/components/GEGNachweis/GEGAusweisart.svelte b/src/components/GEGNachweis/GEGAusweisart.svelte index 4cf62736..0b8e98bc 100644 --- a/src/components/GEGNachweis/GEGAusweisart.svelte +++ b/src/components/GEGNachweis/GEGAusweisart.svelte @@ -7,7 +7,7 @@ import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js"; import { addNotification, deleteNotification } from "#components/Notifications/shared.js"; import TagInput from "../TagInput.svelte"; - import { Enums } from "#lib/client/prisma.js"; + import { BedarfsausweisGewerbe, Enums } from "#lib/client/prisma.js"; import { AufnahmeClient, ObjektClient, @@ -16,7 +16,7 @@ export let objekt: ObjektClient; export let ausweis: - GEGNachweisWohnenClient; + BedarfsausweisGewerbe; export let aufnahme: AufnahmeClient; export let ausweisart: Enums.Ausweisart; diff --git a/src/components/UploadImages.svelte b/src/components/UploadImages.svelte index 0b9c2c36..0180b817 100644 --- a/src/components/UploadImages.svelte +++ b/src/components/UploadImages.svelte @@ -1,6 +1,7 @@