This commit is contained in:
Moritz Utcke
2025-02-22 10:46:07 +11:00
parent 21e87339b9
commit d3ca67399c
9 changed files with 132 additions and 117 deletions

View File

@@ -47,6 +47,7 @@ restore-backup:
install-dependencies: install-dependencies:
bun install bun install
bunx prisma generate
all: all:
mkdir -p ~/logs mkdir -p ~/logs

View File

@@ -15,11 +15,12 @@ generatorHandler({
const enums = options.dmmf.datamodel.enums; const enums = options.dmmf.datamodel.enums;
const output = enums.map((e) => { const output = enums.map((e) => {
let enumString = `export enum ${e.name} {\n`; let enumString = `export const ${e.name} = {\n`;
e.values.forEach(({ name: value }) => { e.values.forEach(({ name: value }) => {
enumString += ` ${value} = "${value}",\n`; enumString += ` ${value}: "${value}",\n`;
}); });
enumString += `};\n\n`; enumString += `} as const;\n\n`;
enumString += `export type ${e.name} = (typeof ${e.name})[keyof typeof ${e.name}];\n`;
return enumString; return enumString;
}); });

View File

@@ -5,33 +5,6 @@ export const createCaller = createCallerFactory({
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"), "klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"), "postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
"unterlage": await import("../src/pages/api/unterlage.ts"), "unterlage": await import("../src/pages/api/unterlage.ts"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].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"),
"objekt": await import("../src/pages/api/objekt/index.ts"),
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
"user": await import("../src/pages/api/user/index.ts"),
"user/self": await import("../src/pages/api/user/self.ts"),
"ticket": await import("../src/pages/api/ticket/index.ts"),
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
"verbrauchsausweis-gewerbe/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"aufnahme/[uid]/bilder": await import("../src/pages/api/aufnahme/[uid]/bilder.ts"),
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid]/index.ts"),
"aufnahme/[uid]/unterlagen": await import("../src/pages/api/aufnahme/[uid]/unterlagen.ts"),
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
"admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"), "admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"),
@@ -39,4 +12,31 @@ export const createCaller = createCallerFactory({
"admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"), "admin/post-ausstellen": await import("../src/pages/api/admin/post-ausstellen.ts"),
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"), "admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"), "admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
"auth/forgot-password": await import("../src/pages/api/auth/forgot-password.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
"bedarfsausweis-wohnen/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].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"),
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
"objekt": await import("../src/pages/api/objekt/index.ts"),
"ticket": await import("../src/pages/api/ticket/index.ts"),
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
"user": await import("../src/pages/api/user/index.ts"),
"user/self": await import("../src/pages/api/user/self.ts"),
"verbrauchsausweis-gewerbe/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"verbrauchsausweis-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
"aufnahme/[uid]/bilder": await import("../src/pages/api/aufnahme/[uid]/bilder.ts"),
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid]/index.ts"),
"aufnahme/[uid]/unterlagen": await import("../src/pages/api/aufnahme/[uid]/unterlagen.ts"),
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),
}) })

View File

@@ -7,7 +7,7 @@
import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js"; import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js";
import { addNotification, deleteNotification } from "#components/Notifications/shared.js"; import { addNotification, deleteNotification } from "#components/Notifications/shared.js";
import TagInput from "../TagInput.svelte"; import TagInput from "../TagInput.svelte";
import { Enums } from "#lib/client/prisma"; import { Enums } from "#lib/client/prisma.js";
import { import {
BedarfsausweisWohnenClient, BedarfsausweisWohnenClient,
AufnahmeClient, AufnahmeClient,

View File

@@ -7,7 +7,7 @@
import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js"; import { auditHeizungGebaeudeBaujahr } from "../Verbrauchsausweis/audits/HeizungGebaeudeBaujahr.js";
import { addNotification, deleteNotification } from "#components/Notifications/shared.js"; import { addNotification, deleteNotification } from "#components/Notifications/shared.js";
import TagInput from "../TagInput.svelte"; import TagInput from "../TagInput.svelte";
import { Enums } from "#lib/client/prisma"; import { Enums } from "#lib/client/prisma.js";
import { import {
AufnahmeClient, AufnahmeClient,
ObjektClient, ObjektClient,

View File

@@ -1,107 +1,120 @@
// This file was generated by a custom prisma generator, do not edit manually. // This file was generated by a custom prisma generator, do not edit manually.
export enum Heizungsstatus { export const Heizungsstatus = {
BEHEIZT = "BEHEIZT", BEHEIZT: "BEHEIZT",
UNBEHEIZT = "UNBEHEIZT", UNBEHEIZT: "UNBEHEIZT",
NICHT_VORHANDEN = "NICHT_VORHANDEN", NICHT_VORHANDEN: "NICHT_VORHANDEN",
}; } as const;
export type Heizungsstatus = (typeof Heizungsstatus)[keyof typeof Heizungsstatus];
export enum Lueftungskonzept { export const Lueftungskonzept = {
Fensterlueftung = "Fensterlueftung", Fensterlueftung: "Fensterlueftung",
Schachtlueftung = "Schachtlueftung", Schachtlueftung: "Schachtlueftung",
LueftungsanlageMitWaermerueckgewinnung = "LueftungsanlageMitWaermerueckgewinnung", LueftungsanlageMitWaermerueckgewinnung: "LueftungsanlageMitWaermerueckgewinnung",
LueftungsanlageOhneWaermerueckgewinnung = "LueftungsanlageOhneWaermerueckgewinnung", LueftungsanlageOhneWaermerueckgewinnung: "LueftungsanlageOhneWaermerueckgewinnung",
}; } as const;
export type Lueftungskonzept = (typeof Lueftungskonzept)[keyof typeof Lueftungskonzept];
export enum BenutzerRolle { export const BenutzerRolle = {
USER = "USER", USER: "USER",
ADMIN = "ADMIN", ADMIN: "ADMIN",
}; } as const;
export type BenutzerRolle = (typeof BenutzerRolle)[keyof typeof BenutzerRolle];
export enum BilderKategorie { export const BilderKategorie = {
Heizung = "Heizung", Heizung: "Heizung",
Fenster = "Fenster", Fenster: "Fenster",
Gebaeude = "Gebaeude", Gebaeude: "Gebaeude",
Daemmung = "Daemmung", Daemmung: "Daemmung",
}; } as const;
export type BilderKategorie = (typeof BilderKategorie)[keyof typeof BilderKategorie];
export enum Einpreisungsstatus { export const Einpreisungsstatus = {
open = "open", open: "open",
canceled = "canceled", canceled: "canceled",
pending = "pending", pending: "pending",
expired = "expired", expired: "expired",
}; } as const;
export type Einpreisungsstatus = (typeof Einpreisungsstatus)[keyof typeof Einpreisungsstatus];
export enum Bezahlmethoden { export const Bezahlmethoden = {
paypal = "paypal", paypal: "paypal",
giropay = "giropay", giropay: "giropay",
sofort = "sofort", sofort: "sofort",
creditcard = "creditcard", creditcard: "creditcard",
rechnung = "rechnung", rechnung: "rechnung",
}; } as const;
export type Bezahlmethoden = (typeof Bezahlmethoden)[keyof typeof Bezahlmethoden];
export enum Rechnungsstatus { export const Rechnungsstatus = {
open = "open", open: "open",
canceled = "canceled", canceled: "canceled",
pending = "pending", pending: "pending",
authorized = "authorized", authorized: "authorized",
expired = "expired", expired: "expired",
failed = "failed", failed: "failed",
paid = "paid", paid: "paid",
}; } as const;
export type Rechnungsstatus = (typeof Rechnungsstatus)[keyof typeof Rechnungsstatus];
export enum AusweisTyp { export const AusweisTyp = {
Standard = "Standard", Standard: "Standard",
Beratung = "Beratung", Beratung: "Beratung",
Offline = "Offline", Offline: "Offline",
}; } as const;
export type AusweisTyp = (typeof AusweisTyp)[keyof typeof AusweisTyp];
export enum TicketStatus { export const TicketStatus = {
OFFEN = "OFFEN", OFFEN: "OFFEN",
IN_BEARBEITUNG = "IN_BEARBEITUNG", IN_BEARBEITUNG: "IN_BEARBEITUNG",
IN_WARTESCHLEIFE = "IN_WARTESCHLEIFE", IN_WARTESCHLEIFE: "IN_WARTESCHLEIFE",
GESCHLOSSEN = "GESCHLOSSEN", GESCHLOSSEN: "GESCHLOSSEN",
GELOEST = "GELOEST", GELOEST: "GELOEST",
}; } as const;
export type TicketStatus = (typeof TicketStatus)[keyof typeof TicketStatus];
export enum UnterlagenKategorie { export const UnterlagenKategorie = {
Grundriss = "Grundriss", Grundriss: "Grundriss",
Sonstiges = "Sonstiges", Sonstiges: "Sonstiges",
}; } as const;
export type UnterlagenKategorie = (typeof UnterlagenKategorie)[keyof typeof UnterlagenKategorie];
export enum Ausstellgrund { export const Ausstellgrund = {
Neubau = "Neubau", Neubau: "Neubau",
Vermietung = "Vermietung", Vermietung: "Vermietung",
Verkauf = "Verkauf", Verkauf: "Verkauf",
Modernisierung = "Modernisierung", Modernisierung: "Modernisierung",
Sonstiges = "Sonstiges", Sonstiges: "Sonstiges",
}; } as const;
export type Ausstellgrund = (typeof Ausstellgrund)[keyof typeof Ausstellgrund];
export enum Ausweisart { export const Ausweisart = {
VerbrauchsausweisWohnen = "VerbrauchsausweisWohnen", VerbrauchsausweisWohnen: "VerbrauchsausweisWohnen",
VerbrauchsausweisGewerbe = "VerbrauchsausweisGewerbe", VerbrauchsausweisGewerbe: "VerbrauchsausweisGewerbe",
BedarfsausweisWohnen = "BedarfsausweisWohnen", BedarfsausweisWohnen: "BedarfsausweisWohnen",
BedarfsausweisGewerbe = "BedarfsausweisGewerbe", BedarfsausweisGewerbe: "BedarfsausweisGewerbe",
GEGNachweisWohnen = "GEGNachweisWohnen", GEGNachweisWohnen: "GEGNachweisWohnen",
GEGNachweisBedarfsausweis = "GEGNachweisBedarfsausweis", GEGNachweisBedarfsausweis: "GEGNachweisBedarfsausweis",
GEGNachweisGewerbe = "GEGNachweisGewerbe", GEGNachweisGewerbe: "GEGNachweisGewerbe",
}; } as const;
export type Ausweisart = (typeof Ausweisart)[keyof typeof Ausweisart];
export enum Service { export const Service = {
Telefonberatung = "Telefonberatung", Telefonberatung: "Telefonberatung",
Aushang = "Aushang", Aushang: "Aushang",
Qualitaetsdruck = "Qualitaetsdruck", Qualitaetsdruck: "Qualitaetsdruck",
SameDay = "SameDay", SameDay: "SameDay",
}; } as const;
export type Service = (typeof Service)[keyof typeof Service];

View File

@@ -1,6 +1,6 @@
import { PrismaClient } from "@prisma/client"; import { PrismaClient } from "@prisma/client";
export type * from "@prisma/client" export type * from "@prisma/client"
export { $Enums as Enums } from "@prisma/client"; export * as Enums from "../../generated/enums.js";
export * from "../../generated/zod/index.js"; export * from "../../generated/zod/index.js";
export const prisma = new PrismaClient({ export const prisma = new PrismaClient({

View File

@@ -11,8 +11,8 @@ import {
Enums, Enums,
VerbrauchsausweisGewerbe, VerbrauchsausweisGewerbe,
VerbrauchsausweisWohnen, VerbrauchsausweisWohnen,
} from "#lib/client/prisma"; } from "#lib/server/prisma.js";
import { prisma } from "#lib/server/prisma"; import { prisma } from "#lib/server/prisma.js";
import { APIError, defineApiRoute } from "astro-typesafe-api/server"; import { APIError, defineApiRoute } from "astro-typesafe-api/server";
import moment from "moment"; import moment from "moment";
import { z } from "zod"; import { z } from "zod";

View File

@@ -1,7 +1,7 @@
import moment from "moment"; import moment from "moment";
import newUserIdMap from "./new-user-id-map.json" assert { type: "json" }; import newUserIdMap from "./new-user-id-map.json" assert { type: "json" };
import processed from "./processed.json" assert { type: "json" }; import processed from "./processed.json" assert { type: "json" };
import { Benutzer, Enums, prisma } from "#lib/server/prisma"; import { Benutzer, Enums, prisma } from "#lib/server/prisma.js";
import * as fs from "fs"; import * as fs from "fs";
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";
import { hashPassword } from "#lib/password.js"; import { hashPassword } from "#lib/password.js";