diff --git a/prisma/migrations/20250925140906_bild_benutzer_id/migration.sql b/prisma/migrations/20250925140906_bild_benutzer_id/migration.sql new file mode 100644 index 00000000..0bea90f0 --- /dev/null +++ b/prisma/migrations/20250925140906_bild_benutzer_id/migration.sql @@ -0,0 +1,5 @@ +-- AlterTable +ALTER TABLE "Bild" ADD COLUMN "benutzer_id" TEXT; + +-- AddForeignKey +ALTER TABLE "Bild" ADD CONSTRAINT "Bild_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION; diff --git a/prisma/migrations/20250925141939_float_to_int/migration.sql b/prisma/migrations/20250925141939_float_to_int/migration.sql new file mode 100644 index 00000000..98d71b4e --- /dev/null +++ b/prisma/migrations/20250925141939_float_to_int/migration.sql @@ -0,0 +1,10 @@ +/* + Warnings: + + - You are about to alter the column `flaeche` on the `Aufnahme` table. The data in that column could be lost. The data in that column will be cast from `DoublePrecision` to `Integer`. + - You are about to alter the column `nutzflaeche` on the `Aufnahme` table. The data in that column could be lost. The data in that column will be cast from `DoublePrecision` to `Integer`. + +*/ +-- AlterTable +ALTER TABLE "Aufnahme" ALTER COLUMN "flaeche" SET DATA TYPE INTEGER, +ALTER COLUMN "nutzflaeche" SET DATA TYPE INTEGER; diff --git a/prisma/schema/Aufnahme.prisma b/prisma/schema/Aufnahme.prisma index 3ede54df..07d1d032 100644 --- a/prisma/schema/Aufnahme.prisma +++ b/prisma/schema/Aufnahme.prisma @@ -29,9 +29,9 @@ model Aufnahme { /// @zod.describe("Anzahl der (Wohn)Einheiten im Gebäude") einheiten Int? /// @zod.describe("Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden") - flaeche Float? + flaeche Int? /// @zod.describe("(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche") - nutzflaeche Float? + nutzflaeche Int? /// @zod.describe("Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen") saniert Boolean? /// @zod.describe("Ob ein Keller vorhanden, beheizt oder unbeheizt ist") diff --git a/prisma/schema/Benutzer.prisma b/prisma/schema/Benutzer.prisma index 836889fa..1314db96 100644 --- a/prisma/schema/Benutzer.prisma +++ b/prisma/schema/Benutzer.prisma @@ -53,6 +53,7 @@ model Benutzer { @@map("benutzer") Provisionen Provisionen[] + bilder Bild[] } diff --git a/prisma/schema/Bild.prisma b/prisma/schema/Bild.prisma index 88ddf3ed..2bfdee62 100644 --- a/prisma/schema/Bild.prisma +++ b/prisma/schema/Bild.prisma @@ -15,6 +15,8 @@ model Bild { created_at DateTime @default(now()) updated_at DateTime @updatedAt @default(now()) + benutzer_id String? + benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction) aufnahme_id String? aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction) } \ No newline at end of file diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index a9150c03..18f06c89 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -5,6 +5,7 @@ export const createCaller = createCallerFactory({ "klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"), "postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"), "unterlage": await import("../src/pages/api/unterlage.ts"), + "aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/bedarfsausweis-ausstellen": await import("../src/pages/api/admin/bedarfsausweis-ausstellen.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), @@ -12,11 +13,10 @@ export const createCaller = createCallerFactory({ "admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-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"), "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), + "ausweise": await import("../src/pages/api/ausweise/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"), "bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"), @@ -31,10 +31,10 @@ export const createCaller = createCallerFactory({ "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung": await import("../src/pages/api/rechnung/index.ts"), "ticket": await import("../src/pages/api/ticket/index.ts"), - "user": await import("../src/pages/api/user/index.ts"), - "user/self": await import("../src/pages/api/user/self.ts"), "verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"), "verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"), + "user": await import("../src/pages/api/user/index.ts"), + "user/self": await import("../src/pages/api/user/self.ts"), "verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"), "verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"), "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), diff --git a/src/components/Ausweis/GebaeudeDaten.svelte b/src/components/Ausweis/GebaeudeDaten.svelte index 2f1ff4fd..f06764b5 100644 --- a/src/components/Ausweis/GebaeudeDaten.svelte +++ b/src/components/Ausweis/GebaeudeDaten.svelte @@ -97,10 +97,9 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 data-test="flaeche" maxlength="4" type="number" + step="1" required autocomplete="off" - data-rule-minlength="2" - data-msg-minlength="min. 2 Zeichen" bind:value={aufnahme.flaeche} /> @@ -124,6 +123,7 @@ xl:grid-cols-3 xl:gap-x-8 xl:gap-y-8 data-test="nutzflaeche" maxlength="4" type="number" + step="1" required bind:value={aufnahme.nutzflaeche} /> diff --git a/src/components/UploadImages.svelte b/src/components/UploadImages.svelte index 6bd0aa27..77478bce 100644 --- a/src/components/UploadImages.svelte +++ b/src/components/UploadImages.svelte @@ -1,6 +1,7 @@