From 079d91345179d6053ee3554474f7d4fc289ffb25 Mon Sep 17 00:00:00 2001 From: Moritz Utcke Date: Mon, 21 Apr 2025 12:58:39 -0300 Subject: [PATCH] Initial Translation --- .env | 18 +---- Dockerfile | 16 ---- docker-compose.yml | 14 +++- src/astro-typesafe-api-caller.ts | 18 ++--- surreal/Anteilshaber.sql | 4 + surreal/Aufnahme.sql | 109 ++++++++++++++++++++++++++++ surreal/Benutzer.sql | 22 ++++++ surreal/Bild.sql | 10 +++ surreal/Event.sql | 10 +++ surreal/Objekt.sql | 16 ++++ surreal/Unterlage.sql | 10 +++ surreal/VerbrauchsausweisWohnen.sql | 63 ++++++++++++++++ 12 files changed, 266 insertions(+), 44 deletions(-) delete mode 100644 Dockerfile create mode 100644 surreal/Anteilshaber.sql create mode 100644 surreal/Aufnahme.sql create mode 100644 surreal/Benutzer.sql create mode 100644 surreal/Bild.sql create mode 100644 surreal/Event.sql create mode 100644 surreal/Objekt.sql create mode 100644 surreal/Unterlage.sql create mode 100644 surreal/VerbrauchsausweisWohnen.sql diff --git a/.env b/.env index 29afc948..ac8f9bdb 100644 --- a/.env +++ b/.env @@ -1,16 +1,2 @@ -# Environment variables declared in this file are automatically made available to Prisma. -# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema - -# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. -# See the documentation for all the connection string options: https://pris.ly/d/connection-strings - -POSTGRES_DB=main -POSTGRES_HOST=localhost -POSTGRES_PORT=5432 -POSTGRES_USER=main -POSTGRES_PASSWORD=hHMP8cd^N3SnzGRR - -DB_CONTAINER_NAME=database - -POSTGRES_DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" -POSTGRES_DATABASE_URL_EXTERNAL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_CONTAINER_NAME}:${POSTGRES_PORT}/${POSTGRES_DB}" \ No newline at end of file +DB_USER=main +DB_PASSWORD=hHMP8cd^N3SnzGRR \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index eefa60ee..00000000 --- a/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -FROM postgres:latest -ENV POSTGRES_USER ${POSTGRES_USER} -ENV POSTGRES_PASSWORD ${POSTGRES_PASSWORD} -ENV POSTGRES_DB ${POSTGRES_DB} - -COPY ./prisma/migrations/ /docker-entrypoint-initdb.d/ - -EXPOSE 5432 - -# Use a loop to copy migration.sql from each folder to the corresponding directory in the build context -RUN for folder in /docker-entrypoint-initdb.d/*; do \ - if [ -d "$folder" ]; then \ - cp "$folder/migration.sql" "$folder.sql"; \ - rm -rf "$folder"; \ - fi \ -done \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a0485abf..cf87bad8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,16 @@ version: '3' + services: - database: - build: ./ + surrealdb: env_file: - .env + entrypoint: + - /surreal + - start + - --user + - $DB_USER + - --pass + - $DB_PASSWORD + image: surrealdb/surrealdb:latest ports: - - 5432:5432 \ No newline at end of file + - 8000:8000 diff --git a/src/astro-typesafe-api-caller.ts b/src/astro-typesafe-api-caller.ts index 83fb19ee..e7622574 100644 --- a/src/astro-typesafe-api-caller.ts +++ b/src/astro-typesafe-api-caller.ts @@ -5,35 +5,35 @@ 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"), + "bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"), + "bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"), "admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"), "admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"), "admin/erinnern": await import("../src/pages/api/admin/erinnern.ts"), "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"), - "bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"), - "bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"), - "aufnahme": await import("../src/pages/api/aufnahme/index.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"), "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"), - "geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"), - "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"), "geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"), "bilder/[id]": await import("../src/pages/api/bilder/[id].ts"), - "ticket": await import("../src/pages/api/ticket/index.ts"), + "geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"), + "geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"), "objekt": await import("../src/pages/api/objekt/index.ts"), "rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"), "rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"), "rechnung": await import("../src/pages/api/rechnung/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/self": await import("../src/pages/api/user/self.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"), "verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"), "verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"), "webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"), diff --git a/surreal/Anteilshaber.sql b/surreal/Anteilshaber.sql new file mode 100644 index 00000000..0bcdd0f6 --- /dev/null +++ b/surreal/Anteilshaber.sql @@ -0,0 +1,4 @@ +DEFINE TABLE Anteilshaber TYPE RELATION IN Benutzer OUT VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen | BedarfsausweisGewerbe | GEGNachweisWohnen | GEGNachweisGewerbe SCHEMAFULL PERMISSIONS NONE; + +DEFINE FIELD rolle ON TABLE Anteilshaber + TYPE 'Besteller' | 'Aussteller' | 'Zuarbeiter' | 'Interessierter'; diff --git a/surreal/Aufnahme.sql b/surreal/Aufnahme.sql new file mode 100644 index 00000000..88e1569e --- /dev/null +++ b/surreal/Aufnahme.sql @@ -0,0 +1,109 @@ +DEFINE TABLE Aufnahme SCHEMAFULL; + +DEFINE FIELD benutzer ON TABLE Aufnahme TYPE record; +-- @zod.describe("Art des Gebäudes und seiner primären Nutzungsart") +DEFINE FIELD gebaeudetyp ON TABLE Aufnahme TYPE string; +-- @zod.describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil") +DEFINE FIELD gebaeudeteil ON TABLE Aufnahme TYPE string; +-- @zod.describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde") +DEFINE FIELD baujahr_gebaeude ON TABLE Aufnahme TYPE array; +-- @zod.describe("Alle Jahre in denen die Heizung eingebaut oder grundlegend verändert wurde") +DEFINE FIELD baujahr_heizung ON TABLE Aufnahme TYPE array; +-- @zod.describe("Alle Jahre in denen die Klimaanlage eingebaut oder grundlegend verändert wurde") +DEFINE FIELD baujahr_klima ON TABLE Aufnahme TYPE array; +-- @zod.describe("Anzahl der (Wohn)Einheiten im Gebäude") +DEFINE FIELD einheiten ON TABLE Aufnahme TYPE option; +-- @zod.describe("Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden") +DEFINE FIELD flaeche ON TABLE Aufnahme TYPE option; +-- @zod.describe("(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche") +DEFINE FIELD nutzflaeche ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen") +DEFINE FIELD saniert ON TABLE Aufnahme TYPE option; +-- @zod.describe("Ob ein Keller vorhanden, beheizt oder unbeheizt ist") +DEFINE FIELD keller ON TABLE Aufnahme TYPE "BEHEIZT" | "UNBEHEIZT" | "NICHT_VORHANDEN"; +-- @zod.describe("Ob ein Dachgeschoss vorhanden, beheizt oder unbeheizt ist") +DEFINE FIELD dachgeschoss ON TABLE Aufnahme TYPE "BEHEIZT" | "UNBEHEIZT" | "NICHT_VORHANDEN"; +-- @zod.describe("Art der Gebäudelüftung") +DEFINE FIELD lueftung ON TABLE Aufnahme TYPE "Fensterlueftung" | "Schachtlueftung" | "LueftungsanlageMitWaermerueckgewinnung" | "LueftungsanlageOhneWaermerueckgewinnung"; +-- @zod.describe("Art der Gebäudekühlung") +DEFINE FIELD kuehlung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Prozentualer Leerstand des Gebäudes in einem durchschnittlichen Jahr") +DEFINE FIELD leerstand ON TABLE Aufnahme TYPE option; + +-- @zod.describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen") +DEFINE FIELD alternative_heizung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen") +DEFINE FIELD alternative_warmwasser ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen") +DEFINE FIELD alternative_lueftung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen") +DEFINE FIELD alternative_kuehlung ON TABLE Aufnahme TYPE option; + +-- @zod.describe("Datum an dem der Kunde die Aufnahme erstellt hat") +DEFINE FIELD erstellungsdatum ON TABLE Aufnahme TYPE datetime DEFAULT time::now(); + +-- @zod.describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD zentralheizung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD solarsystem_warmwasser ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD warmwasser_rohre_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über einen Niedertemperaturkessel verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD niedertemperatur_kessel ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über einen Brennwertkessel verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD brennwert_kessel ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Heizungsrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD heizungsrohre_gedaemmt ON TABLE Aufnahme TYPE option; +DEFINE FIELD standard_kessel ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über eine Wärmepumpe verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD waermepumpe ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über einen Raumtemperaturregler verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD raum_temperatur_regler ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über eine Photovoltaikanlage verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD photovoltaik ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über einen Durchlauferhitzer verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD durchlauf_erhitzer ON TABLE Aufnahme TYPE option; +DEFINE FIELD einzelofen ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über eine Zirkulationspumpe verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD zirkulation ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes einfach gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD einfach_verglasung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes dreifach gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD dreifach_verglasung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes teilweise undicht sind, sollte dieser Wert auf true stehen") +DEFINE FIELD fenster_teilweise_undicht ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes doppelt gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD doppel_verglasung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes dicht sind, sollte dieser Wert auf true stehen") +DEFINE FIELD fenster_dicht ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Gebäude über gedämmte Rolllädenkästen verfügt, sollte dieser Wert auf true stehen") +DEFINE FIELD rolllaeden_kaesten_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Fenster des Gebäudes isolier Verglasung haben, sollte dieser Wert auf true stehen") +DEFINE FIELD isolier_verglasung ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Türen des Gebäudes undicht sind, sollte dieser Wert auf true stehen") +DEFINE FIELD tueren_undicht ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Türen des Gebäudes dicht sind, sollte dieser Wert auf true stehen") +DEFINE FIELD tueren_dicht ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Dachgeschoss des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen") +DEFINE FIELD dachgeschoss_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Kellerdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen") +DEFINE FIELD keller_decke_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Kellerwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD keller_wand_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Außenwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD aussenwand_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die oberste Geschossdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen") +DEFINE FIELD oberste_geschossdecke_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen") +DEFINE FIELD aussenwand_min_12cm_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen") +DEFINE FIELD dachgeschoss_min_12cm_gedaemmt ON TABLE Aufnahme TYPE option; +-- @zod.describe("Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen") +DEFINE FIELD oberste_geschossdecke_min_12cm_gedaemmt ON TABLE Aufnahme TYPE option; + +DEFINE FIELD events ON TABLE Aufnahme TYPE array>; +DEFINE FIELD bilder ON TABLE Aufnahme TYPE array>; +DEFINE FIELD unterlagen ON TABLE Aufnahme TYPE array>; + + + diff --git a/surreal/Benutzer.sql b/surreal/Benutzer.sql new file mode 100644 index 00000000..1eb06b29 --- /dev/null +++ b/surreal/Benutzer.sql @@ -0,0 +1,22 @@ +DEFINE TABLE Benutzer SCHEMAFULL; + +DEFINE FIELD id ON TABLE Benutzer TYPE string; +DEFINE FIELD alte_id ON TABLE Benutzer TYPE int; +DEFINE FIELD name ON TABLE Benutzer TYPE option; +DEFINE FIELD vorname ON TABLE Benutzer TYPE option; +DEFINE FIELD email ON TABLE Benutzer TYPE string; +DEFINE FIELD passwort ON TABLE Benutzer TYPE string; +DEFINE FIELD profilbild ON TABLE Benutzer TYPE option; +DEFINE FIELD plz ON TABLE Benutzer TYPE option; +DEFINE FIELD ort ON TABLE Benutzer TYPE option; +DEFINE FIELD adresse ON TABLE Benutzer TYPE option; +DEFINE FIELD telefon ON TABLE Benutzer TYPE option; +DEFINE FIELD anrede ON TABLE Benutzer TYPE option; + +DEFINE FIELD rolle ON TABLE Benutzer TYPE "USER" | "ADMIN"; + +DEFINE FIELD firma ON TABLE Benutzer TYPE option; +DEFINE FIELD lex_office_id ON TABLE Benutzer TYPE option; +DEFINE FIELD verified ON TABLE Benutzer TYPE bool DEFAULT false; +DEFINE FIELD created_at ON TABLE Benutzer TYPE datetime DEFAULT time::now(); +DEFINE FIELD updated_at ON TABLE Benutzer TYPE datetime DEFAULT time::now(); diff --git a/surreal/Bild.sql b/surreal/Bild.sql new file mode 100644 index 00000000..8d4fb200 --- /dev/null +++ b/surreal/Bild.sql @@ -0,0 +1,10 @@ +DEFINE TABLE Bild SCHEMAFULL; + +DEFINE FIELD name ON TABLE Bild TYPE string; +DEFINE FIELD mime ON TABLE Bild TYPE string; +DEFINE FIELD kategorie ON TABLE Bild TYPE "Heizung" | "Fenster" | "Gebaeude" | "Daemmung" | "AnlagenTechnik"; + +DEFINE FIELD created_at ON TABLE Bild TYPE datetime DEFAULT time::now(); +DEFINE FIELD updated_at ON TABLE Bild TYPE datetime VALUE time::now(); + +DEFINE FIELD aufnahme ON TABLE Bild TYPE option>; diff --git a/surreal/Event.sql b/surreal/Event.sql new file mode 100644 index 00000000..c9f2d514 --- /dev/null +++ b/surreal/Event.sql @@ -0,0 +1,10 @@ +DEFINE TABLE Event SCHEMAFULL; +DEFINE FIELD erstellungsdatum ON TABLE Event TYPE datetime DEFAULT time::now(); + +DEFINE FIELD title ON TABLE Event TYPE string; +DEFINE FIELD description ON TABLE Event TYPE option; + +-- Verlinkung des Gebäudes +DEFINE FIELD aufnahme ON TABLE Event TYPE record; +-- Verlinkung des Benutzers +DEFINE FIELD benutzer ON TABLE Event TYPE record; \ No newline at end of file diff --git a/surreal/Objekt.sql b/surreal/Objekt.sql new file mode 100644 index 00000000..10ece644 --- /dev/null +++ b/surreal/Objekt.sql @@ -0,0 +1,16 @@ +DEFINE TABLE Objekt SCHEMAFULL; + +DEFINE FIELD id ON TABLE Objekt TYPE string; +DEFINE FIELD latitude ON TABLE Objekt TYPE option; +DEFINE FIELD longitude ON TABLE Objekt TYPE option; + +-- @zod.describe("Postleitzahl des Gebäudes") +DEFINE FIELD plz ON TABLE Objekt TYPE option; +-- @zod.describe("Ort des Gebäudes") +DEFINE FIELD ort ON TABLE Objekt TYPE option; +-- @zod.describe("Adresse (Straße und Hausnummer) des Gebäudes") +DEFINE FIELD adresse ON TABLE Objekt TYPE option; + +DEFINE FIELD erstellungsdatum ON TABLE Objekt TYPE datetime DEFAULT time::now(); + +DEFINE FIELD aufnahmen ON TABLE Objekt TYPE array>; diff --git a/surreal/Unterlage.sql b/surreal/Unterlage.sql new file mode 100644 index 00000000..49ff1605 --- /dev/null +++ b/surreal/Unterlage.sql @@ -0,0 +1,10 @@ +DEFINE TABLE Unterlage SCHEMAFULL; + +DEFINE FIELD name ON TABLE Unterlage TYPE string; +DEFINE FIELD mime ON TABLE Unterlage TYPE string; +DEFINE FIELD kategorie ON TABLE Unterlage TYPE "Grundriss" | "Sonstiges"; + +DEFINE FIELD created_at ON TABLE Unterlage TYPE datetime DEFAULT time::now(); +DEFINE FIELD updated_at ON TABLE Unterlage TYPE datetime VALUE time::now(); + +DEFINE FIELD aufnahme ON TABLE Unterlage TYPE option>; \ No newline at end of file diff --git a/surreal/VerbrauchsausweisWohnen.sql b/surreal/VerbrauchsausweisWohnen.sql new file mode 100644 index 00000000..4ac32d8e --- /dev/null +++ b/surreal/VerbrauchsausweisWohnen.sql @@ -0,0 +1,63 @@ +DEFINE TABLE VerbrauchsausweisWohnen SCHEMAFULL; + +DEFINE FIELD alte_ausweis_id ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD ausstellgrund ON VerbrauchsausweisWohnen TYPE string; -- Ausstellgrund enum assumed as string +DEFINE FIELD registriernummer ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD zusaetzliche_heizquelle ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD einheit_1 ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD einheit_2 ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD brennstoff_1 ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD brennstoff_2 ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD energieeffizienzklasse ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD ausstellungsdatum ON VerbrauchsausweisWohnen TYPE datetime; +DEFINE FIELD boxpruefung ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD startdatum ON VerbrauchsausweisWohnen TYPE datetime; + +DEFINE FIELD verbrauch_1 ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD verbrauch_2 ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD verbrauch_3 ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD verbrauch_4 ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD verbrauch_5 ON VerbrauchsausweisWohnen TYPE int; +DEFINE FIELD verbrauch_6 ON VerbrauchsausweisWohnen TYPE int; + +DEFINE FIELD warmwasser_enthalten ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD warmwasser_anteil_bekannt ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD faktorKeller ON VerbrauchsausweisWohnen TYPE float; + +DEFINE FIELD alternative_heizung ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD alternative_warmwasser ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD alternative_lueftung ON VerbrauchsausweisWohnen TYPE bool; +DEFINE FIELD alternative_kuehlung ON VerbrauchsausweisWohnen TYPE bool; + +DEFINE FIELD anteil_warmwasser_1 ON VerbrauchsausweisWohnen TYPE float; +DEFINE FIELD anteil_warmwasser_2 ON VerbrauchsausweisWohnen TYPE float; + +DEFINE FIELD ausgestellt ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD storniert ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD bestellt ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD zurueckgestellt ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD prueftext ON VerbrauchsausweisWohnen TYPE string; +DEFINE FIELD beschreibung ON VerbrauchsausweisWohnen TYPE string; + +DEFINE FIELD kontrolldatei_angefragt ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD ausweistyp ON VerbrauchsausweisWohnen TYPE string DEFAULT "Standard"; -- Enum default +DEFINE FIELD ausweisart ON VerbrauchsausweisWohnen TYPE string DEFAULT "VerbrauchsausweisWohnen"; -- Enum default + +DEFINE FIELD created_at ON VerbrauchsausweisWohnen TYPE datetime DEFAULT time::now(); +DEFINE FIELD updated_at ON VerbrauchsausweisWohnen TYPE datetime DEFAULT time::now(); + +-- Prüfpunkte +DEFINE FIELD pruefpunkt_heizungsalter ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_verbrauch_niedrig ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_verbrauch_hoch ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_verbrauch_null ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_verbrauch_abweichung ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_wohnflaeche_einheiten ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_strom_null ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_strom_abweichung ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_plz ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_heizungsanlage ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_anteil_warmwasser ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_wohnflaeche ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_geometrie ON VerbrauchsausweisWohnen TYPE bool DEFAULT false; +DEFINE FIELD pruefpunkt_fenster ON VerbrauchsausweisWohnen TYPE bool DEFAULT false;