Merge pull request #499 from IBCornelsen/Jens

Preise hinzugefügt
This commit is contained in:
Jens Cornelsen
2025-04-07 06:46:47 +02:00
committed by GitHub
9 changed files with 896 additions and 31 deletions

View File

@@ -0,0 +1,810 @@
-- CreateEnum
CREATE TYPE "Heizungsstatus" AS ENUM ('BEHEIZT', 'UNBEHEIZT', 'NICHT_VORHANDEN');
-- CreateEnum
CREATE TYPE "Lueftungskonzept" AS ENUM ('Fensterlueftung', 'Schachtlueftung', 'LueftungsanlageMitWaermerueckgewinnung', 'LueftungsanlageOhneWaermerueckgewinnung');
-- CreateEnum
CREATE TYPE "BenutzerRolle" AS ENUM ('USER', 'ADMIN');
-- CreateEnum
CREATE TYPE "BilderKategorie" AS ENUM ('Heizung', 'Fenster', 'Gebaeude', 'Daemmung', 'AnlagenTechnik');
-- CreateEnum
CREATE TYPE "Einpreisungsstatus" AS ENUM ('open', 'canceled', 'pending', 'expired');
-- CreateEnum
CREATE TYPE "Bezahlmethoden" AS ENUM ('paypal', 'giropay', 'sofort', 'creditcard', 'rechnung');
-- CreateEnum
CREATE TYPE "Rechnungsstatus" AS ENUM ('open', 'canceled', 'pending', 'authorized', 'expired', 'failed', 'paid');
-- CreateEnum
CREATE TYPE "AusweisTyp" AS ENUM ('Standard', 'standardXL', 'Beratung', 'BeratungXL', 'Offline', 'OfflineXL');
-- CreateEnum
CREATE TYPE "TicketStatus" AS ENUM ('OFFEN', 'IN_BEARBEITUNG', 'IN_WARTESCHLEIFE', 'GESCHLOSSEN', 'GELOEST');
-- CreateEnum
CREATE TYPE "UnterlagenKategorie" AS ENUM ('Grundriss', 'Sonstiges');
-- CreateEnum
CREATE TYPE "Ausstellgrund" AS ENUM ('Neubau', 'Vermietung', 'Verkauf', 'Modernisierung', 'Sonstiges');
-- CreateEnum
CREATE TYPE "Ausweisart" AS ENUM ('VerbrauchsausweisWohnen', 'VerbrauchsausweisGewerbe', 'BedarfsausweisWohnen', 'BedarfsausweisGewerbe', 'GEGNachweisWohnen', 'GEGNachweisGewerbe');
-- CreateEnum
CREATE TYPE "Service" AS ENUM ('Telefonberatung', 'Aushang', 'Qualitaetsdruck', 'SameDay');
-- CreateTable
CREATE TABLE "Anteilshaber" (
"id" VARCHAR(10) NOT NULL,
"rolle" VARCHAR,
"privilegien" BIGINT,
"benutzer_id" TEXT NOT NULL,
"objekt_id" TEXT NOT NULL,
CONSTRAINT "Anteilshaber_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "ApiRequests" (
"id" VARCHAR(10) NOT NULL,
"date" TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"ip" VARCHAR(50) NOT NULL,
"method" VARCHAR(10) NOT NULL,
"path" VARCHAR(100) NOT NULL,
"status" INTEGER NOT NULL,
"responseTime" DOUBLE PRECISION NOT NULL,
"responseSize" INTEGER NOT NULL,
"userAgent" VARCHAR(500) NOT NULL,
"user_id" TEXT,
CONSTRAINT "ApiRequests_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Aufnahme" (
"id" VARCHAR(10) NOT NULL,
"benutzer_id" TEXT,
"gebaeudetyp" VARCHAR,
"gebaeudeteil" VARCHAR,
"baujahr_gebaeude" INTEGER[],
"baujahr_heizung" INTEGER[],
"baujahr_klima" INTEGER[],
"einheiten" INTEGER,
"flaeche" INTEGER,
"nutzflaeche" INTEGER,
"saniert" BOOLEAN,
"keller" "Heizungsstatus",
"dachgeschoss" "Heizungsstatus",
"lueftung" "Lueftungskonzept",
"kuehlung" VARCHAR(50),
"leerstand" INTEGER,
"alternative_heizung" BOOLEAN,
"alternative_warmwasser" BOOLEAN,
"alternative_lueftung" BOOLEAN,
"alternative_kuehlung" BOOLEAN,
"erstellungsdatum" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
"zentralheizung" BOOLEAN,
"solarsystem_warmwasser" BOOLEAN,
"warmwasser_rohre_gedaemmt" BOOLEAN,
"niedertemperatur_kessel" BOOLEAN,
"brennwert_kessel" BOOLEAN,
"heizungsrohre_gedaemmt" BOOLEAN,
"standard_kessel" BOOLEAN,
"waermepumpe" BOOLEAN,
"raum_temperatur_regler" BOOLEAN,
"photovoltaik" BOOLEAN,
"durchlauf_erhitzer" BOOLEAN,
"einzelofen" BOOLEAN,
"zirkulation" BOOLEAN,
"einfach_verglasung" BOOLEAN,
"dreifach_verglasung" BOOLEAN,
"fenster_teilweise_undicht" BOOLEAN,
"doppel_verglasung" BOOLEAN,
"fenster_dicht" BOOLEAN,
"rolllaeden_kaesten_gedaemmt" BOOLEAN,
"isolier_verglasung" BOOLEAN,
"tueren_undicht" BOOLEAN,
"tueren_dicht" BOOLEAN,
"dachgeschoss_gedaemmt" BOOLEAN,
"keller_decke_gedaemmt" BOOLEAN,
"keller_wand_gedaemmt" BOOLEAN,
"aussenwand_gedaemmt" BOOLEAN,
"oberste_geschossdecke_gedaemmt" BOOLEAN,
"aussenwand_min_12cm_gedaemmt" BOOLEAN,
"dachgeschoss_min_12cm_gedaemmt" BOOLEAN,
"oberste_geschossdecke_min_12cm_gedaemmt" BOOLEAN,
"objekt_id" TEXT NOT NULL,
CONSTRAINT "Aufnahme_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "BedarfsausweisGewerbe" (
"id" VARCHAR(10) NOT NULL,
"ausstellgrund" "Ausstellgrund",
"keller_beheizt" BOOLEAN,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"abluftanlage" BOOLEAN DEFAULT false,
"zu_abluftanlage" BOOLEAN DEFAULT false,
"konditionierung_der_zuluft" BOOLEAN DEFAULT false,
"luftheizung" BOOLEAN DEFAULT false,
"hallenheizung" BOOLEAN DEFAULT false,
"dunkelstrahler" BOOLEAN DEFAULT false,
"direktheizung" BOOLEAN DEFAULT false,
"infrarotstrahler" BOOLEAN DEFAULT false,
"fussbodenheizung" BOOLEAN DEFAULT false,
"bauteilaktivierung" BOOLEAN DEFAULT false,
"klimatisierung" BOOLEAN DEFAULT false,
"nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"benutzer_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
"rechnung_id" TEXT,
"geg_einpreisung_id" TEXT,
CONSTRAINT "BedarfsausweisGewerbe_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "BedarfsausweisWohnen" (
"id" VARCHAR(10) NOT NULL,
"benutzer_id" TEXT,
"ausstellgrund" "Ausstellgrund",
"registriernummer" VARCHAR,
"alternative_heizung" BOOLEAN,
"alternative_warmwasser" BOOLEAN,
"alternative_lueftung" BOOLEAN,
"alternative_kuehlung" BOOLEAN,
"energieeffizienzklasse" VARCHAR(5),
"ausstellungsdatum" TIMESTAMP(3),
"boxpruefung" BOOLEAN DEFAULT false,
"anzahl_vollgeschosse" INTEGER,
"geschosshoehe" DOUBLE PRECISION,
"anzahl_gauben" INTEGER,
"breite_gauben" DOUBLE PRECISION,
"masse_a" DOUBLE PRECISION,
"masse_b" DOUBLE PRECISION,
"masse_c" DOUBLE PRECISION,
"masse_d" DOUBLE PRECISION,
"masse_e" DOUBLE PRECISION,
"masse_f" DOUBLE PRECISION,
"fensterflaeche_so_sw" DOUBLE PRECISION,
"fensterflaeche_nw_no" DOUBLE PRECISION,
"aussenwandflaeche_unbeheizt" DOUBLE PRECISION,
"dachflaeche" DOUBLE PRECISION,
"deckenflaeche" DOUBLE PRECISION,
"dach_u_wert" DOUBLE PRECISION,
"decke_u_wert" DOUBLE PRECISION,
"aussenwand_flaeche" DOUBLE PRECISION,
"aussenwand_u_wert" DOUBLE PRECISION,
"fussboden_flaeche" DOUBLE PRECISION,
"fussboden_u_wert" DOUBLE PRECISION,
"volumen" DOUBLE PRECISION,
"dicht" BOOLEAN,
"fenster_flaeche_1" DOUBLE PRECISION,
"fenster_art_1" DOUBLE PRECISION,
"fenster_flaeche_2" DOUBLE PRECISION,
"fenster_art_2" DOUBLE PRECISION,
"dachfenster_flaeche" DOUBLE PRECISION,
"dachfenster_art" DOUBLE PRECISION,
"haustuer_flaeche" DOUBLE PRECISION,
"haustuer_art" DOUBLE PRECISION,
"dach_bauart" VARCHAR,
"decke_bauart" VARCHAR,
"dach_daemmung" DOUBLE PRECISION,
"decke_daemmung" DOUBLE PRECISION,
"aussenwand_daemmung" DOUBLE PRECISION,
"boden_daemmung" DOUBLE PRECISION,
"aussenwand_bauart" VARCHAR,
"boden_bauart" VARCHAR,
"warmwasser_verteilung" VARCHAR,
"warmwasser_speicherung" VARCHAR,
"warmwasser_erzeugung" VARCHAR,
"heizung_zentral" BOOLEAN,
"heizung_verteilung" VARCHAR,
"heizung_speicherung" VARCHAR,
"waerme_erzeugung_heizung" VARCHAR,
"anteil_zusatzheizung" DOUBLE PRECISION,
"kollektor_flaeche" DOUBLE PRECISION,
"ausgestellt" BOOLEAN DEFAULT false,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"prueftext" VARCHAR(1000),
"beschreibung" TEXT,
"kontrolldatei_angefragt" BOOLEAN DEFAULT false,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"rechnung_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
CONSTRAINT "BedarfsausweisWohnen_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "benutzer" (
"id" VARCHAR(10) NOT NULL,
"name" VARCHAR(50),
"vorname" VARCHAR(50),
"email" VARCHAR(255) NOT NULL,
"passwort" VARCHAR(255) NOT NULL,
"profilbild" VARCHAR,
"plz" VARCHAR(5),
"ort" VARCHAR(50),
"adresse" VARCHAR(100),
"telefon" VARCHAR(50),
"anrede" VARCHAR(50),
"rolle" "BenutzerRolle" NOT NULL DEFAULT 'USER',
"firma" TEXT,
"lex_office_id" TEXT,
"verified" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "benutzer_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Bild" (
"id" VARCHAR(10) NOT NULL,
"kategorie" "BilderKategorie" NOT NULL,
"name" TEXT NOT NULL,
"aufnahme_id" TEXT,
CONSTRAINT "Bild_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Event" (
"id" VARCHAR(10) NOT NULL,
"date" TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"title" VARCHAR(255) NOT NULL,
"description" TEXT,
"aufnahme_id" TEXT NOT NULL,
"benutzer_id" TEXT,
CONSTRAINT "Event_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "GEGEinpreisung" (
"id" VARCHAR(10) NOT NULL,
"empfaenger" VARCHAR,
"strasse" VARCHAR,
"plz" VARCHAR,
"ort" VARCHAR,
"zusatzzeile" VARCHAR,
"telefon" VARCHAR,
"email" VARCHAR,
"abweichende_versand_adresse" BOOLEAN DEFAULT false,
"versand_empfaenger" VARCHAR,
"versand_strasse" VARCHAR,
"versand_plz" VARCHAR,
"versand_ort" VARCHAR,
"versand_zusatzzeile" VARCHAR,
"status" "Einpreisungsstatus" NOT NULL,
"benutzer_id" TEXT,
CONSTRAINT "GEGEinpreisung_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "GEGNachweisGewerbe" (
"id" VARCHAR(10) NOT NULL,
"ausstellgrund" "Ausstellgrund",
"keller_beheizt" BOOLEAN,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"beschreibung" TEXT,
"nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"benutzer_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
"rechnung_id" TEXT,
"geg_einpreisung_id" TEXT,
CONSTRAINT "GEGNachweisGewerbe_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "GEGNachweisWohnen" (
"id" VARCHAR(10) NOT NULL,
"ausstellgrund" "Ausstellgrund",
"keller_beheizt" BOOLEAN,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"beschreibung" TEXT,
"nachweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"benutzer_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
"rechnung_id" TEXT,
"geg_einpreisung_id" TEXT,
CONSTRAINT "GEGNachweisWohnen_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Klimafaktoren" (
"id" SERIAL NOT NULL,
"plz" VARCHAR(5) NOT NULL,
"month" INTEGER NOT NULL,
"year" INTEGER NOT NULL,
"klimafaktor" DOUBLE PRECISION NOT NULL DEFAULT 1,
CONSTRAINT "Klimafaktoren_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Objekt" (
"id" VARCHAR(10) NOT NULL,
"latitude" DOUBLE PRECISION,
"longitude" DOUBLE PRECISION,
"plz" VARCHAR(5),
"ort" VARCHAR(50),
"adresse" VARCHAR(100),
"erstellungsdatum" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
"benutzer_id" TEXT,
CONSTRAINT "Objekt_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Postleitzahlen" (
"id" SERIAL NOT NULL,
"plz" VARCHAR(5) NOT NULL,
"stadt" VARCHAR(100) NOT NULL,
"bundesland" VARCHAR(100) NOT NULL,
"landkreis" VARCHAR(100) NOT NULL,
"lat" DOUBLE PRECISION NOT NULL,
"lon" DOUBLE PRECISION NOT NULL,
CONSTRAINT "Postleitzahlen_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Rechnung" (
"id" VARCHAR(10) NOT NULL,
"empfaenger" VARCHAR,
"strasse" VARCHAR,
"plz" VARCHAR,
"ort" VARCHAR,
"zusatzzeile" VARCHAR,
"telefon" VARCHAR,
"email" VARCHAR,
"abweichende_versand_adresse" BOOLEAN DEFAULT false,
"versand_empfaenger" VARCHAR,
"versand_strasse" VARCHAR,
"versand_plz" VARCHAR,
"versand_ort" VARCHAR,
"versand_zusatzzeile" VARCHAR,
"bezahlmethode" "Bezahlmethoden" NOT NULL,
"status" "Rechnungsstatus" NOT NULL,
"services" "Service"[],
"betrag" DOUBLE PRECISION NOT NULL,
"erstellt_am" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"bezahlt_am" TIMESTAMP(3),
"storniert_am" TIMESTAMP(3),
"transaktions_referenz" VARCHAR,
"benutzer_id" TEXT NOT NULL,
CONSTRAINT "Rechnung_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "RefreshTokens" (
"id" SERIAL NOT NULL,
"token" TEXT NOT NULL,
"ip" TEXT NOT NULL,
"expiry" TIMESTAMP(3) NOT NULL,
"benutzer_id" TEXT NOT NULL,
CONSTRAINT "RefreshTokens_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Tickets" (
"id" VARCHAR(10) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3),
"deleted_at" TIMESTAMP(3),
"status" "TicketStatus" NOT NULL DEFAULT 'OFFEN',
"titel" TEXT NOT NULL,
"beschreibung" TEXT NOT NULL,
"metadata" JSONB,
"email" TEXT NOT NULL,
"bearbeiter_id" TEXT,
"prioritaet" INTEGER DEFAULT 0,
"benutzer_id" TEXT,
CONSTRAINT "Tickets_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Unterlage" (
"id" VARCHAR(10) NOT NULL,
"name" TEXT,
"kategorie" TEXT,
"mime" TEXT NOT NULL,
"aufnahme_id" TEXT,
CONSTRAINT "Unterlage_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "VerbrauchsausweisGewerbe" (
"id" VARCHAR(10) NOT NULL,
"ausstellgrund" "Ausstellgrund",
"registriernummer" VARCHAR,
"zusaetzliche_heizquelle" BOOLEAN,
"einheit_1" VARCHAR(50),
"einheit_2" VARCHAR(50),
"startdatum" TIMESTAMP(6),
"verbrauch_1" INTEGER,
"verbrauch_2" INTEGER,
"verbrauch_3" INTEGER,
"verbrauch_4" INTEGER,
"verbrauch_5" INTEGER,
"verbrauch_6" INTEGER,
"brennstoff_1" VARCHAR(50),
"brennstoff_2" VARCHAR(50),
"energieeffizienzklasse" VARCHAR(5),
"ausstellungsdatum" TIMESTAMP(3),
"boxpruefung" BOOLEAN DEFAULT false,
"strom_1" INTEGER,
"strom_2" INTEGER,
"strom_3" INTEGER,
"stromverbrauch_enthaelt_heizung" BOOLEAN,
"stromverbrauch_enthaelt_warmwasser" BOOLEAN,
"stromverbrauch_enthaelt_lueftung" BOOLEAN,
"stromverbrauch_enthaelt_beleuchtung" BOOLEAN,
"stromverbrauch_enthaelt_kuehlung" BOOLEAN,
"stromverbrauch_enthaelt_sonstige" VARCHAR(50),
"kuehlung_enthalten" BOOLEAN,
"anteil_kuehlung_1" DOUBLE PRECISION,
"anteil_kuehlung_2" DOUBLE PRECISION,
"keller_beheizt" BOOLEAN,
"alternative_heizung" BOOLEAN,
"alternative_warmwasser" BOOLEAN,
"alternative_lueftung" BOOLEAN,
"alternative_kuehlung" BOOLEAN,
"warmwasser_enthalten" BOOLEAN,
"warmwasser_anteil_bekannt" BOOLEAN,
"anteil_warmwasser_1" DOUBLE PRECISION,
"anteil_warmwasser_2" DOUBLE PRECISION,
"ausgestellt" BOOLEAN DEFAULT false,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"prueftext" VARCHAR(1000),
"beschreibung" TEXT,
"kontrolldatei_angefragt" BOOLEAN DEFAULT false,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"benutzer_id" TEXT,
"rechnung_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
CONSTRAINT "VerbrauchsausweisGewerbe_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "VerbrauchsausweisWohnen" (
"id" VARCHAR(10) NOT NULL,
"ausstellgrund" "Ausstellgrund",
"registriernummer" VARCHAR,
"zusaetzliche_heizquelle" BOOLEAN,
"einheit_1" VARCHAR(50),
"einheit_2" VARCHAR(50),
"brennstoff_1" VARCHAR(50),
"brennstoff_2" VARCHAR(50),
"energieeffizienzklasse" VARCHAR(5),
"ausstellungsdatum" TIMESTAMP(3),
"boxpruefung" BOOLEAN DEFAULT false,
"startdatum" TIMESTAMPTZ(6),
"verbrauch_1" INTEGER,
"verbrauch_2" INTEGER,
"verbrauch_3" INTEGER,
"verbrauch_4" INTEGER,
"verbrauch_5" INTEGER,
"verbrauch_6" INTEGER,
"warmwasser_enthalten" BOOLEAN,
"warmwasser_anteil_bekannt" BOOLEAN,
"faktorKeller" DOUBLE PRECISION,
"alternative_heizung" BOOLEAN,
"alternative_warmwasser" BOOLEAN,
"alternative_lueftung" BOOLEAN,
"alternative_kuehlung" BOOLEAN,
"anteil_warmwasser_1" DOUBLE PRECISION,
"anteil_warmwasser_2" DOUBLE PRECISION,
"ausgestellt" BOOLEAN DEFAULT false,
"storniert" BOOLEAN DEFAULT false,
"bestellt" BOOLEAN DEFAULT false,
"zurueckgestellt" BOOLEAN DEFAULT false,
"prueftext" VARCHAR(1000),
"beschreibung" TEXT,
"kontrolldatei_angefragt" BOOLEAN DEFAULT false,
"ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"benutzer_id" TEXT,
"rechnung_id" TEXT,
"aufnahme_id" TEXT NOT NULL,
CONSTRAINT "VerbrauchsausweisWohnen_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "documenttemplates" (
"id" SERIAL NOT NULL,
"name" VARCHAR(100) NOT NULL,
"shortdescription" VARCHAR(100) NOT NULL,
"longdescription" VARCHAR(5000) NOT NULL,
"user_id" TEXT NOT NULL,
"is_private" BOOLEAN NOT NULL DEFAULT true,
"documenttype" INTEGER NOT NULL,
"filename" VARCHAR(100) NOT NULL,
"created_at" TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "PK_DOCUMENTTEMPLATES" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "documenttypes" (
"id" SERIAL NOT NULL,
"name" VARCHAR(100) NOT NULL,
"shortdescription" VARCHAR(100) NOT NULL,
"longdescription" VARCHAR(5000) NOT NULL,
CONSTRAINT "PK_DOCUMENTTYPES" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "tokens" (
"id" SERIAL NOT NULL,
"token" VARCHAR(36) NOT NULL,
"user_id" TEXT NOT NULL,
"date_created" TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"last_used" TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"times_used" INTEGER NOT NULL DEFAULT 0,
"permissions" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "PK_TOKENS" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Anteilshaber_id_key" ON "Anteilshaber"("id");
-- CreateIndex
CREATE UNIQUE INDEX "ApiRequests_id_key" ON "ApiRequests"("id");
-- CreateIndex
CREATE UNIQUE INDEX "Aufnahme_id_key" ON "Aufnahme"("id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisGewerbe_id_key" ON "BedarfsausweisGewerbe"("id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisGewerbe_aufnahme_id_key" ON "BedarfsausweisGewerbe"("aufnahme_id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisGewerbe_rechnung_id_key" ON "BedarfsausweisGewerbe"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisGewerbe_geg_einpreisung_id_key" ON "BedarfsausweisGewerbe"("geg_einpreisung_id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisWohnen_id_key" ON "BedarfsausweisWohnen"("id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisWohnen_rechnung_id_key" ON "BedarfsausweisWohnen"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "BedarfsausweisWohnen_aufnahme_id_key" ON "BedarfsausweisWohnen"("aufnahme_id");
-- CreateIndex
CREATE UNIQUE INDEX "benutzer_id_key" ON "benutzer"("id");
-- CreateIndex
CREATE UNIQUE INDEX "benutzer_email_idx" ON "benutzer"("email");
-- CreateIndex
CREATE UNIQUE INDEX "Bild_id_key" ON "Bild"("id");
-- CreateIndex
CREATE UNIQUE INDEX "Event_id_key" ON "Event"("id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGEinpreisung_id_key" ON "GEGEinpreisung"("id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisGewerbe_id_key" ON "GEGNachweisGewerbe"("id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisGewerbe_aufnahme_id_key" ON "GEGNachweisGewerbe"("aufnahme_id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisGewerbe_rechnung_id_key" ON "GEGNachweisGewerbe"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisGewerbe_geg_einpreisung_id_key" ON "GEGNachweisGewerbe"("geg_einpreisung_id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisWohnen_id_key" ON "GEGNachweisWohnen"("id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisWohnen_aufnahme_id_key" ON "GEGNachweisWohnen"("aufnahme_id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisWohnen_rechnung_id_key" ON "GEGNachweisWohnen"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "GEGNachweisWohnen_geg_einpreisung_id_key" ON "GEGNachweisWohnen"("geg_einpreisung_id");
-- CreateIndex
CREATE UNIQUE INDEX "Klimafaktoren_plz_month_year_key" ON "Klimafaktoren"("plz", "month", "year");
-- CreateIndex
CREATE UNIQUE INDEX "Objekt_id_key" ON "Objekt"("id");
-- CreateIndex
CREATE UNIQUE INDEX "Rechnung_id_key" ON "Rechnung"("id");
-- CreateIndex
CREATE UNIQUE INDEX "Rechnung_transaktions_referenz_key" ON "Rechnung"("transaktions_referenz");
-- CreateIndex
CREATE UNIQUE INDEX "RefreshTokens_token_key" ON "RefreshTokens"("token");
-- CreateIndex
CREATE UNIQUE INDEX "Tickets_id_key" ON "Tickets"("id");
-- CreateIndex
CREATE UNIQUE INDEX "Unterlage_id_key" ON "Unterlage"("id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisGewerbe_id_key" ON "VerbrauchsausweisGewerbe"("id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisGewerbe_rechnung_id_key" ON "VerbrauchsausweisGewerbe"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisGewerbe_aufnahme_id_key" ON "VerbrauchsausweisGewerbe"("aufnahme_id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisWohnen_id_key" ON "VerbrauchsausweisWohnen"("id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisWohnen_rechnung_id_key" ON "VerbrauchsausweisWohnen"("rechnung_id");
-- CreateIndex
CREATE UNIQUE INDEX "VerbrauchsausweisWohnen_aufnahme_id_key" ON "VerbrauchsausweisWohnen"("aufnahme_id");
-- AddForeignKey
ALTER TABLE "Anteilshaber" ADD CONSTRAINT "Anteilshaber_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Anteilshaber" ADD CONSTRAINT "Anteilshaber_objekt_id_fkey" FOREIGN KEY ("objekt_id") REFERENCES "Objekt"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "ApiRequests" ADD CONSTRAINT "ApiRequests_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Aufnahme" ADD CONSTRAINT "Aufnahme_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Aufnahme" ADD CONSTRAINT "Aufnahme_objekt_id_fkey" FOREIGN KEY ("objekt_id") REFERENCES "Objekt"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisGewerbe" ADD CONSTRAINT "BedarfsausweisGewerbe_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisGewerbe" ADD CONSTRAINT "BedarfsausweisGewerbe_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisGewerbe" ADD CONSTRAINT "BedarfsausweisGewerbe_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisGewerbe" ADD CONSTRAINT "BedarfsausweisGewerbe_geg_einpreisung_id_fkey" FOREIGN KEY ("geg_einpreisung_id") REFERENCES "GEGEinpreisung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisWohnen" ADD CONSTRAINT "BedarfsausweisWohnen_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisWohnen" ADD CONSTRAINT "BedarfsausweisWohnen_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "BedarfsausweisWohnen" ADD CONSTRAINT "BedarfsausweisWohnen_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Bild" ADD CONSTRAINT "Bild_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Event" ADD CONSTRAINT "Event_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Event" ADD CONSTRAINT "Event_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGEinpreisung" ADD CONSTRAINT "GEGEinpreisung_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisGewerbe" ADD CONSTRAINT "GEGNachweisGewerbe_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisGewerbe" ADD CONSTRAINT "GEGNachweisGewerbe_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisGewerbe" ADD CONSTRAINT "GEGNachweisGewerbe_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisGewerbe" ADD CONSTRAINT "GEGNachweisGewerbe_geg_einpreisung_id_fkey" FOREIGN KEY ("geg_einpreisung_id") REFERENCES "GEGEinpreisung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisWohnen" ADD CONSTRAINT "GEGNachweisWohnen_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisWohnen" ADD CONSTRAINT "GEGNachweisWohnen_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisWohnen" ADD CONSTRAINT "GEGNachweisWohnen_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "GEGNachweisWohnen" ADD CONSTRAINT "GEGNachweisWohnen_geg_einpreisung_id_fkey" FOREIGN KEY ("geg_einpreisung_id") REFERENCES "GEGEinpreisung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "Objekt" ADD CONSTRAINT "Objekt_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Rechnung" ADD CONSTRAINT "Rechnung_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "RefreshTokens" ADD CONSTRAINT "RefreshTokens_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Tickets" ADD CONSTRAINT "Tickets_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Tickets" ADD CONSTRAINT "Tickets_bearbeiter_id_fkey" FOREIGN KEY ("bearbeiter_id") REFERENCES "benutzer"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Unterlage" ADD CONSTRAINT "Unterlage_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisGewerbe" ADD CONSTRAINT "VerbrauchsausweisGewerbe_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisGewerbe" ADD CONSTRAINT "VerbrauchsausweisGewerbe_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisGewerbe" ADD CONSTRAINT "VerbrauchsausweisGewerbe_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisWohnen" ADD CONSTRAINT "VerbrauchsausweisWohnen_benutzer_id_fkey" FOREIGN KEY ("benutzer_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisWohnen" ADD CONSTRAINT "VerbrauchsausweisWohnen_rechnung_id_fkey" FOREIGN KEY ("rechnung_id") REFERENCES "Rechnung"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "VerbrauchsausweisWohnen" ADD CONSTRAINT "VerbrauchsausweisWohnen_aufnahme_id_fkey" FOREIGN KEY ("aufnahme_id") REFERENCES "Aufnahme"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
-- AddForeignKey
ALTER TABLE "documenttemplates" ADD CONSTRAINT "benutzer_fk" FOREIGN KEY ("user_id") REFERENCES "benutzer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "documenttemplates" ADD CONSTRAINT "documenttypes_fk" FOREIGN KEY ("documenttype") REFERENCES "documenttypes"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "tokens" ADD CONSTRAINT "fk_benutzer_tokens_user_id" FOREIGN KEY ("user_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;

View File

@@ -19,8 +19,11 @@ enum Rechnungsstatus {
enum AusweisTyp { enum AusweisTyp {
Standard Standard
standardXL
Beratung Beratung
BeratungXL
Offline Offline
OfflineXL
} }
model Rechnung { model Rechnung {

View File

@@ -12,8 +12,8 @@ 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"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"), "aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
"auth/access-token": await import("../src/pages/api/auth/access-token.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/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"), "auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
@@ -31,10 +31,10 @@ export const createCaller = createCallerFactory({
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
"rechnung": await import("../src/pages/api/rechnung/index.ts"), "rechnung": await import("../src/pages/api/rechnung/index.ts"),
"ticket": await import("../src/pages/api/ticket/index.ts"), "ticket": await import("../src/pages/api/ticket/index.ts"),
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
"user": await import("../src/pages/api/user/index.ts"), "user": await import("../src/pages/api/user/index.ts"),
"user/self": await import("../src/pages/api/user/self.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"),
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"), "verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"), "verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),

View File

@@ -31,9 +31,9 @@
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe} {:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
GEG Nachweis Gewerbegebäude GEG Nachweis Gewerbegebäude
{/if} {/if}
{#if ausweistyp === Enums.AusweisTyp.Beratung} {#if ausweistyp === Enums.AusweisTyp.Beratung || ausweistyp === Enums.AusweisTyp.BeratungXL}
mit Beratung mit Beratung
{:else if ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweistyp === Enums.AusweisTyp.Offline || ausweistyp === Enums.AusweisTyp.OfflineXL}
offline offline
{/if} {/if}
{PRICES[ausweisart][ausweistyp]}</h2> {PRICES[ausweisart][ausweistyp]}</h2>

View File

@@ -215,9 +215,9 @@
Bedarfsausweis Gewerbe Bedarfsausweis Gewerbe
{/if} {/if}
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung} {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
(Beratung) (Beratung)
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
(Offline) (Offline)
{/if} {/if}
</div> </div>
@@ -240,9 +240,9 @@
> >
</div> </div>
{#if ausweis.bestellt} {#if ausweis.bestellt}
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung} {#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
<p class="text-sm font-semibold">Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden innerhalb der nächsten 48 Stunden über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.</p> <p class="text-sm font-semibold">Sie haben Hilfe zu diesem Ausweis angefordert. Sie werden innerhalb der nächsten 48 Stunden über die hinterlegte Telefonnummer vom IB Cornelsen kontaktiert.</p>
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
<p class="text-sm font-semibold">Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen Ihres Energieversorgers.</p> <p class="text-sm font-semibold">Sie haben die offline Variant zu diesem Ausweis angefordert. Bitte übermitteln Sie uns die letzten drei Jahre der Energieabrechnungen Ihres Energieversorgers.</p>
{:else} {:else}
<p class="text-sm font-semibold">Der Ausweis wurde von Ihnen freigegeben und befindet sich in Prüfung vom IB Cornelsen</p> <p class="text-sm font-semibold">Der Ausweis wurde von Ihnen freigegeben und befindet sich in Prüfung vom IB Cornelsen</p>
@@ -311,7 +311,38 @@
{/if} {/if}
{#if !ausweis.ausgestellt && (!ausweis.bestellt || (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.Offline))} {#if !ausweis.ausgestellt && (!ausweis.bestellt || (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL))}
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
<a
class="button text-sm"
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
>Bearbeiten</a>
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
<a
class="button text-sm"
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
>Bearbeiten</a>
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisWohnen}
<a
class="button text-sm"
href="/energieausweis-erstellen/bedarfsausweis-wohngebaeude?id={ausweis.id}"
>Bearbeiten</a>
{:else if ausweisart === Enums.Ausweisart.GEGNachweisWohnen}
<a
class="button text-sm"
href="/angebot-anfragen/geg-nachweis-wohnen-anfragen?id={ausweis.id}"
>Bearbeiten</a>
{:else if ausweisart === Enums.Ausweisart.GEGNachweisGewerbe}
<a
class="button text-sm"
href="/angebot-anfragen/geg-nachweis-gewerbe-anfragen?id={ausweis.id}"
>Bearbeiten</a>
{:else if ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe}
<a
class="button text-sm"
href="/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?id={ausweis.id}"
>Bearbeiten</a>
{/if}
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen} {#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
<a <a
class="button text-sm" class="button text-sm"

View File

@@ -66,8 +66,11 @@ export type Rechnungsstatus = (typeof Rechnungsstatus)[keyof typeof Rechnungssta
export const AusweisTyp = { export const AusweisTyp = {
Standard: "Standard", Standard: "Standard",
standardXL: "standardXL",
Beratung: "Beratung", Beratung: "Beratung",
BeratungXL: "BeratungXL",
Offline: "Offline", Offline: "Offline",
OfflineXL: "OfflineXL",
} as const; } as const;
export type AusweisTyp = (typeof AusweisTyp)[keyof typeof AusweisTyp]; export type AusweisTyp = (typeof AusweisTyp)[keyof typeof AusweisTyp];

View File

@@ -33,32 +33,50 @@ export const PRICES: Record<Enums.Ausweisart, Record<Enums.AusweisTyp, number>>
BedarfsausweisWohnen: { BedarfsausweisWohnen: {
[Enums.AusweisTyp.Standard]: 95, [Enums.AusweisTyp.Standard]: 95,
[Enums.AusweisTyp.Beratung]: 125, [Enums.AusweisTyp.Beratung]: 125,
[Enums.AusweisTyp.Offline]: 295 [Enums.AusweisTyp.Offline]: 295,
[Enums.AusweisTyp.standardXL]: 120,
[Enums.AusweisTyp.BeratungXL]: 150,
[Enums.AusweisTyp.OfflineXL]: 320,
}, },
VerbrauchsausweisWohnen: { VerbrauchsausweisWohnen: {
[Enums.AusweisTyp.Standard]: 65, [Enums.AusweisTyp.Standard]: 65,
[Enums.AusweisTyp.Beratung]: 95, [Enums.AusweisTyp.Beratung]: 95,
[Enums.AusweisTyp.Offline]: 180 [Enums.AusweisTyp.Offline]: 180,
[Enums.AusweisTyp.standardXL]: 75,
[Enums.AusweisTyp.BeratungXL]: 105,
[Enums.AusweisTyp.OfflineXL]: 190
}, },
VerbrauchsausweisGewerbe: { VerbrauchsausweisGewerbe: {
[Enums.AusweisTyp.Standard]: 95, [Enums.AusweisTyp.Standard]: 95,
[Enums.AusweisTyp.Beratung]: 125, [Enums.AusweisTyp.Beratung]: 125,
[Enums.AusweisTyp.Offline]: 360 [Enums.AusweisTyp.Offline]: 360,
[Enums.AusweisTyp.standardXL]: 110,
[Enums.AusweisTyp.BeratungXL]: 140,
[Enums.AusweisTyp.OfflineXL]: 375
}, },
BedarfsausweisGewerbe: { BedarfsausweisGewerbe: {
[Enums.AusweisTyp.Standard]: 500, [Enums.AusweisTyp.Standard]: 500,
[Enums.AusweisTyp.Beratung]: 700, [Enums.AusweisTyp.Beratung]: 700,
[Enums.AusweisTyp.Offline]: 1000 [Enums.AusweisTyp.Offline]: 1000,
[Enums.AusweisTyp.standardXL]: 800,
[Enums.AusweisTyp.BeratungXL]: 1000,
[Enums.AusweisTyp.OfflineXL]: 1300
}, },
GEGNachweisWohnen: { GEGNachweisWohnen: {
[Enums.AusweisTyp.Standard]: 500, [Enums.AusweisTyp.Standard]: 500,
[Enums.AusweisTyp.Beratung]: 700, [Enums.AusweisTyp.Beratung]: 700,
[Enums.AusweisTyp.Offline]: 1000 [Enums.AusweisTyp.Offline]: 1000,
[Enums.AusweisTyp.standardXL]: 700,
[Enums.AusweisTyp.BeratungXL]: 900,
[Enums.AusweisTyp.OfflineXL]: 1200
}, },
GEGNachweisGewerbe: { GEGNachweisGewerbe: {
[Enums.AusweisTyp.Standard]: 800, [Enums.AusweisTyp.Standard]: 800,
[Enums.AusweisTyp.Beratung]: 1000, [Enums.AusweisTyp.Beratung]: 1000,
[Enums.AusweisTyp.Offline]: 1300 [Enums.AusweisTyp.Offline]: 1300,
[Enums.AusweisTyp.standardXL]: 1100,
[Enums.AusweisTyp.BeratungXL]: 1300,
[Enums.AusweisTyp.OfflineXL]: 1600
} }
}; };

View File

@@ -7,23 +7,23 @@ export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | Verb
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) { if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen (ID: ${id})`; subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen (ID: ${id})`;
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen mit Beratung (ID: ${id})`
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Wohnen - offline Service (ID: ${id})`
} }
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) { } else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe (ID: ${id})`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe mit Beratung (ID: ${id})`
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Verbrauchsausweis Gewerbe - offline Service (ID: ${id})`
} }
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) { } else if (ausweisart === Enums.Ausweisart.BedarfsausweisWohnen) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen (ID: ${id})`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen mit Beratung (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen mit Beratung (ID: ${id})`
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) { } else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL) {
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})` subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})`
} }
} }
@@ -60,7 +60,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -133,7 +133,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis. ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -206,7 +206,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -289,7 +289,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -362,7 +362,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>
@@ -435,7 +435,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
<br> <br>
fax 040 · 209339859 fax 040 · 209339859
</p>` </p>`
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) { if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL) {
body = ` body = `
<p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br> <p>vielen Dank für Ihre Bestellung. Sie haben telefonische Beratung zu Ihrer online Eingabe angefordert.<br>
Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p> Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und dann die offenen Fragen zu Ihrer Eingabe beantworten.</p>

View File

@@ -869,11 +869,11 @@ grid-cols-3 sm:grid-cols-5 justify-around justify-items-center items-center"
<div class="ProduktKostenTabelle"> <div class="ProduktKostenTabelle">
<div class="zeile betrag"> <div class="zeile betrag">
{#if ausweis.ausweistyp === Enums.AusweisTyp.Standard} {#if ausweis.ausweistyp === Enums.AusweisTyp.Standard || ausweis.ausweistyp === Enums.AusweisTyp.standardXL}
<span>Netto-Preis Energieausweis</span> <span>Netto-Preis Energieausweis</span>
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Beratung} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.BeratungXL}
<span>Energieausweis inkl. Beratung</span> <span>Energieausweis inkl. Beratung</span>
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline} {:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline || ausweis.ausweistyp === Enums.AusweisTyp.OfflineXL}
<span>Energieausweis Offline</span> <span>Energieausweis Offline</span>
{/if} {/if}
<span>:</span> <span>:</span>