Compare commits
3 Commits
chat-syste
...
surrealdb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39b02f4de4 | ||
|
|
92817b6b8e | ||
|
|
079d913451 |
18
.env
18
.env
@@ -1,16 +1,2 @@
|
|||||||
# Environment variables declared in this file are automatically made available to Prisma.
|
DB_USER=main
|
||||||
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
|
DB_PASSWORD=hHMP8cd^N3SnzGRR
|
||||||
|
|
||||||
# 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}"
|
|
||||||
16
Dockerfile
16
Dockerfile
@@ -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
|
|
||||||
9
bun.lock
9
bun.lock
@@ -45,6 +45,7 @@
|
|||||||
"soap": "^1.1.8",
|
"soap": "^1.1.8",
|
||||||
"sqids": "^0.3.0",
|
"sqids": "^0.3.0",
|
||||||
"ssh2-sftp-client": "^12.0.0",
|
"ssh2-sftp-client": "^12.0.0",
|
||||||
|
"surrealdb": "^1.3.2",
|
||||||
"svelte": "^3.59.2",
|
"svelte": "^3.59.2",
|
||||||
"svelte-dialogs": "^1.2.2",
|
"svelte-dialogs": "^1.2.2",
|
||||||
"svelte-preprocess": "^5.1.4",
|
"svelte-preprocess": "^5.1.4",
|
||||||
@@ -1615,6 +1616,8 @@
|
|||||||
|
|
||||||
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
||||||
|
|
||||||
|
"isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="],
|
||||||
|
|
||||||
"isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="],
|
"isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="],
|
||||||
|
|
||||||
"jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
|
"jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
|
||||||
@@ -2457,6 +2460,8 @@
|
|||||||
|
|
||||||
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
|
"supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="],
|
||||||
|
|
||||||
|
"surrealdb": ["surrealdb@1.3.2", "", { "dependencies": { "isows": "^1.0.6", "uuidv7": "^1.0.1" }, "peerDependencies": { "tslib": "^2.6.3", "typescript": "^5.0.0" } }, "sha512-mL7nij33iuon3IQP72F46fgX3p2LAxFCWCBDbZB7IohZ13RTEwJVNq7nZeP1eMSceQUpKzS6OHIWOuF9LYAkNw=="],
|
||||||
|
|
||||||
"svelte": ["svelte@3.59.2", "", {}, "sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA=="],
|
"svelte": ["svelte@3.59.2", "", {}, "sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA=="],
|
||||||
|
|
||||||
"svelte-dialogs": ["svelte-dialogs@1.2.2", "", { "peerDependencies": { "svelte": "^3.5.0" } }, "sha512-Pf25Xua2nDIIR4v45PNbn+yFrFLNc0ns9+sO8Ms77Hm/CdxFuXm01XO8Qkw8Ej66BvboX+kIJ3TCm8uwP/XmyQ=="],
|
"svelte-dialogs": ["svelte-dialogs@1.2.2", "", { "peerDependencies": { "svelte": "^3.5.0" } }, "sha512-Pf25Xua2nDIIR4v45PNbn+yFrFLNc0ns9+sO8Ms77Hm/CdxFuXm01XO8Qkw8Ej66BvboX+kIJ3TCm8uwP/XmyQ=="],
|
||||||
@@ -2617,6 +2622,8 @@
|
|||||||
|
|
||||||
"uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="],
|
"uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="],
|
||||||
|
|
||||||
|
"uuidv7": ["uuidv7@1.0.2", "", { "bin": { "uuidv7": "cli.js" } }, "sha512-8JQkH4ooXnm1JCIhqTMbtmdnYEn6oKukBxHn1Ic9878jMkL7daTI7anTExfY18VRCX7tcdn5quzvCb6EWrR8PA=="],
|
||||||
|
|
||||||
"v8-compile-cache": ["v8-compile-cache@2.4.0", "", {}, "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw=="],
|
"v8-compile-cache": ["v8-compile-cache@2.4.0", "", {}, "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw=="],
|
||||||
|
|
||||||
"validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="],
|
"validate-npm-package-license": ["validate-npm-package-license@3.0.4", "", { "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="],
|
||||||
@@ -2663,6 +2670,8 @@
|
|||||||
|
|
||||||
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
|
"wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
|
||||||
|
|
||||||
|
"ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="],
|
||||||
|
|
||||||
"xml-crypto": ["xml-crypto@6.0.0", "", { "dependencies": { "@xmldom/is-dom-node": "^1.0.1", "@xmldom/xmldom": "^0.8.10", "xpath": "^0.0.33" } }, "sha512-L3RgnkaDrHaYcCnoENv4Idzt1ZRj5U1z1BDH98QdDTQfssScx8adgxhd9qwyYo+E3fXbQZjEQH7aiXHLVgxGvw=="],
|
"xml-crypto": ["xml-crypto@6.0.0", "", { "dependencies": { "@xmldom/is-dom-node": "^1.0.1", "@xmldom/xmldom": "^0.8.10", "xpath": "^0.0.33" } }, "sha512-L3RgnkaDrHaYcCnoENv4Idzt1ZRj5U1z1BDH98QdDTQfssScx8adgxhd9qwyYo+E3fXbQZjEQH7aiXHLVgxGvw=="],
|
||||||
|
|
||||||
"xpath": ["xpath@0.0.33", "", {}, "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA=="],
|
"xpath": ["xpath@0.0.33", "", {}, "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA=="],
|
||||||
|
|||||||
@@ -1,8 +1,16 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
database:
|
surrealdb:
|
||||||
build: ./
|
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
entrypoint:
|
||||||
|
- /surreal
|
||||||
|
- start
|
||||||
|
- --user
|
||||||
|
- $DB_USER
|
||||||
|
- --pass
|
||||||
|
- $DB_PASSWORD
|
||||||
|
image: surrealdb/surrealdb:latest
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432
|
- 8000:8000
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
"soap": "^1.1.8",
|
"soap": "^1.1.8",
|
||||||
"sqids": "^0.3.0",
|
"sqids": "^0.3.0",
|
||||||
"ssh2-sftp-client": "^12.0.0",
|
"ssh2-sftp-client": "^12.0.0",
|
||||||
|
"surrealdb": "^1.3.2",
|
||||||
"svelte": "^3.59.2",
|
"svelte": "^3.59.2",
|
||||||
"svelte-dialogs": "^1.2.2",
|
"svelte-dialogs": "^1.2.2",
|
||||||
"svelte-preprocess": "^5.1.4",
|
"svelte-preprocess": "^5.1.4",
|
||||||
|
|||||||
@@ -5,35 +5,35 @@ 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"),
|
||||||
|
"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"),
|
||||||
"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"),
|
||||||
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"),
|
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-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"),
|
||||||
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
|
||||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].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-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].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/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"),
|
||||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
|
||||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||||
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
|
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
|
||||||
"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"),
|
||||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
"ticket": await import("../src/pages/api/ticket/index.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"),
|
||||||
|
|||||||
@@ -151,4 +151,34 @@ export async function getRechnung(rechnung_id: string) {
|
|||||||
id: rechnung_id
|
id: rechnung_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
import Surreal from "surrealdb"
|
||||||
|
|
||||||
|
// Define the database configuration interface
|
||||||
|
interface DbConfig {
|
||||||
|
url: string;
|
||||||
|
namespace: string;
|
||||||
|
database: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define the default database configuration
|
||||||
|
const DEFAULT_CONFIG: DbConfig = {
|
||||||
|
url: "http://127.0.0.1:8000/rpc",
|
||||||
|
namespace: "main",
|
||||||
|
database: "main",
|
||||||
|
};
|
||||||
|
|
||||||
|
export async function db(config: DbConfig = DEFAULT_CONFIG): Promise<Surreal> {
|
||||||
|
const db = new Surreal();
|
||||||
|
|
||||||
|
try {
|
||||||
|
await db.connect(config.url);
|
||||||
|
await db.use({ namespace: config.namespace, database: config.database });
|
||||||
|
return db;
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Failed to connect to SurrealDB:", err instanceof Error ? err.message : String(err));
|
||||||
|
await db.close();
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
4
surreal/Anteilshaber.sql
Normal file
4
surreal/Anteilshaber.sql
Normal file
@@ -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';
|
||||||
109
surreal/Aufnahme.sql
Normal file
109
surreal/Aufnahme.sql
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
DEFINE TABLE Aufnahme SCHEMAFULL;
|
||||||
|
|
||||||
|
DEFINE FIELD benutzer ON TABLE Aufnahme TYPE record<Benutzer>;
|
||||||
|
-- @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<int>;
|
||||||
|
-- @zod.describe("Alle Jahre in denen die Heizung eingebaut oder grundlegend verändert wurde")
|
||||||
|
DEFINE FIELD baujahr_heizung ON TABLE Aufnahme TYPE array<int>;
|
||||||
|
-- @zod.describe("Alle Jahre in denen die Klimaanlage eingebaut oder grundlegend verändert wurde")
|
||||||
|
DEFINE FIELD baujahr_klima ON TABLE Aufnahme TYPE array<int>;
|
||||||
|
-- @zod.describe("Anzahl der (Wohn)Einheiten im Gebäude")
|
||||||
|
DEFINE FIELD einheiten ON TABLE Aufnahme TYPE option<int>;
|
||||||
|
-- @zod.describe("Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden")
|
||||||
|
DEFINE FIELD flaeche ON TABLE Aufnahme TYPE option<int>;
|
||||||
|
-- @zod.describe("(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche")
|
||||||
|
DEFINE FIELD nutzflaeche ON TABLE Aufnahme TYPE option<int>;
|
||||||
|
-- @zod.describe("Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen")
|
||||||
|
DEFINE FIELD saniert ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @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<string>;
|
||||||
|
-- @zod.describe("Prozentualer Leerstand des Gebäudes in einem durchschnittlichen Jahr")
|
||||||
|
DEFINE FIELD leerstand ON TABLE Aufnahme TYPE option<int>;
|
||||||
|
|
||||||
|
-- @zod.describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
|
||||||
|
DEFINE FIELD alternative_heizung ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @zod.describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
|
||||||
|
DEFINE FIELD alternative_warmwasser ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @zod.describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
|
||||||
|
DEFINE FIELD alternative_lueftung ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
|
||||||
|
DEFINE FIELD alternative_kuehlung ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
DEFINE FIELD standard_kessel ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
DEFINE FIELD einzelofen ON TABLE Aufnahme TYPE option<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
-- @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<bool>;
|
||||||
|
|
||||||
|
DEFINE FIELD events ON TABLE Aufnahme TYPE array<record<Event>>;
|
||||||
|
DEFINE FIELD bilder ON TABLE Aufnahme TYPE array<record<Bild>>;
|
||||||
|
DEFINE FIELD unterlagen ON TABLE Aufnahme TYPE array<record<Unterlage>>;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
22
surreal/Benutzer.sql
Normal file
22
surreal/Benutzer.sql
Normal file
@@ -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<string>;
|
||||||
|
DEFINE FIELD vorname ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD email ON TABLE Benutzer TYPE string;
|
||||||
|
DEFINE FIELD passwort ON TABLE Benutzer TYPE string;
|
||||||
|
DEFINE FIELD profilbild ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD plz ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD ort ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD adresse ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD telefon ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD anrede ON TABLE Benutzer TYPE option<string>;
|
||||||
|
|
||||||
|
DEFINE FIELD rolle ON TABLE Benutzer TYPE "USER" | "ADMIN";
|
||||||
|
|
||||||
|
DEFINE FIELD firma ON TABLE Benutzer TYPE option<string>;
|
||||||
|
DEFINE FIELD lex_office_id ON TABLE Benutzer TYPE option<string>;
|
||||||
|
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();
|
||||||
10
surreal/Bild.sql
Normal file
10
surreal/Bild.sql
Normal file
@@ -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<record<Aufnahme>>;
|
||||||
10
surreal/Event.sql
Normal file
10
surreal/Event.sql
Normal file
@@ -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<string>;
|
||||||
|
|
||||||
|
-- Verlinkung des Gebäudes
|
||||||
|
DEFINE FIELD aufnahme ON TABLE Event TYPE record<Aufnahme>;
|
||||||
|
-- Verlinkung des Benutzers
|
||||||
|
DEFINE FIELD benutzer ON TABLE Event TYPE record<Benutzer>;
|
||||||
16
surreal/Objekt.sql
Normal file
16
surreal/Objekt.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
DEFINE TABLE Objekt SCHEMAFULL;
|
||||||
|
|
||||||
|
DEFINE FIELD id ON TABLE Objekt TYPE string;
|
||||||
|
DEFINE FIELD latitude ON TABLE Objekt TYPE option<float>;
|
||||||
|
DEFINE FIELD longitude ON TABLE Objekt TYPE option<float>;
|
||||||
|
|
||||||
|
-- @zod.describe("Postleitzahl des Gebäudes")
|
||||||
|
DEFINE FIELD plz ON TABLE Objekt TYPE option<string>;
|
||||||
|
-- @zod.describe("Ort des Gebäudes")
|
||||||
|
DEFINE FIELD ort ON TABLE Objekt TYPE option<string>;
|
||||||
|
-- @zod.describe("Adresse (Straße und Hausnummer) des Gebäudes")
|
||||||
|
DEFINE FIELD adresse ON TABLE Objekt TYPE option<string>;
|
||||||
|
|
||||||
|
DEFINE FIELD erstellungsdatum ON TABLE Objekt TYPE datetime DEFAULT time::now();
|
||||||
|
|
||||||
|
DEFINE FIELD aufnahmen ON TABLE Objekt TYPE array<record<Aufnahme>>;
|
||||||
10
surreal/Unterlage.sql
Normal file
10
surreal/Unterlage.sql
Normal file
@@ -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<record<Aufnahme>>;
|
||||||
67
surreal/VerbrauchsausweisWohnen.sql
Normal file
67
surreal/VerbrauchsausweisWohnen.sql
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
DEFINE TABLE VerbrauchsausweisWohnen SCHEMAFULL;
|
||||||
|
|
||||||
|
DEFINE FIELD ausstellgrund ON VerbrauchsausweisWohnen TYPE "Neubau" | "Vermietung" | "Verkauf" | "Modernisierung" | "Sonstiges" DEFAULT "Sonstiges";
|
||||||
|
DEFINE FIELD registriernummer ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD zusaetzliche_heizquelle ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD einheit_1 ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD einheit_2 ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD brennstoff_1 ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD brennstoff_2 ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD energieeffizienzklasse ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD ausstellungsdatum ON VerbrauchsausweisWohnen TYPE datetime;
|
||||||
|
DEFINE FIELD boxpruefung ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD startdatum ON VerbrauchsausweisWohnen TYPE datetime;
|
||||||
|
|
||||||
|
DEFINE FIELD verbrauch_1 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
DEFINE FIELD verbrauch_2 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
DEFINE FIELD verbrauch_3 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
DEFINE FIELD verbrauch_4 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
DEFINE FIELD verbrauch_5 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
DEFINE FIELD verbrauch_6 ON VerbrauchsausweisWohnen TYPE option<int>;
|
||||||
|
|
||||||
|
DEFINE FIELD warmwasser_enthalten ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD warmwasser_anteil_bekannt ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD faktorKeller ON VerbrauchsausweisWohnen TYPE option<float>;
|
||||||
|
|
||||||
|
DEFINE FIELD alternative_heizung ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD alternative_warmwasser ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD alternative_lueftung ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
DEFINE FIELD alternative_kuehlung ON VerbrauchsausweisWohnen TYPE option<bool>;
|
||||||
|
|
||||||
|
DEFINE FIELD anteil_warmwasser_1 ON VerbrauchsausweisWohnen TYPE option<float>;
|
||||||
|
DEFINE FIELD anteil_warmwasser_2 ON VerbrauchsausweisWohnen TYPE option<float>;
|
||||||
|
|
||||||
|
DEFINE FIELD ausgestellt ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD storniert ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD bestellt ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD zurueckgestellt ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD prueftext ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
DEFINE FIELD beschreibung ON VerbrauchsausweisWohnen TYPE option<string>;
|
||||||
|
|
||||||
|
DEFINE FIELD kontrolldatei_angefragt ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
|
||||||
|
DEFINE FIELD ausweistyp ON VerbrauchsausweisWohnen TYPE "Standard" | "StandardXL" | "Beratung" | "BeratungXL" | "Offline" | "OfflineXL" DEFAULT "Standard";
|
||||||
|
DEFINE FIELD ausweisart ON VerbrauchsausweisWohnen TYPE "VerbrauchsausweisWohnen" | "VerbrauchsausweisGewerbe" | "BedarfsausweisWohnen" | "BedarfsausweisGewerbe" | "GEGNachweisWohnen" | "GEGNachweisGewerbe" DEFAULT "VerbrauchsausweisWohnen";
|
||||||
|
|
||||||
|
DEFINE FIELD created_at ON VerbrauchsausweisWohnen TYPE datetime DEFAULT time::now();
|
||||||
|
DEFINE FIELD updated_at ON VerbrauchsausweisWohnen TYPE datetime VALUE time::now();
|
||||||
|
|
||||||
|
-- Prüfpunkte
|
||||||
|
DEFINE FIELD pruefpunkt_heizungsalter ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_verbrauch_niedrig ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_verbrauch_hoch ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_verbrauch_null ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_verbrauch_abweichung ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_wohnflaeche_einheiten ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_strom_null ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_strom_abweichung ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_plz ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_heizungsanlage ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_anteil_warmwasser ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_wohnflaeche ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_geometrie ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
DEFINE FIELD pruefpunkt_fenster ON VerbrauchsausweisWohnen TYPE option<bool> DEFAULT false;
|
||||||
|
|
||||||
|
DEFINE FIELD benutzer ON VerbrauchsausweisWohnen TYPE option<record<Benutzer>>;
|
||||||
|
DEFINE FIELD rechnung ON VerbrauchsausweisWohnen TYPE option<record<Rechnung>>;
|
||||||
|
DEFINE FIELD aufnahme ON VerbrauchsausweisWohnen TYPE record<Aufnahme>;
|
||||||
Reference in New Issue
Block a user