26
bun.lock
26
bun.lock
@@ -9,6 +9,7 @@
|
|||||||
"@astrojs/svelte": "^2.2.0",
|
"@astrojs/svelte": "^2.2.0",
|
||||||
"@astrojs/tailwind": "^3.1.3",
|
"@astrojs/tailwind": "^3.1.3",
|
||||||
"@aws-sdk/client-s3": "^3.758.0",
|
"@aws-sdk/client-s3": "^3.758.0",
|
||||||
|
"@highlight-run/node": "^3.12.0",
|
||||||
"@ibcornelsen/ui": "^0.0.2",
|
"@ibcornelsen/ui": "^0.0.2",
|
||||||
"@mollie/api-client": "^4.1.0",
|
"@mollie/api-client": "^4.1.0",
|
||||||
"@pdfme/common": "^5.2.16",
|
"@pdfme/common": "^5.2.16",
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
"express": "^4.21.2",
|
"express": "^4.21.2",
|
||||||
"flag-icons": "^6.15.0",
|
"flag-icons": "^6.15.0",
|
||||||
"fontkit": "^2.0.4",
|
"fontkit": "^2.0.4",
|
||||||
|
"highlight.run": "^9.14.0",
|
||||||
"is-base64": "^1.1.0",
|
"is-base64": "^1.1.0",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"js-interpolate": "^1.3.2",
|
"js-interpolate": "^1.3.2",
|
||||||
@@ -346,6 +348,8 @@
|
|||||||
|
|
||||||
"@hapi/bourne": ["@hapi/bourne@3.0.0", "", {}, "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w=="],
|
"@hapi/bourne": ["@hapi/bourne@3.0.0", "", {}, "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w=="],
|
||||||
|
|
||||||
|
"@highlight-run/node": ["@highlight-run/node@3.12.0", "", { "dependencies": { "@prisma/instrumentation": ">=5.0.0", "require-in-the-middle": "^7.4.0" } }, "sha512-wmvj8rf+p/JbUTfgsbhc5srP87sfZNofHTlXlaLI5JT8XpfRgBHXgSHWOw79l8dgncqceUkct1cN+liR5LdnKg=="],
|
||||||
|
|
||||||
"@humanwhocodes/config-array": ["@humanwhocodes/config-array@0.9.5", "", { "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw=="],
|
"@humanwhocodes/config-array": ["@humanwhocodes/config-array@0.9.5", "", { "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw=="],
|
||||||
|
|
||||||
"@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@1.2.1", "", {}, "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="],
|
"@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@1.2.1", "", {}, "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="],
|
||||||
@@ -416,6 +420,10 @@
|
|||||||
|
|
||||||
"@opentelemetry/api": ["@opentelemetry/api@1.4.1", "", {}, "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA=="],
|
"@opentelemetry/api": ["@opentelemetry/api@1.4.1", "", {}, "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA=="],
|
||||||
|
|
||||||
|
"@opentelemetry/api-logs": ["@opentelemetry/api-logs@0.57.2", "", { "dependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A=="],
|
||||||
|
|
||||||
|
"@opentelemetry/instrumentation": ["@opentelemetry/instrumentation@0.57.2", "", { "dependencies": { "@opentelemetry/api-logs": "0.57.2", "@types/shimmer": "^1.2.0", "import-in-the-middle": "^1.8.1", "require-in-the-middle": "^7.1.1", "semver": "^7.5.2", "shimmer": "^1.2.1" }, "peerDependencies": { "@opentelemetry/api": "^1.3.0" } }, "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg=="],
|
||||||
|
|
||||||
"@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="],
|
"@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="],
|
||||||
|
|
||||||
"@oven/bun-darwin-aarch64": ["@oven/bun-darwin-aarch64@1.2.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ggZfdpgUJ/OiWrfcfTgHeSTHcec5HAjkGrZHL9FJ/R60sydRKPYHgAgexdIoJAGfsCVAL+x7y8NSTRIAX8J4Ng=="],
|
"@oven/bun-darwin-aarch64": ["@oven/bun-darwin-aarch64@1.2.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ggZfdpgUJ/OiWrfcfTgHeSTHcec5HAjkGrZHL9FJ/R60sydRKPYHgAgexdIoJAGfsCVAL+x7y8NSTRIAX8J4Ng=="],
|
||||||
@@ -500,6 +508,8 @@
|
|||||||
|
|
||||||
"@prisma/get-platform": ["@prisma/get-platform@6.4.1", "", { "dependencies": { "@prisma/debug": "6.4.1" } }, "sha512-gXqZaDI5scDkBF8oza7fOD3Q3QMD0e0rBynlzDDZdTWbWmzjuW58PRZtj+jkvKje2+ZigCWkH8SsWZAsH6q1Yw=="],
|
"@prisma/get-platform": ["@prisma/get-platform@6.4.1", "", { "dependencies": { "@prisma/debug": "6.4.1" } }, "sha512-gXqZaDI5scDkBF8oza7fOD3Q3QMD0e0rBynlzDDZdTWbWmzjuW58PRZtj+jkvKje2+ZigCWkH8SsWZAsH6q1Yw=="],
|
||||||
|
|
||||||
|
"@prisma/instrumentation": ["@prisma/instrumentation@6.5.0", "", { "dependencies": { "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0" }, "peerDependencies": { "@opentelemetry/api": "^1.8" } }, "sha512-morJDtFRoAp5d/KENEm+K6Y3PQcn5bCvpJ5a9y3V3DNMrNy/ZSn2zulPGj+ld+Xj2UYVoaMJ8DpBX/o6iF6OiA=="],
|
||||||
|
|
||||||
"@prisma/internals": ["@prisma/internals@5.0.0", "", { "dependencies": { "@antfu/ni": "0.21.4", "@opentelemetry/api": "1.4.1", "@prisma/debug": "5.0.0", "@prisma/engines": "5.0.0", "@prisma/fetch-engine": "5.0.0", "@prisma/generator-helper": "5.0.0", "@prisma/get-platform": "5.0.0", "@prisma/prisma-schema-wasm": "4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584", "archiver": "5.3.1", "arg": "5.0.2", "checkpoint-client": "1.1.24", "cli-truncate": "2.1.0", "dotenv": "16.0.3", "escape-string-regexp": "4.0.0", "execa": "5.1.1", "find-up": "5.0.0", "fp-ts": "2.16.0", "fs-extra": "11.1.1", "fs-jetpack": "5.1.0", "global-dirs": "3.0.1", "globby": "11.1.0", "indent-string": "4.0.0", "is-windows": "1.0.2", "is-wsl": "2.2.0", "kleur": "4.1.5", "new-github-issue-url": "0.2.1", "node-fetch": "2.6.12", "npm-packlist": "5.1.3", "open": "7.4.2", "p-map": "4.0.0", "prompts": "2.4.2", "read-pkg-up": "7.0.1", "replace-string": "3.1.0", "resolve": "1.22.2", "string-width": "4.2.3", "strip-ansi": "6.0.1", "strip-indent": "3.0.0", "temp-dir": "2.0.0", "temp-write": "4.0.0", "tempy": "1.0.1", "terminal-link": "2.1.1", "tmp": "0.2.1", "ts-pattern": "4.3.0" } }, "sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ=="],
|
"@prisma/internals": ["@prisma/internals@5.0.0", "", { "dependencies": { "@antfu/ni": "0.21.4", "@opentelemetry/api": "1.4.1", "@prisma/debug": "5.0.0", "@prisma/engines": "5.0.0", "@prisma/fetch-engine": "5.0.0", "@prisma/generator-helper": "5.0.0", "@prisma/get-platform": "5.0.0", "@prisma/prisma-schema-wasm": "4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584", "archiver": "5.3.1", "arg": "5.0.2", "checkpoint-client": "1.1.24", "cli-truncate": "2.1.0", "dotenv": "16.0.3", "escape-string-regexp": "4.0.0", "execa": "5.1.1", "find-up": "5.0.0", "fp-ts": "2.16.0", "fs-extra": "11.1.1", "fs-jetpack": "5.1.0", "global-dirs": "3.0.1", "globby": "11.1.0", "indent-string": "4.0.0", "is-windows": "1.0.2", "is-wsl": "2.2.0", "kleur": "4.1.5", "new-github-issue-url": "0.2.1", "node-fetch": "2.6.12", "npm-packlist": "5.1.3", "open": "7.4.2", "p-map": "4.0.0", "prompts": "2.4.2", "read-pkg-up": "7.0.1", "replace-string": "3.1.0", "resolve": "1.22.2", "string-width": "4.2.3", "strip-ansi": "6.0.1", "strip-indent": "3.0.0", "temp-dir": "2.0.0", "temp-write": "4.0.0", "tempy": "1.0.1", "terminal-link": "2.1.1", "tmp": "0.2.1", "ts-pattern": "4.3.0" } }, "sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ=="],
|
||||||
|
|
||||||
"@prisma/prisma-schema-wasm": ["@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584", "", {}, "sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA=="],
|
"@prisma/prisma-schema-wasm": ["@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584", "", {}, "sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA=="],
|
||||||
@@ -792,6 +802,8 @@
|
|||||||
|
|
||||||
"@types/serve-static": ["@types/serve-static@1.15.7", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "*" } }, "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw=="],
|
"@types/serve-static": ["@types/serve-static@1.15.7", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "*" } }, "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw=="],
|
||||||
|
|
||||||
|
"@types/shimmer": ["@types/shimmer@1.2.0", "", {}, "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg=="],
|
||||||
|
|
||||||
"@types/siema": ["@types/siema@1.4.11", "", {}, "sha512-bPazsNVnMryrzZx2HiAeDXEpgaO98ToQk0cYJ/7yomLlVNHsn4IYPrLoQ50tQt11FGvkkNoepRyKcTNUhqjj+g=="],
|
"@types/siema": ["@types/siema@1.4.11", "", {}, "sha512-bPazsNVnMryrzZx2HiAeDXEpgaO98ToQk0cYJ/7yomLlVNHsn4IYPrLoQ50tQt11FGvkkNoepRyKcTNUhqjj+g=="],
|
||||||
|
|
||||||
"@types/sinonjs__fake-timers": ["@types/sinonjs__fake-timers@8.1.1", "", {}, "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="],
|
"@types/sinonjs__fake-timers": ["@types/sinonjs__fake-timers@8.1.1", "", {}, "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="],
|
||||||
@@ -834,6 +846,8 @@
|
|||||||
|
|
||||||
"acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="],
|
"acorn": ["acorn@8.14.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA=="],
|
||||||
|
|
||||||
|
"acorn-import-attributes": ["acorn-import-attributes@1.9.5", "", { "peerDependencies": { "acorn": "^8" } }, "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ=="],
|
||||||
|
|
||||||
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
|
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
|
||||||
|
|
||||||
"add-dom-event-listener": ["add-dom-event-listener@1.1.0", "", { "dependencies": { "object-assign": "4.x" } }, "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw=="],
|
"add-dom-event-listener": ["add-dom-event-listener@1.1.0", "", { "dependencies": { "object-assign": "4.x" } }, "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw=="],
|
||||||
@@ -1012,6 +1026,8 @@
|
|||||||
|
|
||||||
"ci-info": ["ci-info@4.1.0", "", {}, "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A=="],
|
"ci-info": ["ci-info@4.1.0", "", {}, "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A=="],
|
||||||
|
|
||||||
|
"cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="],
|
||||||
|
|
||||||
"classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="],
|
"classnames": ["classnames@2.5.1", "", {}, "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="],
|
||||||
|
|
||||||
"clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="],
|
"clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="],
|
||||||
@@ -1470,6 +1486,8 @@
|
|||||||
|
|
||||||
"hexoid": ["hexoid@2.0.0", "", {}, "sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw=="],
|
"hexoid": ["hexoid@2.0.0", "", {}, "sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw=="],
|
||||||
|
|
||||||
|
"highlight.run": ["highlight.run@9.14.0", "", {}, "sha512-ZR+ZLHlVU8lXqsuto0ZEMAOuvptaTBBf1jradnKDIn9OfAXupcYFbkASDlbsZtyBh2SYJSK50xwrucXujhksRg=="],
|
||||||
|
|
||||||
"hosted-git-info": ["hosted-git-info@2.8.9", "", {}, "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="],
|
"hosted-git-info": ["hosted-git-info@2.8.9", "", {}, "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="],
|
||||||
|
|
||||||
"hotkeys-js": ["hotkeys-js@3.13.9", "", {}, "sha512-3TRCj9u9KUH6cKo25w4KIdBfdBfNRjfUwrljCLDC2XhmPDG0SjAZFcFZekpUZFmXzfYoGhFDcdx2gX/vUVtztQ=="],
|
"hotkeys-js": ["hotkeys-js@3.13.9", "", {}, "sha512-3TRCj9u9KUH6cKo25w4KIdBfdBfNRjfUwrljCLDC2XhmPDG0SjAZFcFZekpUZFmXzfYoGhFDcdx2gX/vUVtztQ=="],
|
||||||
@@ -1504,6 +1522,8 @@
|
|||||||
|
|
||||||
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
|
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
|
||||||
|
|
||||||
|
"import-in-the-middle": ["import-in-the-middle@1.13.1", "", { "dependencies": { "acorn": "^8.14.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^1.2.2", "module-details-from-path": "^1.0.3" } }, "sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA=="],
|
||||||
|
|
||||||
"import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="],
|
"import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="],
|
||||||
|
|
||||||
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
|
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
|
||||||
@@ -1862,6 +1882,8 @@
|
|||||||
|
|
||||||
"mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
|
"mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="],
|
||||||
|
|
||||||
|
"module-details-from-path": ["module-details-from-path@1.0.3", "", {}, "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A=="],
|
||||||
|
|
||||||
"moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="],
|
"moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="],
|
||||||
|
|
||||||
"moment-timezone": ["moment-timezone@0.5.47", "", { "dependencies": { "moment": "^2.29.4" } }, "sha512-UbNt/JAWS0m/NJOebR0QMRHBk0hu03r5dx9GK8Cs0AS3I81yDcOc9k+DytPItgVvBP7J6Mf6U2n3BPAacAV9oA=="],
|
"moment-timezone": ["moment-timezone@0.5.47", "", { "dependencies": { "moment": "^2.29.4" } }, "sha512-UbNt/JAWS0m/NJOebR0QMRHBk0hu03r5dx9GK8Cs0AS3I81yDcOc9k+DytPItgVvBP7J6Mf6U2n3BPAacAV9oA=="],
|
||||||
@@ -2246,6 +2268,8 @@
|
|||||||
|
|
||||||
"request-progress": ["request-progress@3.0.0", "", { "dependencies": { "throttleit": "^1.0.0" } }, "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg=="],
|
"request-progress": ["request-progress@3.0.0", "", { "dependencies": { "throttleit": "^1.0.0" } }, "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg=="],
|
||||||
|
|
||||||
|
"require-in-the-middle": ["require-in-the-middle@7.5.2", "", { "dependencies": { "debug": "^4.3.5", "module-details-from-path": "^1.0.3", "resolve": "^1.22.8" } }, "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ=="],
|
||||||
|
|
||||||
"resize-observer-polyfill": ["resize-observer-polyfill@1.5.1", "", {}, "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="],
|
"resize-observer-polyfill": ["resize-observer-polyfill@1.5.1", "", {}, "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="],
|
||||||
|
|
||||||
"resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
|
"resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
|
||||||
@@ -2326,6 +2350,8 @@
|
|||||||
|
|
||||||
"shiki": ["shiki@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/engine-javascript": "1.29.2", "@shikijs/engine-oniguruma": "1.29.2", "@shikijs/langs": "1.29.2", "@shikijs/themes": "1.29.2", "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg=="],
|
"shiki": ["shiki@1.29.2", "", { "dependencies": { "@shikijs/core": "1.29.2", "@shikijs/engine-javascript": "1.29.2", "@shikijs/engine-oniguruma": "1.29.2", "@shikijs/langs": "1.29.2", "@shikijs/themes": "1.29.2", "@shikijs/types": "1.29.2", "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg=="],
|
||||||
|
|
||||||
|
"shimmer": ["shimmer@1.2.1", "", {}, "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="],
|
||||||
|
|
||||||
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
|
"side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
|
||||||
|
|
||||||
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
|
"side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { defineConfig } from "cypress";
|
import { defineConfig } from "cypress";
|
||||||
import dsv from "@rollup/plugin-dsv"
|
import dsv from "@rollup/plugin-dsv"
|
||||||
|
import { prisma } from "./src/lib/server/prisma"
|
||||||
import { fileURLToPath } from "url";
|
import { fileURLToPath } from "url";
|
||||||
import vitePreprocessor from "cypress-vite";
|
import vitePreprocessor from "cypress-vite";
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ export default defineConfig({
|
|||||||
baseUrl: "http://localhost:3000",
|
baseUrl: "http://localhost:3000",
|
||||||
viewportHeight: 900,
|
viewportHeight: 900,
|
||||||
viewportWidth: 1660,
|
viewportWidth: 1660,
|
||||||
supportFile: false,
|
supportFile: fileURLToPath(new URL("./src/cypress/support/commands.ts", import.meta.url)),
|
||||||
specPattern: "./src/cypress/e2e/**/*.{ts,js}",
|
specPattern: "./src/cypress/e2e/**/*.{ts,js}",
|
||||||
setupNodeEvents(on, config) {
|
setupNodeEvents(on, config) {
|
||||||
on("file:preprocessor", vitePreprocessor({
|
on("file:preprocessor", vitePreprocessor({
|
||||||
@@ -18,6 +18,7 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
|
".prisma/client/index-browser": fileURLToPath(new URL("./node_modules/.prisma/client/index-browser.js", import.meta.url)),
|
||||||
"#": fileURLToPath(new URL("./src", import.meta.url)),
|
"#": fileURLToPath(new URL("./src", import.meta.url)),
|
||||||
"#components": fileURLToPath(new URL("./src/components", import.meta.url)),
|
"#components": fileURLToPath(new URL("./src/components", import.meta.url)),
|
||||||
"#lib": fileURLToPath(new URL("./src/lib", import.meta.url))
|
"#lib": fileURLToPath(new URL("./src/lib", import.meta.url))
|
||||||
@@ -31,6 +32,11 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
plugins: [dsv()]
|
plugins: [dsv()]
|
||||||
}))
|
}))
|
||||||
|
on("task", {
|
||||||
|
async verbrauchsausweisWohnen(query) {
|
||||||
|
return await prisma.verbrauchsausweisWohnen.findFirst(query)
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
component: {
|
component: {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
"@astrojs/svelte": "^2.2.0",
|
"@astrojs/svelte": "^2.2.0",
|
||||||
"@astrojs/tailwind": "^3.1.3",
|
"@astrojs/tailwind": "^3.1.3",
|
||||||
"@aws-sdk/client-s3": "^3.758.0",
|
"@aws-sdk/client-s3": "^3.758.0",
|
||||||
|
"@highlight-run/node": "^3.12.0",
|
||||||
"@ibcornelsen/ui": "^0.0.2",
|
"@ibcornelsen/ui": "^0.0.2",
|
||||||
"@mollie/api-client": "^4.1.0",
|
"@mollie/api-client": "^4.1.0",
|
||||||
"@pdfme/common": "^5.2.16",
|
"@pdfme/common": "^5.2.16",
|
||||||
@@ -39,6 +40,7 @@
|
|||||||
"express": "^4.21.2",
|
"express": "^4.21.2",
|
||||||
"flag-icons": "^6.15.0",
|
"flag-icons": "^6.15.0",
|
||||||
"fontkit": "^2.0.4",
|
"fontkit": "^2.0.4",
|
||||||
|
"highlight.run": "^9.14.0",
|
||||||
"is-base64": "^1.1.0",
|
"is-base64": "^1.1.0",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"js-interpolate": "^1.3.2",
|
"js-interpolate": "^1.3.2",
|
||||||
|
|||||||
57
prisma/migrations/20250324191736_ausweistyp/migration.sql
Normal file
57
prisma/migrations/20250324191736_ausweistyp/migration.sql
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
Warnings:
|
||||||
|
|
||||||
|
- You are about to drop the column `ausweistyp` on the `Rechnung` table. All the data in the column will be lost.
|
||||||
|
|
||||||
|
*/
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Anteilshaber" ALTER COLUMN "uid" SET DEFAULT 'ant-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Aufnahme" ALTER COLUMN "uid" SET DEFAULT 'auf-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'bag-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||||
|
ALTER COLUMN "uid" SET DEFAULT 'baw-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Bild" ALTER COLUMN "uid" SET DEFAULT 'img-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Event" ALTER COLUMN "uid" SET DEFAULT 'evt-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGEinpreisung" ALTER COLUMN "uid" SET DEFAULT 'gge-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "uid" SET DEFAULT 'gng-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "uid" SET DEFAULT 'gnw-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Objekt" ALTER COLUMN "uid" SET DEFAULT 'obj-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Rechnung" DROP COLUMN "ausweistyp",
|
||||||
|
ALTER COLUMN "uid" SET DEFAULT 'inv-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Tickets" ALTER COLUMN "uid" SET DEFAULT 'tkt-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Unterlage" ALTER COLUMN "uid" SET DEFAULT 'pln-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||||
|
ALTER COLUMN "uid" SET DEFAULT 'vag-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "ausweistyp" "AusweisTyp" NOT NULL DEFAULT 'Standard',
|
||||||
|
ALTER COLUMN "uid" SET DEFAULT 'vaw-' || gen_random_uuid();
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "benutzer" ALTER COLUMN "uid" SET DEFAULT 'usr-' || gen_random_uuid();
|
||||||
573
prisma/migrations/20250324210605_id/migration.sql
Normal file
573
prisma/migrations/20250324210605_id/migration.sql
Normal file
@@ -0,0 +1,573 @@
|
|||||||
|
/*
|
||||||
|
Warnings:
|
||||||
|
|
||||||
|
- The primary key for the `Anteilshaber` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Anteilshaber` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Anteilshaber` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `ApiRequests` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to alter the column `id` on the `ApiRequests` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Aufnahme` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Aufnahme` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Aufnahme` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `BedarfsausweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `BedarfsausweisGewerbe` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `BedarfsausweisGewerbe` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `BedarfsausweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `BedarfsausweisWohnen` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Bild` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to alter the column `id` on the `Bild` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Event` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Event` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Event` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `GEGEinpreisung` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `GEGEinpreisung` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `GEGEinpreisung` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `GEGNachweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `GEGNachweisGewerbe` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `GEGNachweisGewerbe` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `GEGNachweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `GEGNachweisWohnen` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `GEGNachweisWohnen` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Objekt` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Objekt` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Objekt` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Rechnung` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Rechnung` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Rechnung` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Tickets` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Tickets` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Tickets` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `Unterlage` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `Unterlage` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `Unterlage` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `VerbrauchsausweisGewerbe` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `VerbrauchsausweisGewerbe` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `VerbrauchsausweisGewerbe` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `VerbrauchsausweisWohnen` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `VerbrauchsausweisWohnen` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `VerbrauchsausweisWohnen` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- The primary key for the `benutzer` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||||
|
- You are about to drop the column `uid` on the `benutzer` table. All the data in the column will be lost.
|
||||||
|
- You are about to alter the column `id` on the `benutzer` table. The data in that column could be lost. The data in that column will be cast from `Integer` to `VarChar(8)`.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Anteilshaber` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `ApiRequests` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Aufnahme` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `BedarfsausweisGewerbe` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `BedarfsausweisWohnen` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Bild` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Event` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `GEGEinpreisung` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `GEGNachweisGewerbe` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `GEGNachweisWohnen` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Objekt` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Rechnung` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Tickets` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `Unterlage` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `VerbrauchsausweisGewerbe` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `VerbrauchsausweisWohnen` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
- A unique constraint covering the columns `[id]` on the table `benutzer` will be added. If there are existing duplicate values, this will fail.
|
||||||
|
|
||||||
|
*/
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Anteilshaber" DROP CONSTRAINT "Anteilshaber_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Anteilshaber" DROP CONSTRAINT "Anteilshaber_objekt_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "ApiRequests" DROP CONSTRAINT "ApiRequests_user_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Aufnahme" DROP CONSTRAINT "Aufnahme_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Aufnahme" DROP CONSTRAINT "Aufnahme_objekt_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_geg_einpreisung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisWohnen" DROP CONSTRAINT "BedarfsausweisWohnen_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisWohnen" DROP CONSTRAINT "BedarfsausweisWohnen_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "BedarfsausweisWohnen" DROP CONSTRAINT "BedarfsausweisWohnen_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Bild" DROP CONSTRAINT "Bild_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Event" DROP CONSTRAINT "Event_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Event" DROP CONSTRAINT "Event_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGEinpreisung" DROP CONSTRAINT "GEGEinpreisung_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_geg_einpreisung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_geg_einpreisung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Objekt" DROP CONSTRAINT "Objekt_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Rechnung" DROP CONSTRAINT "Rechnung_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "RefreshTokens" DROP CONSTRAINT "RefreshTokens_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Tickets" DROP CONSTRAINT "Tickets_bearbeiter_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Tickets" DROP CONSTRAINT "Tickets_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "Unterlage" DROP CONSTRAINT "Unterlage_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisGewerbe" DROP CONSTRAINT "VerbrauchsausweisGewerbe_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisGewerbe" DROP CONSTRAINT "VerbrauchsausweisGewerbe_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisGewerbe" DROP CONSTRAINT "VerbrauchsausweisGewerbe_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisWohnen" DROP CONSTRAINT "VerbrauchsausweisWohnen_aufnahme_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisWohnen" DROP CONSTRAINT "VerbrauchsausweisWohnen_benutzer_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "VerbrauchsausweisWohnen" DROP CONSTRAINT "VerbrauchsausweisWohnen_rechnung_id_fkey";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "documenttemplates" DROP CONSTRAINT "benutzer_fk";
|
||||||
|
|
||||||
|
-- DropForeignKey
|
||||||
|
ALTER TABLE "tokens" DROP CONSTRAINT "fk_benutzer_tokens_user_id";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Anteilshaber_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Aufnahme_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "BedarfsausweisGewerbe_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "BedarfsausweisWohnen_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Event_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "GEGEinpreisung_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "GEGNachweisGewerbe_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "GEGNachweisWohnen_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Objekt_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Rechnung_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Tickets_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "Unterlage_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "VerbrauchsausweisGewerbe_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "VerbrauchsausweisWohnen_uid_key";
|
||||||
|
|
||||||
|
-- DropIndex
|
||||||
|
DROP INDEX "benutzer_uid_key";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Anteilshaber" DROP CONSTRAINT "Anteilshaber_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "objekt_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Anteilshaber_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Anteilshaber_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "ApiRequests" DROP CONSTRAINT "ApiRequests_pkey",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "user_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "ApiRequests_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "ApiRequests_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Aufnahme" DROP CONSTRAINT "Aufnahme_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "objekt_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Aufnahme_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Aufnahme_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "BedarfsausweisGewerbe" DROP CONSTRAINT "BedarfsausweisGewerbe_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "geg_einpreisung_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "BedarfsausweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "BedarfsausweisGewerbe_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "BedarfsausweisWohnen" DROP CONSTRAINT "BedarfsausweisWohnen_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "BedarfsausweisWohnen_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "BedarfsausweisWohnen_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Bild" DROP CONSTRAINT "Bild_pkey",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "uid" SET DEFAULT 'img-' || gen_random_uuid(),
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Bild_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Bild_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Event" DROP CONSTRAINT "Event_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Event_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Event_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGEinpreisung" DROP CONSTRAINT "GEGEinpreisung_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "GEGEinpreisung_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "GEGEinpreisung_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGNachweisGewerbe" DROP CONSTRAINT "GEGNachweisGewerbe_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "geg_einpreisung_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "GEGNachweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "GEGNachweisGewerbe_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "GEGNachweisWohnen" DROP CONSTRAINT "GEGNachweisWohnen_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "geg_einpreisung_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "GEGNachweisWohnen_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "GEGNachweisWohnen_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Objekt" DROP CONSTRAINT "Objekt_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Objekt_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Objekt_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Rechnung" DROP CONSTRAINT "Rechnung_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Rechnung_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Rechnung_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "RefreshTokens" ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT;
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Tickets" DROP CONSTRAINT "Tickets_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "bearbeiter_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Tickets_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Tickets_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Unterlage" DROP CONSTRAINT "Unterlage_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "Unterlage_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "Unterlage_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "VerbrauchsausweisGewerbe" DROP CONSTRAINT "VerbrauchsausweisGewerbe_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "VerbrauchsausweisGewerbe_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "VerbrauchsausweisGewerbe_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "VerbrauchsausweisWohnen" DROP CONSTRAINT "VerbrauchsausweisWohnen_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ALTER COLUMN "benutzer_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "rechnung_id" SET DATA TYPE TEXT,
|
||||||
|
ALTER COLUMN "aufnahme_id" SET DATA TYPE TEXT,
|
||||||
|
ADD CONSTRAINT "VerbrauchsausweisWohnen_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "VerbrauchsausweisWohnen_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "benutzer" DROP CONSTRAINT "benutzer_pkey",
|
||||||
|
DROP COLUMN "uid",
|
||||||
|
ALTER COLUMN "id" DROP DEFAULT,
|
||||||
|
ALTER COLUMN "id" SET DATA TYPE VARCHAR(8),
|
||||||
|
ADD CONSTRAINT "benutzer_pkey" PRIMARY KEY ("id");
|
||||||
|
DROP SEQUENCE "benutzer_id_seq";
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "documenttemplates" ALTER COLUMN "user_id" SET DATA TYPE TEXT;
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "tokens" ALTER COLUMN "user_id" SET DATA TYPE TEXT;
|
||||||
|
|
||||||
|
-- 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 "BedarfsausweisWohnen_id_key" ON "BedarfsausweisWohnen"("id");
|
||||||
|
|
||||||
|
-- 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 "GEGNachweisWohnen_id_key" ON "GEGNachweisWohnen"("id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Objekt_id_key" ON "Objekt"("id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Rechnung_id_key" ON "Rechnung"("id");
|
||||||
|
|
||||||
|
-- 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 "VerbrauchsausweisWohnen_id_key" ON "VerbrauchsausweisWohnen"("id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "benutzer_id_key" ON "benutzer"("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 "tokens" ADD CONSTRAINT "fk_benutzer_tokens_user_id" FOREIGN KEY ("user_id") REFERENCES "benutzer"("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
model Anteilshaber {
|
model Anteilshaber {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
benutzer_id Int
|
|
||||||
rolle String? @db.VarChar
|
rolle String? @db.VarChar
|
||||||
privilegien BigInt?
|
privilegien BigInt?
|
||||||
uid String @unique @default(dbgenerated("'ant-' || gen_random_uuid()"))
|
|
||||||
|
benutzer_id String
|
||||||
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
objekt_id Int
|
objekt_id String
|
||||||
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
model ApiRequests {
|
model ApiRequests {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
date DateTime @default(now()) @db.Timestamp(6)
|
date DateTime @default(now()) @db.Timestamp(6)
|
||||||
ip String @db.VarChar(50)
|
ip String @db.VarChar(50)
|
||||||
method String @db.VarChar(10)
|
method String @db.VarChar(10)
|
||||||
@@ -9,6 +9,6 @@ model ApiRequests {
|
|||||||
responseTime Float
|
responseTime Float
|
||||||
responseSize Int
|
responseSize Int
|
||||||
userAgent String @db.VarChar(500)
|
userAgent String @db.VarChar(500)
|
||||||
user_id Int?
|
user_id String?
|
||||||
user Benutzer? @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
user Benutzer? @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,10 +13,8 @@ enum Lueftungskonzept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Aufnahme {
|
model Aufnahme {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
/// @zod.describe("UID der Gebäude Aufnahme")
|
benutzer_id String?
|
||||||
uid String @unique @default(dbgenerated("'auf-' || gen_random_uuid()"))
|
|
||||||
benutzer_id Int?
|
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
/// @zod.describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen")
|
/// @zod.describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen")
|
||||||
ausweisart Ausweisart?
|
ausweisart Ausweisart?
|
||||||
@@ -142,7 +140,7 @@ model Aufnahme {
|
|||||||
geg_nachweise_gewerbe GEGNachweisGewerbe[]
|
geg_nachweise_gewerbe GEGNachweisGewerbe[]
|
||||||
bedarfsausweise_gewerbe BedarfsausweisGewerbe[]
|
bedarfsausweise_gewerbe BedarfsausweisGewerbe[]
|
||||||
|
|
||||||
objekt_id Int
|
objekt_id String
|
||||||
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
model BedarfsausweisGewerbe {
|
model BedarfsausweisGewerbe {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'bag-' || gen_random_uuid()"))
|
|
||||||
|
|
||||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
@@ -27,13 +26,13 @@ model BedarfsausweisGewerbe {
|
|||||||
klimatisierung Boolean? @default(false)
|
klimatisierung Boolean? @default(false)
|
||||||
|
|
||||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||||
benutzer_id Int?
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
geg_einpreisung_id Int? @unique
|
geg_einpreisung_id String? @unique
|
||||||
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
model BedarfsausweisWohnen {
|
model BedarfsausweisWohnen {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
alte_ausweis_id Int?
|
alte_ausweis_id Int?
|
||||||
uid String @unique @default(dbgenerated("'baw-' || gen_random_uuid()"))
|
benutzer_id String?
|
||||||
benutzer_id Int?
|
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
registriernummer String? @db.VarChar
|
registriernummer String? @db.VarChar
|
||||||
|
|
||||||
@@ -79,13 +78,14 @@ model BedarfsausweisWohnen {
|
|||||||
created_at DateTime @default(now())
|
created_at DateTime @default(now())
|
||||||
updated_at DateTime @updatedAt
|
updated_at DateTime @updatedAt
|
||||||
|
|
||||||
|
ausweistyp AusweisTyp @default(Standard)
|
||||||
|
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ enum BenutzerRolle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Benutzer {
|
model Benutzer {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'usr-' || gen_random_uuid()"))
|
|
||||||
name String? @db.VarChar(50)
|
name String? @db.VarChar(50)
|
||||||
vorname String? @db.VarChar(50)
|
vorname String? @db.VarChar(50)
|
||||||
email String @unique(map: "benutzer_email_idx") @db.VarChar(255)
|
email String @unique(map: "benutzer_email_idx") @db.VarChar(255)
|
||||||
|
|||||||
@@ -8,11 +8,10 @@ enum BilderKategorie {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Bild {
|
model Bild {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
kategorie BilderKategorie
|
kategorie BilderKategorie
|
||||||
uid String @unique @default(dbgenerated("'img-' || gen_random_uuid()"))
|
|
||||||
name String
|
name String
|
||||||
|
|
||||||
aufnahme_id Int?
|
aufnahme_id String?
|
||||||
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
@@ -3,8 +3,7 @@
|
|||||||
// Hier werden beispielsweise Events wie "Nachricht Verschickt" gespeichert.
|
// Hier werden beispielsweise Events wie "Nachricht Verschickt" gespeichert.
|
||||||
// Diese Events werden dann in der Admin-Oberfläche angezeigt.
|
// Diese Events werden dann in der Admin-Oberfläche angezeigt.
|
||||||
model Event {
|
model Event {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'evt-' || gen_random_uuid()"))
|
|
||||||
date DateTime @default(now()) @db.Timestamp(6)
|
date DateTime @default(now()) @db.Timestamp(6)
|
||||||
|
|
||||||
title String @db.VarChar(255)
|
title String @db.VarChar(255)
|
||||||
@@ -12,9 +11,9 @@ model Event {
|
|||||||
|
|
||||||
|
|
||||||
// Verlinkung des Gebäudes
|
// Verlinkung des Gebäudes
|
||||||
aufnahme_id Int
|
aufnahme_id String
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
// Verlinkung des Benutzers
|
// Verlinkung des Benutzers
|
||||||
benutzer_id Int?
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ enum Einpreisungsstatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model GEGEinpreisung {
|
model GEGEinpreisung {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'gge-' || gen_random_uuid()"))
|
|
||||||
|
|
||||||
empfaenger String? @db.VarChar
|
empfaenger String? @db.VarChar
|
||||||
strasse String? @db.VarChar
|
strasse String? @db.VarChar
|
||||||
@@ -31,6 +30,6 @@ model GEGEinpreisung {
|
|||||||
bedarfsausweis_gewerbe BedarfsausweisGewerbe?
|
bedarfsausweis_gewerbe BedarfsausweisGewerbe?
|
||||||
|
|
||||||
/// @zod.describe("Die ID des Benutzers, der diese Einpreisung bekommt.")
|
/// @zod.describe("Die ID des Benutzers, der diese Einpreisung bekommt.")
|
||||||
benutzer_id Int?
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
model GEGNachweisGewerbe {
|
model GEGNachweisGewerbe {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'gng-' || gen_random_uuid()"))
|
|
||||||
|
|
||||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
@@ -18,13 +17,13 @@ model GEGNachweisGewerbe {
|
|||||||
beschreibung String? @db.Text
|
beschreibung String? @db.Text
|
||||||
|
|
||||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||||
benutzer_id Int?
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
geg_einpreisung_id Int? @unique
|
geg_einpreisung_id String? @unique
|
||||||
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
model GEGNachweisWohnen {
|
model GEGNachweisWohnen {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'gnw-' || gen_random_uuid()"))
|
|
||||||
|
|
||||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
@@ -18,13 +17,13 @@ model GEGNachweisWohnen {
|
|||||||
beschreibung String? @db.Text
|
beschreibung String? @db.Text
|
||||||
|
|
||||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||||
benutzer_id Int?
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
geg_einpreisung_id Int? @unique
|
geg_einpreisung_id String? @unique
|
||||||
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
model Objekt {
|
model Objekt {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'obj-' || gen_random_uuid()"))
|
|
||||||
benutzer_id Int?
|
|
||||||
|
|
||||||
latitude Float?
|
latitude Float?
|
||||||
longitude Float?
|
longitude Float?
|
||||||
@@ -15,6 +13,7 @@ model Objekt {
|
|||||||
|
|
||||||
erstellungsdatum DateTime? @default(now())
|
erstellungsdatum DateTime? @default(now())
|
||||||
|
|
||||||
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id])
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id])
|
||||||
aufnahmen Aufnahme[]
|
aufnahmen Aufnahme[]
|
||||||
anteilshaber Anteilshaber[]
|
anteilshaber Anteilshaber[]
|
||||||
|
|||||||
@@ -24,10 +24,8 @@ enum AusweisTyp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Rechnung {
|
model Rechnung {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'inv-' || gen_random_uuid()"))
|
|
||||||
|
|
||||||
benutzer_id Int
|
|
||||||
empfaenger String? @db.VarChar
|
empfaenger String? @db.VarChar
|
||||||
strasse String? @db.VarChar
|
strasse String? @db.VarChar
|
||||||
plz String? @db.VarChar
|
plz String? @db.VarChar
|
||||||
@@ -46,13 +44,13 @@ model Rechnung {
|
|||||||
bezahlmethode Bezahlmethoden
|
bezahlmethode Bezahlmethoden
|
||||||
status Rechnungsstatus
|
status Rechnungsstatus
|
||||||
services Service[]
|
services Service[]
|
||||||
ausweistyp AusweisTyp @default(Standard)
|
|
||||||
betrag Float
|
betrag Float
|
||||||
erstellt_am DateTime @default(now())
|
erstellt_am DateTime @default(now())
|
||||||
bezahlt_am DateTime?
|
bezahlt_am DateTime?
|
||||||
storniert_am DateTime?
|
storniert_am DateTime?
|
||||||
transaktions_referenz String? @unique @db.VarChar
|
transaktions_referenz String? @unique @db.VarChar
|
||||||
|
|
||||||
|
benutzer_id String
|
||||||
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
verbrauchsausweis_wohnen VerbrauchsausweisWohnen?
|
verbrauchsausweis_wohnen VerbrauchsausweisWohnen?
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
model RefreshTokens {
|
model RefreshTokens {
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
benutzer_id Int
|
|
||||||
token String @unique
|
token String @unique
|
||||||
// Wir nehmen die IP Adresse des Clients mit auf.
|
// Wir nehmen die IP Adresse des Clients mit auf.
|
||||||
// Falls sich die IP Adresse eines Refresh Token Owners ändert, können wir diesen einfach invalidieren.
|
// Falls sich die IP Adresse eines Refresh Token Owners ändert, können wir diesen einfach invalidieren.
|
||||||
@@ -9,5 +8,6 @@ model RefreshTokens {
|
|||||||
expiry DateTime
|
expiry DateTime
|
||||||
|
|
||||||
// Relationen
|
// Relationen
|
||||||
|
benutzer_id String
|
||||||
user Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: Cascade)
|
user Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: Cascade)
|
||||||
}
|
}
|
||||||
@@ -8,9 +8,7 @@ enum TicketStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Tickets {
|
model Tickets {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'tkt-' || gen_random_uuid()"))
|
|
||||||
benutzer_id Int?
|
|
||||||
created_at DateTime @default(now())
|
created_at DateTime @default(now())
|
||||||
updated_at DateTime? @updatedAt
|
updated_at DateTime? @updatedAt
|
||||||
deleted_at DateTime?
|
deleted_at DateTime?
|
||||||
@@ -21,10 +19,11 @@ model Tickets {
|
|||||||
metadata Json?
|
metadata Json?
|
||||||
email String
|
email String
|
||||||
|
|
||||||
bearbeiter_id Int?
|
bearbeiter_id String?
|
||||||
prioritaet Int? @default(0)
|
prioritaet Int? @default(0)
|
||||||
|
|
||||||
// Relationen
|
// Relationen
|
||||||
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], name: "ErstellteTickets")
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], name: "ErstellteTickets")
|
||||||
bearbeiter Benutzer? @relation(fields: [bearbeiter_id], references: [id], name: "BearbeiteteTickets")
|
bearbeiter Benutzer? @relation(fields: [bearbeiter_id], references: [id], name: "BearbeiteteTickets")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,11 @@ enum UnterlagenKategorie {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Unterlage {
|
model Unterlage {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
uid String @unique @default(dbgenerated("'pln-' || gen_random_uuid()"))
|
|
||||||
name String?
|
name String?
|
||||||
kategorie String?
|
kategorie String?
|
||||||
mime String?
|
mime String?
|
||||||
|
|
||||||
aufnahme_id Int?
|
aufnahme_id String?
|
||||||
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
|
|
||||||
model VerbrauchsausweisGewerbe {
|
model VerbrauchsausweisGewerbe {
|
||||||
id Int @id @default(autoincrement())
|
id String @id @unique @db.VarChar(8)
|
||||||
alte_ausweis_id Int?
|
alte_ausweis_id Int?
|
||||||
uid String @unique @default(dbgenerated("'vag-' || gen_random_uuid()"))
|
|
||||||
benutzer_id Int?
|
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
registriernummer String? @db.VarChar
|
registriernummer String? @db.VarChar
|
||||||
zusaetzliche_heizquelle Boolean?
|
zusaetzliche_heizquelle Boolean?
|
||||||
@@ -66,13 +64,15 @@ model VerbrauchsausweisGewerbe {
|
|||||||
created_at DateTime @default(now())
|
created_at DateTime @default(now())
|
||||||
updated_at DateTime @updatedAt
|
updated_at DateTime @updatedAt
|
||||||
|
|
||||||
|
ausweistyp AusweisTyp @default(Standard)
|
||||||
|
|
||||||
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
model VerbrauchsausweisWohnen {
|
model VerbrauchsausweisWohnen {
|
||||||
id Int @id @default(autoincrement())
|
/// @zod.describe("ID des Ausweises")
|
||||||
|
id String @id @unique @db.VarChar(8)
|
||||||
alte_ausweis_id Int?
|
alte_ausweis_id Int?
|
||||||
/// @zod.describe("UID des Ausweises")
|
|
||||||
uid String @unique @default(dbgenerated("'vaw-' || gen_random_uuid()"))
|
|
||||||
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
|
||||||
benutzer_id Int?
|
|
||||||
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
|
||||||
ausstellgrund Ausstellgrund?
|
ausstellgrund Ausstellgrund?
|
||||||
/// @zod.describe("Die Registriernummer des Ausweises")
|
/// @zod.describe("Die Registriernummer des Ausweises")
|
||||||
@@ -67,15 +64,19 @@ model VerbrauchsausweisWohnen {
|
|||||||
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
|
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
|
||||||
kontrolldatei_angefragt Boolean? @default(false)
|
kontrolldatei_angefragt Boolean? @default(false)
|
||||||
|
|
||||||
|
ausweistyp AusweisTyp @default(Standard)
|
||||||
|
|
||||||
created_at DateTime @default(now())
|
created_at DateTime @default(now())
|
||||||
updated_at DateTime @updatedAt
|
updated_at DateTime @updatedAt
|
||||||
|
|
||||||
|
/// @zod.describe("Die ID des Benutzers, welchem dieser Ausweis gehört")
|
||||||
|
benutzer_id String?
|
||||||
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
rechnung_id Int? @unique
|
rechnung_id String? @unique
|
||||||
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
||||||
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
|
||||||
aufnahme_id Int @unique
|
aufnahme_id String @unique
|
||||||
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ model documenttemplates {
|
|||||||
name String @db.VarChar(100)
|
name String @db.VarChar(100)
|
||||||
shortdescription String @db.VarChar(100)
|
shortdescription String @db.VarChar(100)
|
||||||
longdescription String @db.VarChar(5000)
|
longdescription String @db.VarChar(5000)
|
||||||
user_id Int
|
user_id String
|
||||||
is_private Boolean @default(true)
|
is_private Boolean @default(true)
|
||||||
documenttype Int
|
documenttype Int
|
||||||
filename String @db.VarChar(100)
|
filename String @db.VarChar(100)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
model tokens {
|
model tokens {
|
||||||
id Int @id(map: "PK_TOKENS") @default(autoincrement())
|
id Int @id(map: "PK_TOKENS") @default(autoincrement())
|
||||||
token String @db.VarChar(36)
|
token String @db.VarChar(36)
|
||||||
user_id Int
|
user_id String
|
||||||
date_created DateTime @default(now()) @db.Timestamp(6)
|
date_created DateTime @default(now()) @db.Timestamp(6)
|
||||||
last_used DateTime @default(now()) @db.Timestamp(6)
|
last_used DateTime @default(now()) @db.Timestamp(6)
|
||||||
times_used Int @default(0)
|
times_used Int @default(0)
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ await prisma.benutzer.create({
|
|||||||
vorname: "Admin",
|
vorname: "Admin",
|
||||||
adresse: "Adminstraße 1",
|
adresse: "Adminstraße 1",
|
||||||
plz: "12345",
|
plz: "12345",
|
||||||
|
id: "USADMIN1"
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -106,6 +107,7 @@ await prisma.benutzer.create({
|
|||||||
vorname: "User",
|
vorname: "User",
|
||||||
adresse: "Userstraße 1",
|
adresse: "Userstraße 1",
|
||||||
plz: "12345",
|
plz: "12345",
|
||||||
|
id: "USUSER01"
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
16
server.ts
16
server.ts
@@ -1,7 +1,21 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
|
import { H, Handlers } from '@highlight-run/node'
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import { handler as ssrHandler } from './dist/server/entry.mjs';
|
import { handler as ssrHandler } from './dist/server/entry.mjs';
|
||||||
|
|
||||||
|
const highlightConfig = {
|
||||||
|
projectID: '1jdkoe52',
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
serviceVersion: "git-sha",
|
||||||
|
environment: "production",
|
||||||
|
backendUrl: "http://212.227.61.149:3000/public",
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
H.init(highlightConfig)
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const base = '/';
|
const base = '/';
|
||||||
@@ -9,6 +23,8 @@ app.use(base, express.static('dist/client/'));
|
|||||||
app.use(ssrHandler);
|
app.use(ssrHandler);
|
||||||
app.use(express.json({ limit: "50mb" }))
|
app.use(express.json({ limit: "50mb" }))
|
||||||
app.use(express.urlencoded({ limit: "50mb" }))
|
app.use(express.urlencoded({ limit: "50mb" }))
|
||||||
|
app.use(Handlers.middleware(highlightConfig))
|
||||||
|
app.use(Handlers.errorHandler(highlightConfig))
|
||||||
|
|
||||||
app.listen(3000, function() {
|
app.listen(3000, function() {
|
||||||
console.log('Server started on http://localhost:3000');
|
console.log('Server started on http://localhost:3000');
|
||||||
|
|||||||
@@ -5,10 +5,6 @@ export const createCaller = createCallerFactory({
|
|||||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
|
||||||
"auth/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"),
|
||||||
@@ -16,30 +12,34 @@ 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"),
|
||||||
|
"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"),
|
||||||
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
"bedarfsausweis-gewerbe/[uid]": await import("../src/pages/api/bedarfsausweis-gewerbe/[uid].ts"),
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/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/[uid]": await import("../src/pages/api/bedarfsausweis-wohnen/[uid].ts"),
|
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
"bilder/[uid]": await import("../src/pages/api/bilder/[uid].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
"geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"),
|
"geg-nachweis-gewerbe/[uid]": await import("../src/pages/api/geg-nachweis-gewerbe/[uid].ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
||||||
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
|
"geg-nachweis-wohnen/[uid]": await import("../src/pages/api/geg-nachweis-wohnen/[uid].ts"),
|
||||||
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/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/[uid]": await import("../src/pages/api/rechnung/[uid].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"),
|
||||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
"ticket": await import("../src/pages/api/ticket/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-wohnen/[uid]": await import("../src/pages/api/verbrauchsausweis-wohnen/[uid].ts"),
|
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||||
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
|
||||||
"verbrauchsausweis-gewerbe/[uid]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[uid].ts"),
|
|
||||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
"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"),
|
"webhooks/mollie": await import("../src/pages/api/webhooks/mollie.ts"),
|
||||||
"aufnahme/[uid]/bilder": await import("../src/pages/api/aufnahme/[uid]/bilder.ts"),
|
"aufnahme/[id]/bilder": await import("../src/pages/api/aufnahme/[id]/bilder.ts"),
|
||||||
"aufnahme/[uid]": await import("../src/pages/api/aufnahme/[uid]/index.ts"),
|
"aufnahme/[id]": await import("../src/pages/api/aufnahme/[id]/index.ts"),
|
||||||
"aufnahme/[uid]/unterlagen": await import("../src/pages/api/aufnahme/[uid]/unterlagen.ts"),
|
"aufnahme/[id]/unterlagen": await import("../src/pages/api/aufnahme/[id]/unterlagen.ts"),
|
||||||
"objekt/[uid]": await import("../src/pages/api/objekt/[uid]/index.ts"),
|
"objekt/[id]": await import("../src/pages/api/objekt/[id]/index.ts"),
|
||||||
})
|
})
|
||||||
@@ -3,7 +3,7 @@ import { api } from "astro-typesafe-api/client"
|
|||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
export async function ausweisSpeichern(
|
export async function ausweisSpeichern(
|
||||||
@@ -13,8 +13,8 @@ export async function ausweisSpeichern(
|
|||||||
bilder: BildClient[],
|
bilder: BildClient[],
|
||||||
ausweisart: Enums.Ausweisart
|
ausweisart: Enums.Ausweisart
|
||||||
) {
|
) {
|
||||||
if (objekt.uid) {
|
if (objekt.id) {
|
||||||
await api.objekt._uid.PATCH.fetch({
|
await api.objekt._id.PATCH.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -22,14 +22,14 @@ export async function ausweisSpeichern(
|
|||||||
plz: objekt.plz
|
plz: objekt.plz
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: objekt.uid
|
id: objekt.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.objekt.PUT.fetch({
|
const { id } = await api.objekt.PUT.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -41,16 +41,16 @@ export async function ausweisSpeichern(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt.uid = uid;
|
objekt.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (aufnahme.uid) {
|
if (aufnahme.id) {
|
||||||
await api.aufnahme._uid.PATCH.fetch({
|
await api.aufnahme._id.PATCH.fetch({
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung,
|
baujahr_heizung: aufnahme.baujahr_heizung,
|
||||||
baujahr_klima: aufnahme.baujahr_klima,
|
baujahr_klima: aufnahme.baujahr_klima || [],
|
||||||
alternative_heizung: aufnahme.alternative_heizung,
|
alternative_heizung: aufnahme.alternative_heizung,
|
||||||
alternative_kuehlung: aufnahme.alternative_kuehlung,
|
alternative_kuehlung: aufnahme.alternative_kuehlung,
|
||||||
alternative_lueftung: aufnahme.alternative_lueftung,
|
alternative_lueftung: aufnahme.alternative_lueftung,
|
||||||
@@ -102,14 +102,14 @@ export async function ausweisSpeichern(
|
|||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.aufnahme.PUT.fetch({
|
const { id } = await api.aufnahme.PUT.fetch({
|
||||||
aufnahme: {
|
aufnahme: {
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung,
|
baujahr_heizung: aufnahme.baujahr_heizung,
|
||||||
@@ -165,56 +165,56 @@ export async function ausweisSpeichern(
|
|||||||
zentralheizung: aufnahme.zentralheizung,
|
zentralheizung: aufnahme.zentralheizung,
|
||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
},
|
},
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
aufnahme.uid = uid
|
aufnahme.id = id
|
||||||
}
|
}
|
||||||
|
|
||||||
let patchRoute: any;
|
let patchRoute: any;
|
||||||
let putRoute: any;
|
let putRoute: any;
|
||||||
if (ausweisart == Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
if (ausweisart == Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
patchRoute = api["verbrauchsausweis-wohnen"]._uid.PATCH
|
patchRoute = api["verbrauchsausweis-wohnen"]._id.PATCH
|
||||||
putRoute = api["verbrauchsausweis-wohnen"].PUT
|
putRoute = api["verbrauchsausweis-wohnen"].PUT
|
||||||
} else if (ausweisart == Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
} else if (ausweisart == Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
patchRoute = api["verbrauchsausweis-gewerbe"]._uid.PATCH
|
patchRoute = api["verbrauchsausweis-gewerbe"]._id.PATCH
|
||||||
putRoute = api["verbrauchsausweis-gewerbe"].PUT
|
putRoute = api["verbrauchsausweis-gewerbe"].PUT
|
||||||
} else if (ausweisart == Enums.Ausweisart.BedarfsausweisWohnen) {
|
} else if (ausweisart == Enums.Ausweisart.BedarfsausweisWohnen) {
|
||||||
patchRoute = api["bedarfsausweis-wohnen"]._uid.PATCH
|
patchRoute = api["bedarfsausweis-wohnen"]._id.PATCH
|
||||||
putRoute = api["bedarfsausweis-wohnen"].PUT
|
putRoute = api["bedarfsausweis-wohnen"].PUT
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.uid) {
|
if (ausweis.id) {
|
||||||
await patchRoute.fetch({
|
await patchRoute.fetch({
|
||||||
...exclude(ausweis, ["uid"])
|
...exclude(ausweis, ["id"])
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid
|
id: ausweis.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await putRoute.fetch({
|
const { id } = await putRoute.fetch({
|
||||||
ausweis,
|
ausweis,
|
||||||
uid_aufnahme: aufnahme.uid
|
aufnahme_id: aufnahme.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
ausweis.uid = uid;
|
ausweis.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
await api.aufnahme._uid.bilder.PUT.fetch(bilder.map(bild => bild.uid), {
|
await api.aufnahme._id.bilder.PUT.fetch(bilder.map(bild => bild.id), {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -222,29 +222,8 @@ export async function ausweisSpeichern(
|
|||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
uid_ausweis: ausweis.uid,
|
ausweis_id: ausweis.id,
|
||||||
uid_aufnahme: aufnahme.uid,
|
aufnahme_id: aufnahme.id,
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// await client.v1.tickets.erstellen.mutate({
|
|
||||||
// titel: "Ausweis konnte nicht gespeichert werden",
|
|
||||||
// beschreibung: e.stack,
|
|
||||||
// email: user.email ?? "",
|
|
||||||
// metadata: JSON.stringify({
|
|
||||||
// ausweis,
|
|
||||||
// }),
|
|
||||||
// });
|
|
||||||
|
|
||||||
// addNotification({
|
|
||||||
// dismissable: false,
|
|
||||||
// message:
|
|
||||||
// "Ausweis konnte nicht gespeichert werden, bitte versuchen sie es erneut.",
|
|
||||||
// subtext:
|
|
||||||
// "Sollte das Problem weiterhin bestehen, kontaktieren sie bitte den Support.",
|
|
||||||
// timeout: 6000,
|
|
||||||
// type: "error",
|
|
||||||
// });
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,95 +0,0 @@
|
|||||||
import {
|
|
||||||
ObjektClient,
|
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisWohnenClient,
|
|
||||||
} from "#components/Ausweis/types.js";
|
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
|
||||||
import { Enums } from "#lib/client/prisma";
|
|
||||||
import { addNotification, updateNotification } from "@ibcornelsen/ui";
|
|
||||||
import { api } from "astro-typesafe-api/client";
|
|
||||||
import Cookies from "js-cookie";
|
|
||||||
|
|
||||||
export async function bilderHochladen(
|
|
||||||
images: (UploadedGebaeudeBild & { base64?: string, update?: boolean })[],
|
|
||||||
aufnahme_uid: string
|
|
||||||
) {
|
|
||||||
if (images.length == 0) {
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wenn Bilder hochgeladen werden konvertieren wir sie zu base64, das heißt, dass die base64 Eigenschaft bei diesen Bildern
|
|
||||||
// existiert. Das müssen wir TypeScript nur wissen lassen, damit es uns in Ruhe lässt.
|
|
||||||
const imagesToUpload = images.filter(
|
|
||||||
(image) => !image.uid || image.update
|
|
||||||
) as unknown as {
|
|
||||||
data: string;
|
|
||||||
kategorie: string;
|
|
||||||
uid?: string;
|
|
||||||
update: boolean;
|
|
||||||
}[];
|
|
||||||
|
|
||||||
if (imagesToUpload.length == 0) {
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Alle Bilder hochladen
|
|
||||||
const notification = addNotification({
|
|
||||||
dismissable: false,
|
|
||||||
message: "Bilder hochladen.",
|
|
||||||
subtext: `${imagesToUpload.length} Bilder werden hochgeladen, bitte haben sie Geduld.`,
|
|
||||||
timeout: 0,
|
|
||||||
type: "info",
|
|
||||||
});
|
|
||||||
for (let i = 0; i < imagesToUpload.length; i++) {
|
|
||||||
const image = imagesToUpload[i];
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (image.update) {
|
|
||||||
await api.bilder._uid.PATCH.fetch({
|
|
||||||
data: image.data,
|
|
||||||
kategorie: image.kategorie as Enums.BilderKategorie,
|
|
||||||
}, {
|
|
||||||
params: {
|
|
||||||
uid: image.uid as string,
|
|
||||||
},
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
const response = await api.aufnahme._uid.bilder.PUT.fetch({
|
|
||||||
data: image.data,
|
|
||||||
kategorie: image.kategorie as Enums.BilderKategorie
|
|
||||||
}, {
|
|
||||||
params: {
|
|
||||||
uid: aufnahme_uid
|
|
||||||
},
|
|
||||||
headers: {
|
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
image.uid = response.uid;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateNotification(notification, {
|
|
||||||
dismissable: true,
|
|
||||||
message: "Bild hochgeladen.",
|
|
||||||
subtext: `${i + 1}/${
|
|
||||||
imagesToUpload.length
|
|
||||||
} Bildern wurden erfolgreich hochgeladen.`,
|
|
||||||
timeout: 3000,
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
updateNotification(notification, {
|
|
||||||
dismissable: true,
|
|
||||||
message: "Bild konnte nicht hochgeladen werden.",
|
|
||||||
subtext: `Eines ihrer Bilder konnte nicht hochgeladen werden. Wir haben bereits ein Ticket erstellt und melden uns so schnell wie möglich bei ihnen.`,
|
|
||||||
timeout: 15000,
|
|
||||||
type: "error",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return images;
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ import { api } from "astro-typesafe-api/client"
|
|||||||
import { exclude } from "#lib/exclude.js";
|
import { exclude } from "#lib/exclude.js";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BildClient, ObjektClient, UnterlageClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient, } from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
export async function nachweisSpeichern(
|
export async function nachweisSpeichern(
|
||||||
@@ -14,8 +14,8 @@ export async function nachweisSpeichern(
|
|||||||
unterlagen: UnterlageClient[],
|
unterlagen: UnterlageClient[],
|
||||||
ausweisart: Enums.Ausweisart
|
ausweisart: Enums.Ausweisart
|
||||||
) {
|
) {
|
||||||
if (objekt.uid) {
|
if (objekt.id) {
|
||||||
await api.objekt._uid.PATCH.fetch({
|
await api.objekt._id.PATCH.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -23,14 +23,14 @@ export async function nachweisSpeichern(
|
|||||||
plz: objekt.plz
|
plz: objekt.plz
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: objekt.uid
|
id: objekt.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.objekt.PUT.fetch({
|
const { id } = await api.objekt.PUT.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
@@ -42,13 +42,13 @@ export async function nachweisSpeichern(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt.uid = uid;
|
objekt.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (aufnahme.uid) {
|
if (aufnahme.id) {
|
||||||
await api.aufnahme._uid.PATCH.fetch({
|
await api.aufnahme._id.PATCH.fetch({
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude || [],
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude || [],
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung || [],
|
baujahr_heizung: aufnahme.baujahr_heizung || [],
|
||||||
baujahr_klima: aufnahme.baujahr_klima || [],
|
baujahr_klima: aufnahme.baujahr_klima || [],
|
||||||
@@ -103,14 +103,14 @@ export async function nachweisSpeichern(
|
|||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await api.aufnahme.PUT.fetch({
|
const { id } = await api.aufnahme.PUT.fetch({
|
||||||
aufnahme: {
|
aufnahme: {
|
||||||
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
baujahr_gebaeude: aufnahme.baujahr_gebaeude,
|
||||||
baujahr_heizung: aufnahme.baujahr_heizung,
|
baujahr_heizung: aufnahme.baujahr_heizung,
|
||||||
@@ -166,56 +166,56 @@ export async function nachweisSpeichern(
|
|||||||
zentralheizung: aufnahme.zentralheizung,
|
zentralheizung: aufnahme.zentralheizung,
|
||||||
zirkulation: aufnahme.zirkulation
|
zirkulation: aufnahme.zirkulation
|
||||||
},
|
},
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
aufnahme.uid = uid
|
aufnahme.id = id
|
||||||
}
|
}
|
||||||
|
|
||||||
let patchRoute: any;
|
let patchRoute: any;
|
||||||
let putRoute: any;
|
let putRoute: any;
|
||||||
if (ausweisart == Enums.Ausweisart.GEGNachweisWohnen) {
|
if (ausweisart == Enums.Ausweisart.GEGNachweisWohnen) {
|
||||||
patchRoute = api["geg-nachweis-wohnen"]._uid.PATCH
|
patchRoute = api["geg-nachweis-wohnen"]._id.PATCH
|
||||||
putRoute = api["geg-nachweis-wohnen"].PUT
|
putRoute = api["geg-nachweis-wohnen"].PUT
|
||||||
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.GEGNachweisGewerbe) {
|
||||||
patchRoute = api["geg-nachweis-gewerbe"]._uid.PATCH
|
patchRoute = api["geg-nachweis-gewerbe"]._id.PATCH
|
||||||
putRoute = api["geg-nachweis-gewerbe"].PUT
|
putRoute = api["geg-nachweis-gewerbe"].PUT
|
||||||
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||||
patchRoute = api["bedarfsausweis-gewerbe"]._uid.PATCH
|
patchRoute = api["bedarfsausweis-gewerbe"]._id.PATCH
|
||||||
putRoute = api["bedarfsausweis-gewerbe"].PUT
|
putRoute = api["bedarfsausweis-gewerbe"].PUT
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nachweis.uid) {
|
if (nachweis.id) {
|
||||||
await patchRoute.fetch({
|
await patchRoute.fetch({
|
||||||
...exclude(nachweis, ["uid"])
|
...exclude(nachweis, ["id"])
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: nachweis.uid
|
id: nachweis.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const { uid } = await putRoute.fetch({
|
const { id } = await putRoute.fetch({
|
||||||
nachweis,
|
nachweis,
|
||||||
uid_aufnahme: aufnahme.uid
|
uid_aufnahme: aufnahme.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
nachweis.uid = uid;
|
nachweis.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
await api.aufnahme._uid.bilder.PUT.fetch(bilder.map(bild => bild.uid), {
|
await api.aufnahme._id.bilder.PUT.fetch(bilder.map(bild => bild.id), {
|
||||||
params: {
|
params: {
|
||||||
uid: aufnahme.uid
|
id: aufnahme.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -223,8 +223,8 @@ export async function nachweisSpeichern(
|
|||||||
})
|
})
|
||||||
|
|
||||||
return {
|
return {
|
||||||
uid_nachweis: nachweis.uid,
|
nachweis_id: nachweis.id,
|
||||||
uid_aufnahme: aufnahme.uid,
|
aufnahme_id: aufnahme.id,
|
||||||
uid_objekt: objekt.uid
|
objekt_id: objekt.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { AufnahmeClient, BildClient, ObjektClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { Enums } from "#lib/client/prisma";
|
|
||||||
import { openWindowWithPost } from "#lib/helpers/window.js";
|
import { openWindowWithPost } from "#lib/helpers/window.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
import AnlagenTechnikImage from "./AnlagenTechnikImage.svelte";
|
import AnlagenTechnikImage from "./AnlagenTechnikImage.svelte";
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: BedarfsausweisGewerbe;
|
export let ausweis: BedarfsausweisGewerbe;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
import ImageGrid from "#components/ImageGrid.svelte";
|
import ImageGrid from "#components/ImageGrid.svelte";
|
||||||
import {
|
import {
|
||||||
Enums,
|
Enums,
|
||||||
} from "#lib/client/prisma";
|
} from "#lib/client/prisma.js";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
|
BildClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
import { boolean } from "astro:schema";
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
export let gebaeude: ObjektClient;
|
export let gebaeude: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
|
import { ausweisSpeichern } from "#client/lib/ausweisSpeichern.js";
|
||||||
import { validateAccessTokenClient } from "#client/lib/validateAccessToken.js";
|
import { validateAccessTokenClient } from "#client/lib/validateAccessToken.js";
|
||||||
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BedarfsausweisWohnenClient, BenutzerClient, GEGNachweisWohnenClient, ObjektClient, UnterlageClient, BildClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
import EmbeddedAuthFlowModule from "#modules/EmbeddedAuthFlowModule.svelte";
|
||||||
|
|
||||||
@@ -11,9 +11,9 @@
|
|||||||
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
import { nachweisSpeichern } from "#client/lib/nachweisSpeichern.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient | GEGNachweisWohnenClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let unterlagen: UnterlageClient[] = [];
|
export let unterlagen: UnterlageClient[] = [];
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient | null;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
|
|
||||||
openWindowWithPost("/kundendaten", {
|
openWindowWithPost("/kundendaten", {
|
||||||
ausweis,
|
ausweis: { ...ausweis, ausweistyp },
|
||||||
objekt,
|
objekt,
|
||||||
aufnahme,
|
aufnahme,
|
||||||
bilder,
|
bilder,
|
||||||
@@ -71,31 +71,32 @@
|
|||||||
|
|
||||||
let result: Awaited<ReturnType<typeof ausweisSpeichern>> | Awaited<ReturnType<typeof nachweisSpeichern>> | null = null;
|
let result: Awaited<ReturnType<typeof ausweisSpeichern>> | Awaited<ReturnType<typeof nachweisSpeichern>> | null = null;
|
||||||
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
if (ausweisart === Enums.Ausweisart.GEGNachweisWohnen || ausweisart === Enums.Ausweisart.GEGNachweisGewerbe || ausweisart === Enums.Ausweisart.BedarfsausweisGewerbe) {
|
||||||
result = await nachweisSpeichern(ausweis, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
result = await nachweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, unterlagen, ausweisart)
|
||||||
|
ausweis.id = result.nachweis_id;
|
||||||
} else {
|
} else {
|
||||||
result = await ausweisSpeichern(ausweis, objekt, aufnahme, bilder, ausweisart)
|
result = await ausweisSpeichern({ ...ausweis, ausweistyp }, objekt, aufnahme, bilder, ausweisart)
|
||||||
|
ausweis.id = result.ausweis_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result !== null) {
|
if (result !== null) {
|
||||||
window.history.pushState(
|
window.history.pushState(
|
||||||
{},
|
{},
|
||||||
"",
|
"",
|
||||||
`${location.pathname}?uid=${ausweis.uid}`
|
`${location.pathname}?id=${ausweis.id}`
|
||||||
);
|
);
|
||||||
|
|
||||||
localStorage.clear()
|
localStorage.clear()
|
||||||
window.location.href = `/speichern-erfolgreich?uid=${ausweis.uid}`
|
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function hilfeBestellen() {
|
async function hilfeBestellen() {
|
||||||
openWindowWithPost("/kundendaten", {
|
openWindowWithPost("/kundendaten", {
|
||||||
ausweis,
|
ausweis: { ...ausweis, ausweistyp },
|
||||||
objekt,
|
objekt,
|
||||||
aufnahme,
|
aufnahme,
|
||||||
bilder,
|
bilder,
|
||||||
ausweisart,
|
ausweisart
|
||||||
ausweistyp
|
|
||||||
}, "")
|
}, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import ImageGrid from "../ImageGrid.svelte";;
|
import ImageGrid from "../ImageGrid.svelte";;
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./types.js";
|
||||||
|
|
||||||
export let images: UploadedGebaeudeBild[] = [];
|
export let images: BildClient[] = [];
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
export let gebaeude: ObjektClient;
|
export let gebaeude: ObjektClient;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,24 +1,21 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import HelpLabel from "#components/labels/HelpLabel.svelte";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import Inputlabel from "#components/labels/InputLabel.svelte";
|
|
||||||
|
|
||||||
import HeizungImage from "./HeizungImage.svelte";
|
import HeizungImage from "./HeizungImage.svelte";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
import { boolean } from "astro:schema";
|
|
||||||
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
import SanierungsOption from "#components/Ausweis/SanierungsOption.svelte";
|
||||||
import AngabenZurHeizunganlage from "#components/Ausweis/AngabenZurHeizunganlage.svelte";
|
import AngabenZurHeizunganlage from "#components/Ausweis/AngabenZurHeizunganlage.svelte";
|
||||||
|
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
|
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./types.js";
|
} from "./types.js";
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
| VerbrauchsausweisWohnenClient
|
| VerbrauchsausweisWohnenClient
|
||||||
| VerbrauchsausweisGewerbeClient
|
| VerbrauchsausweisGewerbeClient
|
||||||
| BedarfsausweisWohnenClient;
|
| BedarfsausweisWohnenClient;
|
||||||
export let images: UploadedGebaeudeBild[];
|
export let images: BildClient[];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -31,14 +31,7 @@ export type UploadedGebaeudeBild = OmitKeys<Bild, "id" | "aufnahme_id"> & {
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type VerbrauchsausweisWohnenClient = OmitKeys<
|
export type VerbrauchsausweisWohnenClient = VerbrauchsausweisWohnen
|
||||||
VerbrauchsausweisWohnen,
|
|
||||||
"id" | "aufnahme_id" | "benutzer_id"
|
|
||||||
> & {
|
|
||||||
uid_objekt: string,
|
|
||||||
uid_aufnahme: string,
|
|
||||||
uid_benutzer?: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
||||||
@@ -50,14 +43,7 @@ export type VerbrauchsausweisWohnenClient = OmitKeys<
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type VerbrauchsausweisGewerbeClient = OmitKeys<
|
export type VerbrauchsausweisGewerbeClient = VerbrauchsausweisGewerbe
|
||||||
VerbrauchsausweisGewerbe,
|
|
||||||
"id" | "aufnahme_id" | "benutzer_id"
|
|
||||||
> & {
|
|
||||||
uid_objekt: string,
|
|
||||||
uid_aufnahme: string,
|
|
||||||
uid_benutzer?: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
* Das ist der Typescript Type für den Verbrauchsausweis Gewerbe mit allen Feldern die
|
||||||
@@ -69,14 +55,7 @@ export type VerbrauchsausweisGewerbeClient = OmitKeys<
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {VerbrauchsausweisWohnenClient}
|
* @typedef {VerbrauchsausweisWohnenClient}
|
||||||
*/
|
*/
|
||||||
export type BedarfsausweisWohnenClient = OmitKeys<
|
export type BedarfsausweisWohnenClient = BedarfsausweisWohnen
|
||||||
BedarfsausweisWohnen,
|
|
||||||
"id" | "aufnahme_id" | "benutzer_id"
|
|
||||||
> & {
|
|
||||||
uid_objekt: string,
|
|
||||||
uid_aufnahme: string,
|
|
||||||
uid_benutzer?: string
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
* Das ist der Typescript Type für die Gebäude Stammdaten mit allen Feldern die
|
||||||
@@ -88,20 +67,15 @@ export type BedarfsausweisWohnenClient = OmitKeys<
|
|||||||
* @export
|
* @export
|
||||||
* @typedef {ObjektClient}
|
* @typedef {ObjektClient}
|
||||||
*/
|
*/
|
||||||
export type ObjektClient = OmitKeys<Objekt, "benutzer_id" | "id">;
|
export type ObjektClient = Objekt;
|
||||||
|
|
||||||
export type AufnahmeClient = OmitKeys<
|
export type AufnahmeClient = Aufnahme
|
||||||
Aufnahme,
|
|
||||||
"id" | "objekt_id" | "benutzer_id"
|
|
||||||
> & {
|
|
||||||
uid_objekt: string
|
|
||||||
};
|
|
||||||
|
|
||||||
export type TicketClient = OmitKeys<Tickets, "bearbeiter_id" | "benutzer_id" | "id">
|
export type TicketClient = OmitKeys<Tickets, "bearbeiter_id" | "benutzer_id" | "id">
|
||||||
|
|
||||||
export type BenutzerClient = OmitKeys<Benutzer, "id" | "passwort">;
|
export type BenutzerClient = OmitKeys<Benutzer, "passwort">;
|
||||||
|
|
||||||
export type RechnungClient = OmitKeys<Rechnung, "id">
|
export type RechnungClient = Rechnung
|
||||||
|
|
||||||
export function ZodOverlap<T, S = z.ZodType<T, z.ZodTypeDef, T>>(arg: S): S {
|
export function ZodOverlap<T, S = z.ZodType<T, z.ZodTypeDef, T>>(arg: S): S {
|
||||||
return arg;
|
return arg;
|
||||||
@@ -122,34 +96,34 @@ export type OptionalNullable<T> = T extends object ? {
|
|||||||
} : T;
|
} : T;
|
||||||
|
|
||||||
export const UUidWithPrefix = z.string().refine((value) => {
|
export const UUidWithPrefix = z.string().refine((value) => {
|
||||||
const prefixedUUidRegex = /^([0-9a-z]+)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
|
const prefixedUUidRegex = /^([A-Z]{2})[0-9A-Z]{6}$/i
|
||||||
|
|
||||||
const match = value.match(prefixedUUidRegex)
|
const match = value.match(prefixedUUidRegex)
|
||||||
|
|
||||||
if (match && match[1] in VALID_UUID_PREFIXES) {
|
if (match && Object.values(VALID_UUID_PREFIXES).indexOf(match[1] as VALID_UUID_PREFIXES) > -1) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
})
|
})
|
||||||
|
|
||||||
export function getAusweisartFromUUID(uid: string): Enums.Ausweisart | null {
|
export function getAusweisartFromUUID(id: string): Enums.Ausweisart | null {
|
||||||
if (!UUidWithPrefix.safeParse(uid).success) {
|
if (!UUidWithPrefix.safeParse(id).success) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(uid.split("-")[0]) {
|
switch(id.slice(0, 2) as VALID_UUID_PREFIXES) {
|
||||||
case "vaw":
|
case VALID_UUID_PREFIXES.VerbrauchsausweisWohnen:
|
||||||
return Enums.Ausweisart.VerbrauchsausweisWohnen
|
return Enums.Ausweisart.VerbrauchsausweisWohnen
|
||||||
case "vag":
|
case VALID_UUID_PREFIXES.VerbrauchsausweisGewerbe:
|
||||||
return Enums.Ausweisart.VerbrauchsausweisGewerbe
|
return Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
case "baw":
|
case VALID_UUID_PREFIXES.BedarfsausweisWohnen:
|
||||||
return Enums.Ausweisart.BedarfsausweisWohnen
|
return Enums.Ausweisart.BedarfsausweisWohnen
|
||||||
case "bag":
|
case VALID_UUID_PREFIXES.BedarfsausweisGewerbe:
|
||||||
return Enums.Ausweisart.BedarfsausweisGewerbe
|
return Enums.Ausweisart.BedarfsausweisGewerbe
|
||||||
case "gnw":
|
case VALID_UUID_PREFIXES.GEGNachweisWohnen:
|
||||||
return Enums.Ausweisart.GEGNachweisWohnen
|
return Enums.Ausweisart.GEGNachweisWohnen
|
||||||
case "gng":
|
case VALID_UUID_PREFIXES.GEGNachweisGewerbe:
|
||||||
return Enums.Ausweisart.GEGNachweisGewerbe
|
return Enums.Ausweisart.GEGNachweisGewerbe
|
||||||
default:
|
default:
|
||||||
return null
|
return null
|
||||||
@@ -157,7 +131,7 @@ export function getAusweisartFromUUID(uid: string): Enums.Ausweisart | null {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export type UnterlageClient = Omit<Unterlage, "id" | "aufnahme_id">
|
export type UnterlageClient = Omit<Unterlage, "id" | "aufnahme_id">
|
||||||
export type BildClient = Omit<Bild, "id" | "aufnahme_id" | "name">
|
export type BildClient = Omit<Bild, "aufnahme_id" | "name">
|
||||||
|
|
||||||
export type ObjektKomplettClient = ObjektClient & {
|
export type ObjektKomplettClient = ObjektClient & {
|
||||||
aufnahmen: AufnahmeKomplettClient[]
|
aufnahmen: AufnahmeKomplettClient[]
|
||||||
@@ -172,8 +146,4 @@ export type AufnahmeKomplettClient = AufnahmeClient & {
|
|||||||
geg_nachweise_wohnen: (GEGNachweisWohnenClient & { rechnung: RechnungClient })[]
|
geg_nachweise_wohnen: (GEGNachweisWohnenClient & { rechnung: RechnungClient })[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export type GEGNachweisWohnenClient = Omit<GEGNachweisWohnen, "id" | "aufnahme_id" | "benutzer_id"> & {
|
export type GEGNachweisWohnenClient = GEGNachweisWohnen
|
||||||
uid_objekt: string,
|
|
||||||
uid_aufnahme: string,
|
|
||||||
uid_benutzer?: string
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
getAusweisartFromUUID,
|
getAusweisartFromUUID,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./Ausweis/types.js";
|
} from "./Ausweis/types.js";
|
||||||
import AusweisPruefenTooltip from "./AusweisPruefenTooltip.svelte";
|
import AusweisPruefenTooltip from "./AusweisPruefenTooltip.svelte";
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let bilder: UploadedGebaeudeBild[]
|
export let bilder: BildClient[]
|
||||||
export let events: Event[]
|
export let events: Event[]
|
||||||
export let calculations: Awaited<
|
export let calculations: Awaited<
|
||||||
ReturnType<typeof endEnergieVerbrauchVerbrauchsausweis_2016>
|
ReturnType<typeof endEnergieVerbrauchVerbrauchsausweis_2016>
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
const ausweisArt = getAusweisartFromUUID(ausweis.uid)
|
const ausweisArt = getAusweisartFromUUID(ausweis.id)
|
||||||
|
|
||||||
let verbrauchWWGesamt_1 = "";
|
let verbrauchWWGesamt_1 = "";
|
||||||
let verbrauchWWGesamt_2 = "";
|
let verbrauchWWGesamt_2 = "";
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
async function stornieren(ausweis: VerbrauchsausweisWohnenClient) {
|
async function stornieren(ausweis: VerbrauchsausweisWohnenClient) {
|
||||||
try {
|
try {
|
||||||
const response = await api.admin.stornieren.PUT.fetch({
|
const response = await api.admin.stornieren.PUT.fetch({
|
||||||
uid_ausweis: ausweis.uid
|
uid_ausweis: ausweis.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -748,7 +748,7 @@
|
|||||||
{#each bilder as image}
|
{#each bilder as image}
|
||||||
<div>
|
<div>
|
||||||
<h2 class="text-lg mb-4 font-bold">{image.kategorie}</h2>
|
<h2 class="text-lg mb-4 font-bold">{image.kategorie}</h2>
|
||||||
<img src="/bilder/{image.uid}.jpg">
|
<img src="/bilder/{image.id}.jpg">
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -774,7 +774,7 @@
|
|||||||
<td title="Ausweis anzeigen" class="w-[50px]"
|
<td title="Ausweis anzeigen" class="w-[50px]"
|
||||||
><a
|
><a
|
||||||
class="energieausweis-img"
|
class="energieausweis-img"
|
||||||
href="/pdf/ansichtsausweis?uid={ausweis.uid}"
|
href="/pdf/ansichtsausweis?uid={ausweis.id}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
><img
|
><img
|
||||||
src="/images/dashboard/ausweis.jpg"
|
src="/images/dashboard/ausweis.jpg"
|
||||||
@@ -786,7 +786,7 @@
|
|||||||
<td title="Datenblatt anzeigen" width="50px"
|
<td title="Datenblatt anzeigen" width="50px"
|
||||||
><a
|
><a
|
||||||
class="energieausweis-img"
|
class="energieausweis-img"
|
||||||
href="/pdf/datenblatt?uid={ausweis.uid}"
|
href="/pdf/datenblatt?uid={ausweis.id}"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
><img
|
><img
|
||||||
src="/images/dashboard/datenblatt.jpg"
|
src="/images/dashboard/datenblatt.jpg"
|
||||||
@@ -857,7 +857,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{#if !ausweis.registriernummer}
|
{#if !ausweis.registriernummer}
|
||||||
<td title="Registriernummer vom DiBT anfordern." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
<td title="Registriernummer vom DiBT anfordern." class="w-4 p-1"><button class="btn btn-xs btn-ghost" on:click={() => {
|
||||||
registriernummerAnfordern(ausweis.uid)
|
registriernummerAnfordern(ausweis.id)
|
||||||
}}>R</button></td>
|
}}>R</button></td>
|
||||||
{/if}
|
{/if}
|
||||||
</tr>
|
</tr>
|
||||||
@@ -884,7 +884,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>UID</td>
|
<td>UID</td>
|
||||||
<td><strong><pre>{ausweis.uid}</pre></strong></td>
|
<td><strong><pre>{ausweis.id}</pre></strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
import { Enums, Objekt } from "#lib/client/prisma.js";
|
import { Enums, Objekt } from "#lib/client/prisma.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { shortenUID } from "#server/lib/hash.js";
|
|
||||||
import { addNotification } from "#components/Notifications/shared.js";
|
import { addNotification } from "#components/Notifications/shared.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient | VerbrauchsausweisGewerbeClient | BedarfsausweisWohnenClient;
|
||||||
@@ -25,9 +24,9 @@
|
|||||||
export let benutzer: BenutzerClient;
|
export let benutzer: BenutzerClient;
|
||||||
const progress = ausweis.ausgestellt ? 100 : ausweis.bestellt ? 66 : 33;
|
const progress = ausweis.ausgestellt ? 100 : ausweis.bestellt ? 66 : 33;
|
||||||
|
|
||||||
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
const ausweisart = getAusweisartFromUUID(ausweis.id);
|
||||||
|
|
||||||
const id = ausweis.alte_ausweis_id || shortenUID(ausweis.uid);
|
const id = ausweis.alte_ausweis_id || ausweis.id;
|
||||||
|
|
||||||
async function ausweisStornieren() {
|
async function ausweisStornieren() {
|
||||||
const result = await dialogs.confirm({
|
const result = await dialogs.confirm({
|
||||||
@@ -46,18 +45,18 @@
|
|||||||
|
|
||||||
if (result === true) {
|
if (result === true) {
|
||||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
await api["verbrauchsausweis-wohnen"]._uid.DELETE.fetch(undefined, {
|
await api["verbrauchsausweis-wohnen"]._id.DELETE.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid,
|
id: ausweis.id,
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
|
||||||
await api["verbrauchsausweis-gewerbe"]._uid.DELETE.fetch(undefined, {
|
await api["verbrauchsausweis-gewerbe"]._id.DELETE.fetch(undefined, {
|
||||||
params: {
|
params: {
|
||||||
uid: ausweis.uid,
|
id: ausweis.id,
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
||||||
@@ -95,7 +94,7 @@
|
|||||||
async function registriernummerAnfordern() {
|
async function registriernummerAnfordern() {
|
||||||
try {
|
try {
|
||||||
const result = await api.admin.registriernummer.GET.fetch({
|
const result = await api.admin.registriernummer.GET.fetch({
|
||||||
uid: ausweis.uid
|
uid: ausweis.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -115,7 +114,7 @@
|
|||||||
async function stornieren() {
|
async function stornieren() {
|
||||||
try {
|
try {
|
||||||
const response = await api.admin.stornieren.PUT.fetch({
|
const response = await api.admin.stornieren.PUT.fetch({
|
||||||
uid_ausweis: ausweis.uid
|
uid_ausweis: ausweis.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -145,7 +144,7 @@
|
|||||||
async function ausweisAusstellen() {
|
async function ausweisAusstellen() {
|
||||||
try {
|
try {
|
||||||
await api.admin.ausstellen.GET.fetch({
|
await api.admin.ausstellen.GET.fetch({
|
||||||
uid_ausweis: ausweis.uid
|
uid_ausweis: ausweis.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
@@ -211,9 +210,9 @@
|
|||||||
Verbrauchsausweis Gewerbe
|
Verbrauchsausweis Gewerbe
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung}
|
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
|
||||||
(Beratung)
|
(Beratung)
|
||||||
{:else if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline}
|
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
|
||||||
(Offline)
|
(Offline)
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -236,9 +235,9 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
{#if ausweis.bestellt}
|
{#if ausweis.bestellt}
|
||||||
{#if rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung}
|
{#if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
|
||||||
<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 rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline}
|
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
|
||||||
<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>
|
||||||
@@ -297,27 +296,27 @@
|
|||||||
<!--
|
<!--
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.uid}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.id}"
|
||||||
>Stornieren</a>
|
>Stornieren</a>
|
||||||
-->
|
-->
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if ausweis.bestellt && (!rechnung || rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung)}
|
{#if ausweis.bestellt && (!rechnung || rechnung.bezahlmethode === Enums.Bezahlmethoden.rechnung)}
|
||||||
<!-- <a href="/energieausweis-erstellen/bezahlung?uid={ausweis.uid}" class="button text-sm">Bezahlen</a> -->
|
<!-- <a href="/energieausweis-erstellen/bezahlung?uid={ausweis.id}" class="button text-sm">Bezahlen</a> -->
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
{#if !ausweis.ausgestellt && (!ausweis.bestellt || (rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Beratung || rechnung && rechnung.ausweistyp === Enums.AusweisTyp.Offline))}
|
{#if !ausweis.ausgestellt && (!ausweis.bestellt || (ausweis.ausweistyp === Enums.AusweisTyp.Beratung || ausweis.ausweistyp === Enums.AusweisTyp.Offline))}
|
||||||
<!-- TODO -->
|
<!-- TODO -->
|
||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.uid}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid={ausweis.uid}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||||
>Bearbeiten</a>
|
>Bearbeiten</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -327,12 +326,12 @@
|
|||||||
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
{#if ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid={ausweis.uid}"
|
href="/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
{:else if ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe}
|
||||||
<a
|
<a
|
||||||
class="button text-sm"
|
class="button text-sm"
|
||||||
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid={ausweis.uid}"
|
href="/energieausweis-erstellen/verbrauchsausweis-gewerbe?id={ausweis.id}"
|
||||||
>Formular</a>
|
>Formular</a>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -347,7 +346,7 @@
|
|||||||
class="p-2 rounded-lg hover:bg-gray-200"
|
class="p-2 rounded-lg hover:bg-gray-200"
|
||||||
title="PDF Herunterladen"
|
title="PDF Herunterladen"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="/pdf/ansichtsausweis?uid={ausweis.uid}"
|
href="/pdf/ansichtsausweis?id={ausweis.id}"
|
||||||
>
|
>
|
||||||
<img src="/images/ausweis.webp" width="32" alt="Energieausweis">
|
<img src="/images/ausweis.webp" width="32" alt="Energieausweis">
|
||||||
</a>
|
</a>
|
||||||
@@ -355,7 +354,7 @@
|
|||||||
class="p-2 rounded-lg hover:bg-gray-200"
|
class="p-2 rounded-lg hover:bg-gray-200"
|
||||||
title="PDF Herunterladen"
|
title="PDF Herunterladen"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="/pdf/datenblatt?uid={ausweis.uid}"
|
href="/pdf/datenblatt?id={ausweis.id}"
|
||||||
>
|
>
|
||||||
<img src="/images/datenblatt.webp" width="32" alt="Datenblatt">
|
<img src="/images/datenblatt.webp" width="32" alt="Datenblatt">
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{@const bild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude)}
|
{@const bild = objekt.aufnahmen[0].bilder.find(bild => bild.kategorie === Enums.BilderKategorie.Gebaeude)}
|
||||||
|
|
||||||
{#if bild}
|
{#if bild}
|
||||||
<img src="/bilder/{bild.uid}.jpg" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
<img src="/bilder/{bild.id}.jpg" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
||||||
{:else}
|
{:else}
|
||||||
<img src="/placeholder.png" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
<img src="/placeholder.png" class="w-full max-h-72 object-cover rounded-t-lg" alt="Gebäude">
|
||||||
{/if}
|
{/if}
|
||||||
@@ -29,14 +29,14 @@
|
|||||||
<div class="border rounded-lg px-4 py-2">
|
<div class="border rounded-lg px-4 py-2">
|
||||||
<div class="flex flex-row justify-between items-center">
|
<div class="flex flex-row justify-between items-center">
|
||||||
<span>Stand vom {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}</span>
|
<span>Stand vom {moment(aufnahme.erstellungsdatum).format("DD.MM.YYYY")}</span>
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><OpenInNewWindow size={20}></OpenInNewWindow></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><OpenInNewWindow size={20}></OpenInNewWindow></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-row gap-2">
|
<div class="flex flex-row gap-2">
|
||||||
{#if aufnahme.verbrauchsausweise_wohnen.length > 0}
|
{#if aufnahme.verbrauchsausweise_wohnen.length > 0}
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
||||||
{/if}
|
{/if}
|
||||||
{#if aufnahme.verbrauchsausweise_gewerbe.length > 0}
|
{#if aufnahme.verbrauchsausweise_gewerbe.length > 0}
|
||||||
<a href="/dashboard/aufnahme/{aufnahme.uid}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
<a href="/dashboard/aufnahme/{aufnahme.id}" class="rounded-lg p-2 hover:bg-gray-100 transition-all"><File size={20}></File></a>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { AufnahmeClient, BildClient, ObjektClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
import { openWindowWithPost } from "#lib/helpers/window.js";
|
import { openWindowWithPost } from "#lib/helpers/window.js";
|
||||||
|
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnenClient;
|
||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweisart: Enums.Ausweisart
|
export let ausweisart: Enums.Ausweisart
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import UploadImages from "./UploadImages.svelte";
|
import UploadImages from "./UploadImages.svelte";
|
||||||
import type { Enums } from "#lib/client/prisma.js";
|
import type { Enums } from "#lib/client/prisma.js";
|
||||||
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
import { BedarfsausweisWohnenClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "./Ausweis/types.js";
|
||||||
import { RotateCounterClockwise, Trash, Upload } from "radix-svelte-icons";
|
import { Trash, Upload } from "radix-svelte-icons";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
import { API_ACCESS_TOKEN_COOKIE_NAME } from "#lib/constants.js";
|
||||||
@@ -17,14 +17,14 @@
|
|||||||
|
|
||||||
async function deleteImage(image: BildClient) {
|
async function deleteImage(image: BildClient) {
|
||||||
await api.bild.DELETE.fetch({
|
await api.bild.DELETE.fetch({
|
||||||
uid: image.uid
|
id: image.id
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
"Authorization": `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
images = images.filter((x) => x.uid !== image.uid);
|
images = images.filter((x) => x.id !== image.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
let upload: () => void;
|
let upload: () => void;
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
{#if image.kategorie == kategorie}
|
{#if image.kategorie == kategorie}
|
||||||
<div class="relative group">
|
<div class="relative group">
|
||||||
<img
|
<img
|
||||||
src="/bilder/{image.uid}.jpg"
|
src="/bilder/{image.id}.jpg"
|
||||||
alt={kategorie}
|
alt={kategorie}
|
||||||
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
|
class="h-full max-h-96 w-full rounded-lg border-2 group-hover:contrast-50 object-cover transition-all"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@
|
|||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
BildClient,
|
BildClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
|
||||||
VerbrauchsausweisGewerbeClient,
|
VerbrauchsausweisGewerbeClient,
|
||||||
VerbrauchsausweisWohnenClient,
|
VerbrauchsausweisWohnenClient,
|
||||||
} from "./Ausweis/types.js";
|
} from "./Ausweis/types.js";
|
||||||
@@ -80,13 +79,13 @@
|
|||||||
// Get the scaled-down data from the canvas in the desired output format and quality
|
// Get the scaled-down data from the canvas in the desired output format and quality
|
||||||
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
|
const dataURL = canvas.toDataURL("image/jpeg", 0.8);
|
||||||
|
|
||||||
const { uid } = await api.bild.PUT.fetch({
|
const { id } = await api.bild.PUT.fetch({
|
||||||
data: dataURL,
|
data: dataURL,
|
||||||
kategorie,
|
kategorie,
|
||||||
name: file.name
|
name: file.name
|
||||||
})
|
})
|
||||||
|
|
||||||
images.push({ uid, kategorie });
|
images.push({ id, kategorie });
|
||||||
images = images;
|
images = images;
|
||||||
|
|
||||||
if (i == Math.min(files.length, max) - 1) {
|
if (i == Math.min(files.length, max) - 1) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { PRICES } from "#lib/constants.js";
|
import { PRICES } from "#lib/constants.js";
|
||||||
import { Enums } from "#lib/client/prisma";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
export let bullets;
|
export let bullets;
|
||||||
export let title;
|
export let title;
|
||||||
export let ref = "";
|
export let ref = "";
|
||||||
@@ -56,9 +56,9 @@ bullets = [
|
|||||||
|
|
||||||
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
<div class="zeile grid grid-cols-subgrid col-span-4 py-4 border-b-[0px] justify-items-center items-center">
|
||||||
<div class="justify-self-start pl-2"></div>
|
<div class="justify-self-start pl-2"></div>
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Standard}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Beratung}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||||
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude/" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
<a href="{ref}/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?ausweistyp={Enums.AusweisTyp.Offline}" ><button class="bestellbutton" type="button">sofort<br>bestellen</button></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
||||||
import { faker } from "@faker-js/faker";
|
import { faker } from "@faker-js/faker";
|
||||||
import { type Enums } from "#lib/client/prisma";
|
import { type Enums } from "#lib/client/prisma.js";
|
||||||
import "cypress-file-upload"
|
import "cypress-file-upload"
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
|
||||||
@@ -17,8 +17,8 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
|||||||
cy.get("select[data-cy='ausstellgrund']")
|
cy.get("select[data-cy='ausstellgrund']")
|
||||||
.select(
|
.select(
|
||||||
faker.number.int({
|
faker.number.int({
|
||||||
min: 0,
|
min: 1,
|
||||||
max: (["Modernisierung", "Neubau", "Sonstiges", "Verkauf", "Vermietung"] as Enums.Ausstellgrund[]).length - 1,
|
max: (["Modernisierung", "Neubau", "Sonstiges", "Verkauf", "Vermietung"] as Enums.Ausstellgrund[]).length,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -40,10 +40,10 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
|||||||
{ delay: 50 }
|
{ delay: 50 }
|
||||||
);
|
);
|
||||||
|
|
||||||
// Anzahl Einheiten
|
// // Anzahl Einheiten
|
||||||
cy.get("input[name='einheiten']")
|
// cy.get("input[name='einheiten']")
|
||||||
.should("have.attr", "type", "number")
|
// .should("have.attr", "type", "number")
|
||||||
.type(faker.number.int({ min: 1, max: 5 }).toString());
|
// .type(faker.number.int({ min: 1, max: 5 }).toString());
|
||||||
|
|
||||||
// Sanierungsstatus
|
// Sanierungsstatus
|
||||||
cy.get("select[name='saniert']").select(
|
cy.get("select[name='saniert']").select(
|
||||||
@@ -61,11 +61,12 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||||
|
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||||
|
|
||||||
// Flaeche
|
// // Flaeche
|
||||||
cy.get("input[name='flaeche']")
|
// cy.get("input[name='flaeche']")
|
||||||
.should("have.attr", "type", "number")
|
// .should("have.attr", "type", "number")
|
||||||
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
// .type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||||
|
|
||||||
// Nutzlaeche
|
// Nutzlaeche
|
||||||
cy.get("input[name='nutzflaeche']")
|
cy.get("input[name='nutzflaeche']")
|
||||||
@@ -90,7 +91,7 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
|||||||
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||||
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||||
|
|
||||||
let availableDates = [];
|
let availableDates = [];
|
||||||
const startDate = moment()
|
const startDate = moment()
|
||||||
.subtract(4, "years")
|
.subtract(4, "years")
|
||||||
.subtract(6, "months");
|
.subtract(6, "months");
|
||||||
@@ -104,8 +105,8 @@ let availableDates = [];
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Verbrauchszeitraum
|
// Verbrauchszeitraum
|
||||||
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
|
||||||
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||||
|
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||||
|
|
||||||
// Verbrauch
|
// Verbrauch
|
||||||
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString());
|
||||||
@@ -261,59 +262,47 @@ let availableDates = [];
|
|||||||
// Gebäude Bild
|
// Gebäude Bild
|
||||||
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||||
|
|
||||||
// Jetzt können wir den Verbrauchsausweis erstellen.
|
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||||
cy.get("form[name='ausweis'] button[data-cy='weiter']").click({ force: true });
|
|
||||||
|
|
||||||
// Wir sind nicht eingeloggt also sollte jetzt ein Login Screen erscheinen.
|
cy.url().should("contain", "/kundendaten");
|
||||||
// Wir klicken auf registrieren und erstellen einen neuen Benutzer, danach loggen wir uns mit diesem ein.
|
|
||||||
cy.get("[data-cy='registrieren']").click();
|
|
||||||
|
|
||||||
const email = faker.internet.email();
|
const email = faker.internet.email();
|
||||||
const passwort = "test1234";
|
const passwort = "test1234";
|
||||||
const vorname = faker.person.firstName();
|
const vorname = faker.person.firstName();
|
||||||
const nachname = faker.person.lastName();
|
const nachname = faker.person.lastName();
|
||||||
|
const telefon = faker.phone.number()
|
||||||
|
|
||||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").type(email);
|
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
const plz = faker.location.zipCode("#####")
|
||||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
|
||||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
|
||||||
|
|
||||||
cy.get("form[name='signup'] button[type='submit']").click();
|
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||||
|
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||||
|
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||||
|
// Rechnung
|
||||||
|
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||||
|
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||||
|
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||||
|
cy.get("[data-cy='plz-container']").children().first().click()
|
||||||
|
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||||
|
|
||||||
|
cy.get("[data-cy='paypal']").click()
|
||||||
|
|
||||||
|
cy.get("button[data-cy='bestellen']").click();
|
||||||
|
|
||||||
|
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||||
|
|
||||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||||
cy.get("form[name='login'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||||
cy.get("form[name='login'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||||
|
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||||
|
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||||
|
|
||||||
|
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||||
|
cy.get("form[name='signup'] button[type='submit']").click();
|
||||||
|
cy.wait("@signup")
|
||||||
cy.get("form[name='login'] button[type='submit']").click();
|
cy.get("form[name='login'] button[type='submit']").click();
|
||||||
|
|
||||||
// Der Ausweis sollte jetzt schon erstellt worden sein und wir sollten auf die kundendaten seite weitergeleitet worden sein.
|
|
||||||
cy.url().should("contain", "/kundendaten");
|
|
||||||
|
|
||||||
cy.wait(1000)
|
|
||||||
|
|
||||||
// Wir füllen jetzt die Kundendaten aus.
|
|
||||||
// cy.get("select[name='anrede']").select(Math.random() > 0.5 ? "Herr" : "Frau");
|
|
||||||
cy.get("input[name='vorname']").should("contain.value", vorname);
|
|
||||||
cy.get("input[name='name']").should("contain.value", nachname);
|
|
||||||
// cy.get("input[name='email']").should("contain.value", email);
|
|
||||||
// cy.get("input[name='telefon']").type(faker.phone.number());
|
|
||||||
|
|
||||||
cy.get("input[name='rechnung_empfaenger']").type(`${vorname} ${nachname}`);
|
|
||||||
cy.get("input[name='rechnung_strasse']").type(faker.location.streetAddress());
|
|
||||||
// TODO: Random Plz generieren, allerdings muss die auch in der Datenbank vorhanden sein...
|
|
||||||
cy.get("input[name='rechnung_plz']").type("2103");
|
|
||||||
// Jetzt sollte der PLZ Container erscheinen, dort klicken wir einfach das erste Element an.
|
|
||||||
cy.get("div[data-test='plz-container']").children().first().click();
|
|
||||||
// cy.get("input[name='rechnung_telefon']").type(faker.phone.number());
|
|
||||||
cy.get("input[name='rechnung_email']").should("contain.value", email);
|
|
||||||
cy.get("input[data-cy='paypal']").click();
|
|
||||||
|
|
||||||
// Datenschutz und AGB akzeptieren, dann schicken wir das Formular ab.
|
|
||||||
// cy.get("input[name='agb-akzeptieren']").check()
|
|
||||||
// cy.get("input[name='datenschutz-akzeptieren']").check()
|
|
||||||
cy.get("button[data-cy='bestellen']").click();
|
|
||||||
|
|
||||||
cy.origin('https://www.mollie.com', () => {
|
cy.origin('https://www.mollie.com', () => {
|
||||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||||
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||||
|
|||||||
282
src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts
Normal file
282
src/cypress/e2e/VerbrauchsausweisWohnen/bearbeiten.cy.ts
Normal file
@@ -0,0 +1,282 @@
|
|||||||
|
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
||||||
|
import { faker } from "@faker-js/faker";
|
||||||
|
import "cypress-file-upload"
|
||||||
|
import moment from "moment";
|
||||||
|
import { Aufnahme, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
|
describe("Verbrauchsausweis für Wohngebäude bearbeiten", async () => {
|
||||||
|
it("bearbeitet einen bereits existierenden Verbrauchsausweis für Wohngebäude", () => {
|
||||||
|
cy.task("verbrauchsausweisWohnen", {
|
||||||
|
where: {
|
||||||
|
ausgestellt: false,
|
||||||
|
bestellt: false
|
||||||
|
},
|
||||||
|
include: {
|
||||||
|
aufnahme: {
|
||||||
|
include: {
|
||||||
|
objekt: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
benutzer: true
|
||||||
|
}
|
||||||
|
}).then((ausweis: VerbrauchsausweisWohnen & { aufnahme: Aufnahme & { objekt: Objekt } }) => {
|
||||||
|
cy.visit(`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?id=${ausweis.id}`);
|
||||||
|
|
||||||
|
cy.wait(2000);
|
||||||
|
|
||||||
|
// Wir überprüfen, ob alle Ausstelgründe vorhanden sind, diese sollten genau so viele sein wie in der Datenbank vorhanden sind.
|
||||||
|
cy.get("select[data-cy='ausstellgrund']")
|
||||||
|
.find("option:selected").should("have.value", ausweis.ausstellgrund)
|
||||||
|
|
||||||
|
// Jetzt Füllen wir das Baujahr vom Gebäude aus.
|
||||||
|
cy.get("input[name='baujahr_gebaeude']")
|
||||||
|
.should("have.value", ausweis.aufnahme.baujahr_gebaeude[0])
|
||||||
|
|
||||||
|
// Jetzt Füllen wir das Baujahr der Heizung aus.
|
||||||
|
cy.get("input[name='baujahr_heizung']")
|
||||||
|
.should("have.value", ausweis.aufnahme.baujahr_heizung[0])
|
||||||
|
|
||||||
|
// Anzahl Einheiten
|
||||||
|
cy.get("input[name='einheiten']")
|
||||||
|
.should("have.value", ausweis.aufnahme.einheiten)
|
||||||
|
|
||||||
|
// Sanierungsstatus
|
||||||
|
cy.get("select[name='saniert']").find("option:selected").should("have.value", ausweis.aufnahme.saniert)
|
||||||
|
|
||||||
|
// Adresse
|
||||||
|
cy.get("input[name='adresse']").should("have.value", ausweis.aufnahme.objekt.adresse);
|
||||||
|
|
||||||
|
// Postleitzahl
|
||||||
|
cy.get("input[name='plz']").type(
|
||||||
|
faker.location.zipCode({
|
||||||
|
format: "#####",
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
// TODO: Ort - Dieser wird aus der Datenbank abgefragt, wir müssen also warten, bis der Dropdown da ist.
|
||||||
|
cy.get("[data-cy='plz-container']").find("button").first().click()
|
||||||
|
|
||||||
|
// Flaeche
|
||||||
|
cy.get("input[name='flaeche']")
|
||||||
|
.should("have.attr", "type", "number")
|
||||||
|
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||||
|
|
||||||
|
// Nutzflaeche
|
||||||
|
cy.get("input[name='nutzflaeche']")
|
||||||
|
.should("have.attr", "type", "number")
|
||||||
|
.type(faker.number.int({ min: 50, max: 1000 }).toString());
|
||||||
|
|
||||||
|
// Keller
|
||||||
|
cy.get("select[name='keller']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||||
|
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||||
|
min: 1
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Dachgeschoss
|
||||||
|
cy.get("select[name='dachgeschoss']").find("option:not([disabled])").should("have.length", (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length).parent().select(faker.number.int({
|
||||||
|
max: (["BEHEIZT", "NICHT_VORHANDEN", "UNBEHEIZT"] as Enums.Heizungsstatus[]).length,
|
||||||
|
min: 1
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Brennstoff und Einheit 1
|
||||||
|
const brennstoffKombo = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||||
|
|
||||||
|
cy.get("select[name='brennstoff_1']").select(brennstoffKombo[0]);
|
||||||
|
cy.get("select[name='einheit_1']").select(brennstoffKombo[1]);
|
||||||
|
|
||||||
|
let availableDates = [];
|
||||||
|
const startDate = moment()
|
||||||
|
.subtract(4, "years")
|
||||||
|
.subtract(6, "months");
|
||||||
|
const endDate = moment().subtract(3, "years");
|
||||||
|
|
||||||
|
for (let m = moment(startDate); m.isBefore(endDate); m.add(1, "month")) {
|
||||||
|
availableDates.push({
|
||||||
|
year: m.year(),
|
||||||
|
month: m.month(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verbrauchszeitraum
|
||||||
|
cy.get("select[name='energieverbrauch_zeitraum_jahr']").select(availableDates[0].year.toString());
|
||||||
|
cy.get("select[name='energieverbrauch_zeitraum_monat']").select(availableDates[0].month.toString());
|
||||||
|
|
||||||
|
|
||||||
|
// Verbrauch
|
||||||
|
cy.get("input[name='verbrauch_1']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
cy.get("input[name='verbrauch_2']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
cy.get("input[name='verbrauch_3']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
|
||||||
|
|
||||||
|
const zusaetzlicheHeizquelle = Math.random() > 0.5;
|
||||||
|
|
||||||
|
if (zusaetzlicheHeizquelle) {
|
||||||
|
cy.get("[data-cy='zusaetzliche_heizquelle']").check();
|
||||||
|
|
||||||
|
// Brennstoff und Einheit 2
|
||||||
|
const brennstoffKombo2 = fuelList[faker.number.int({ min: 0, max: fuelList.length - 1 })];
|
||||||
|
|
||||||
|
cy.get("[data-cy='brennstoff_2']").select(brennstoffKombo2[0], { force: true });
|
||||||
|
cy.get("[data-cy='einheit_2']").select(brennstoffKombo2[1], { force: true });
|
||||||
|
|
||||||
|
// Verbrauch
|
||||||
|
cy.get("input[name='verbrauch_4']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
cy.get("input[name='verbrauch_5']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
cy.get("input[name='verbrauch_6']").type(faker.number.int({ min: 4000, max: 15000 }).toString(), { force: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Warmwasser enthalten und bekannt
|
||||||
|
const warmwasserEnthalten = Math.random() > 0.5;
|
||||||
|
const anteilBekannt = Math.random() > 0.5;
|
||||||
|
|
||||||
|
if (warmwasserEnthalten) {
|
||||||
|
cy.get("input[name='warmwasser_enthalten']").check();
|
||||||
|
|
||||||
|
if (anteilBekannt) {
|
||||||
|
// Der Anteil ist bekannt, wir müssen ihn also angeben.
|
||||||
|
cy.get("input[name='warmwasser_anteil_bekannt']").check();
|
||||||
|
|
||||||
|
cy.get("input[name='anteil_warmwasser_1']").type(faker.number.int({ min: 0, max: 50 }).toString());
|
||||||
|
|
||||||
|
if (zusaetzlicheHeizquelle) {
|
||||||
|
// Zusätzliche Heizquelle existiert, also müssen wir auch hier den Anteil angeben.
|
||||||
|
cy.get("input[name='anteil_warmwasser_2']").type(faker.number.int({ min: 0, max: 50 }).toString(), {force: true});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alternative Energieversorgungssysteme
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='alternative_heizung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='alternative_warmwasser']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='alternative_lueftung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='alternative_kuehlung']").check();
|
||||||
|
|
||||||
|
// Gebäudetyp
|
||||||
|
cy.get("select[name='gebaeudetyp']").then(($dropdown) => {
|
||||||
|
const options = $dropdown.find('option');
|
||||||
|
// Select the option at the random index
|
||||||
|
cy.get("select[name='gebaeudetyp']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Gebäudeteil
|
||||||
|
cy.get("select[name='gebaeudeteil']").then(($dropdown) => {
|
||||||
|
const options = $dropdown.find('option');
|
||||||
|
// Select the option at the random index
|
||||||
|
cy.get("select[name='gebaeudeteil']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Lüftung
|
||||||
|
cy.get("select[name='lueftung']").then(($dropdown) => {
|
||||||
|
const options = $dropdown.find('option');
|
||||||
|
// Select the option at the random index
|
||||||
|
cy.get("select[name='lueftung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Kühlung
|
||||||
|
cy.get("select[name='kuehlung']").then(($dropdown) => {
|
||||||
|
const options = $dropdown.find('option');
|
||||||
|
// Select the option at the random index
|
||||||
|
cy.get("select[name='kuehlung']").select(options.eq(faker.number.int({ min: 1, max: options.length - 1 })).val() as string, { force: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
// Leerstand
|
||||||
|
cy.get("input[name='leerstand']").should("have.attr", "type", "number").type(faker.number.int({ min: 0, max: 30 }).toString());
|
||||||
|
|
||||||
|
// Heizungsanlage Daten
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='zentralheizung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='einzelofen']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='durchlauf_erhitzer']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='standard_kessel']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='solarsystem_warmwasser']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='waermepumpe']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='niedertemperatur_kessel']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='brennwert_kessel']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='warmwasser_rohre_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='heizungsrohre_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("[data-cy='zirkulation']").check();
|
||||||
|
// if (Math.random() > 0.5) cy.get("[data-cy='raum_temperatur_regler']").check();
|
||||||
|
|
||||||
|
// Heizungsanlage Bilder
|
||||||
|
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/1.jpeg", { subjectType: "input" });
|
||||||
|
cy.get("input[name='heizung_image']").should("have.attr", "type", "file").attachFile("images/heizungsanlage/2.jpeg", { subjectType: "input" });
|
||||||
|
|
||||||
|
// Fenster Daten
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='einfach_verglasung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='doppel_verglasung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='isolier_verglasung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='dreifach_verglasung']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='fenster_dicht']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='fenster_teilweise_undicht']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='tueren_dicht']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='tueren_undicht']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='rolllaeden_kaesten_gedaemmt']").check();
|
||||||
|
|
||||||
|
// Fenster Bilder
|
||||||
|
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/1.jpeg", { subjectType: "input" });
|
||||||
|
cy.get("input[name='fenster_image']").should("have.attr", "type", "file").attachFile("images/fenster/2.jpeg", { subjectType: "input" });
|
||||||
|
|
||||||
|
// Wärmedämmung Daten
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='aussenwand_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='keller_wand_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='keller_decke_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='dachgeschoss_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_gedaemmt']").check();
|
||||||
|
if (Math.random() > 0.5) cy.get("input[name='oberste_geschossdecke_min_12cm_gedaemmt']").check();
|
||||||
|
|
||||||
|
// Wärmedämmung Bilder
|
||||||
|
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/1.jpeg", { subjectType: "input" });
|
||||||
|
cy.get("input[name='daemmung_image']").should("have.attr", "type", "file").attachFile("images/daemmung/2.jpeg", { subjectType: "input" });
|
||||||
|
|
||||||
|
// Gebäude Bild
|
||||||
|
cy.get("input[name='gebaeude_image']").should("have.attr", "type", "file").attachFile("images/gebaeude/1.jpeg", { subjectType: "input" });
|
||||||
|
|
||||||
|
// Jetzt können wir den Verbrauchsausweis erstellen.
|
||||||
|
cy.get("form[data-cy='ausweis'] button[data-cy='weiter']").click({ force: true });
|
||||||
|
|
||||||
|
cy.url().should("contain", "/kundendaten");
|
||||||
|
|
||||||
|
const email = faker.internet.email();
|
||||||
|
const passwort = "test1234";
|
||||||
|
const vorname = faker.person.firstName();
|
||||||
|
const nachname = faker.person.lastName();
|
||||||
|
const telefon = faker.phone.number()
|
||||||
|
|
||||||
|
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||||
|
const plz = faker.location.zipCode("#####")
|
||||||
|
|
||||||
|
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||||
|
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||||
|
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||||
|
// Rechnung
|
||||||
|
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||||
|
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||||
|
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||||
|
cy.get("[data-cy='plz-container']").children().first().click()
|
||||||
|
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||||
|
|
||||||
|
cy.get("[data-cy='paypal']").click()
|
||||||
|
|
||||||
|
cy.get("button[data-cy='bestellen']").click();
|
||||||
|
|
||||||
|
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||||
|
|
||||||
|
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||||
|
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||||
|
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||||
|
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||||
|
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||||
|
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||||
|
|
||||||
|
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||||
|
cy.get("form[name='signup'] button[type='submit']").click();
|
||||||
|
cy.wait("@signup")
|
||||||
|
cy.get("form[name='login'] button[type='submit']").click();
|
||||||
|
|
||||||
|
cy.origin('https://www.mollie.com', () => {
|
||||||
|
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||||
|
cy.get("input[type='radio'][name='final_state'][value='paid']").check();
|
||||||
|
// Da wird unser Test fehlschlagen, da die localhost domain von Mollie aus nicht erreichbar ist.
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,13 +1,27 @@
|
|||||||
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
import fuelList from "#components/Ausweis/brennstoffListe.js";
|
||||||
import { faker } from "@faker-js/faker";
|
import { faker } from "@faker-js/faker";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
|
|
||||||
|
|
||||||
import "cypress-file-upload"
|
import "cypress-file-upload"
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
|
||||||
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
||||||
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
it("erstellt einen neuen Verbrauchsausweis Wohngebäude.", () => {
|
||||||
|
const email = faker.internet.email();
|
||||||
|
const passwort = "test1234";
|
||||||
|
const vorname = faker.person.firstName();
|
||||||
|
const nachname = faker.person.lastName();
|
||||||
|
const telefon = faker.phone.number()
|
||||||
|
|
||||||
|
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
||||||
|
const plz = faker.location.zipCode("#####")
|
||||||
|
|
||||||
|
const preLogin = Math.random() > 0.5;
|
||||||
|
|
||||||
|
if (preLogin) {
|
||||||
|
cy.signup(email, passwort, vorname, nachname)
|
||||||
|
cy.login(email, passwort)
|
||||||
|
}
|
||||||
|
|
||||||
cy.visit("/energieausweis-erstellen/verbrauchsausweis-wohngebaeude");
|
cy.visit("/energieausweis-erstellen/verbrauchsausweis-wohngebaeude");
|
||||||
|
|
||||||
cy.wait(2000);
|
cy.wait(2000);
|
||||||
@@ -241,40 +255,42 @@ describe("Verbrauchsausweis erstellen Schritt 1", () => {
|
|||||||
|
|
||||||
cy.url().should("contain", "/kundendaten");
|
cy.url().should("contain", "/kundendaten");
|
||||||
|
|
||||||
const email = faker.internet.email();
|
|
||||||
const passwort = "test1234";
|
|
||||||
const vorname = faker.person.firstName();
|
|
||||||
const nachname = faker.person.lastName();
|
|
||||||
const telefon = faker.phone.number()
|
|
||||||
|
|
||||||
const strasse = faker.location.streetAddress({ useFullAddress: true })
|
|
||||||
const plz = faker.location.zipCode("#####")
|
|
||||||
|
|
||||||
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
|
||||||
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
|
||||||
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
cy.get("input[name='telefon']").should("have.attr", "type", "text").type(telefon);
|
||||||
// Rechnung
|
// Rechnung
|
||||||
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
if (preLogin) {
|
||||||
|
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").should("contain.value", `${vorname} ${nachname}`);
|
||||||
|
cy.get("input[name='vorname']").should("have.attr", "type", "text").should("contain.value", vorname);
|
||||||
|
cy.get("input[name='name']").should("have.attr", "type", "text").should("contain.value", nachname);
|
||||||
|
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").should("contain.value", email);
|
||||||
|
} else {
|
||||||
|
cy.get("input[name='rechnung_empfaenger']").should("have.attr", "type", "text").type(`${vorname} ${nachname}`);
|
||||||
|
cy.get("input[name='vorname']").should("have.attr", "type", "text").type(vorname);
|
||||||
|
cy.get("input[name='name']").should("have.attr", "type", "text").type(nachname);
|
||||||
|
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
||||||
|
}
|
||||||
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
cy.get("input[name='rechnung_strasse']").should("have.attr", "type", "text").type(strasse);
|
||||||
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
cy.get("input[name='rechnung_plz']").should("have.attr", "type", "text").type(plz);
|
||||||
cy.get("[data-cy='plz-container']").children().first().click()
|
cy.get("[data-cy='plz-container']").children().first().click()
|
||||||
cy.get("input[name='rechnung_email']").should("have.attr", "type", "email").type(email);
|
|
||||||
|
|
||||||
cy.get("[data-cy='paypal']").click()
|
cy.get("[data-cy='paypal']").click()
|
||||||
|
|
||||||
cy.get("button[data-cy='bestellen']").click();
|
cy.get("button[data-cy='bestellen']").click();
|
||||||
|
|
||||||
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
if (!preLogin) {
|
||||||
|
cy.get("a[data-cy='registrieren']").should("be.visible").click();
|
||||||
|
|
||||||
// Wir sind jetzt registriert und können uns nun einloggen.
|
// Wir sind jetzt registriert und können uns nun einloggen.
|
||||||
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
// Die Email sollte automatisch eingetragen sein, da wir uns gerade registriert haben.
|
||||||
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
cy.get("form[name='signup'] input[name='vorname']").should("be.visible").should("have.attr", "type", "text").type(vorname);
|
||||||
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
cy.get("form[name='signup'] input[name='nachname']").should("be.visible").should("have.attr", "type", "text").type(nachname);
|
||||||
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
cy.get("form[name='signup'] input[name='email']").should("be.visible").should("have.attr", "type", "email").should("contain.value", email);
|
||||||
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
cy.get("form[name='signup'] input[name='passwort']").should("be.visible").should("have.attr", "type", "password").type(passwort);
|
||||||
|
|
||||||
cy.get("form[name='signup'] button[type='submit']").click();
|
cy.intercept({ method: "PUT", url: "**/api/user" }).as("signup")
|
||||||
cy.get("form[name='login'] button[type='submit']").click();
|
cy.get("form[name='signup'] button[type='submit']").click();
|
||||||
|
cy.wait("@signup")
|
||||||
|
cy.get("form[name='login'] button[type='submit']").click();
|
||||||
|
}
|
||||||
|
|
||||||
cy.origin('https://www.mollie.com', () => {
|
cy.origin('https://www.mollie.com', () => {
|
||||||
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
// Jetzt sind wir auf der Mollie Seite, dort wählen wir den "paid" status aus
|
||||||
|
|||||||
@@ -1,37 +1,40 @@
|
|||||||
/// <reference types="cypress" />
|
/// <reference types="cypress" />
|
||||||
// ***********************************************
|
|
||||||
// This example commands.ts shows you how to
|
import { API_ACCESS_TOKEN_COOKIE_NAME, API_REFRESH_TOKEN_COOKIE_NAME } from "#lib/constants.js"
|
||||||
// create various custom commands and overwrite
|
|
||||||
// existing commands.
|
Cypress.Commands.add("login", (email, passwort) => {
|
||||||
//
|
cy.visit("/auth/login")
|
||||||
// For more comprehensive examples of custom
|
|
||||||
// commands please read more here:
|
cy.get('input[name="email"]').type(email)
|
||||||
// https://on.cypress.io/custom-commands
|
cy.get('input[name="passwort"]').type(passwort)
|
||||||
// ***********************************************
|
|
||||||
//
|
cy.get('button[type="submit"]').click()
|
||||||
//
|
|
||||||
// -- This is a parent command --
|
cy.url().should("include", "/dashboard")
|
||||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
|
||||||
//
|
// Wir sollten nun einen Access Token und Refresh Token in unseren Cookies sehen.
|
||||||
//
|
cy.getCookie(API_ACCESS_TOKEN_COOKIE_NAME).should("exist")
|
||||||
// -- This is a child command --
|
cy.getCookie(API_REFRESH_TOKEN_COOKIE_NAME).should("exist")
|
||||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
})
|
||||||
//
|
|
||||||
//
|
Cypress.Commands.add("signup", (email, passwort, vorname, name) => {
|
||||||
// -- This is a dual command --
|
cy.visit("/auth/signup")
|
||||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
|
||||||
//
|
cy.get('input[name="email"]').type(email)
|
||||||
//
|
cy.get('input[name="passwort"]').type(passwort)
|
||||||
// -- This will overwrite an existing command --
|
cy.get('input[name="vorname"]').type(vorname)
|
||||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
cy.get('input[name="name"]').type(name)
|
||||||
//
|
|
||||||
// declare global {
|
cy.get('button[type="submit"]').click()
|
||||||
// namespace Cypress {
|
|
||||||
// interface Chainable {
|
cy.url().should("include", "/auth/login")
|
||||||
// login(email: string, password: string): Chainable<void>
|
})
|
||||||
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
|
||||||
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
declare global {
|
||||||
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
|
namespace Cypress {
|
||||||
// }
|
interface Chainable {
|
||||||
// }
|
login(email: string, passwort: string): Chainable<void>
|
||||||
// }
|
signup(email: string, passwort: string, vorname: string, name: string): Chainable<void>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
|
|
||||||
export const AnteilshaberSchema = z.object({
|
export const AnteilshaberSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
benutzer_id: z.number().int(),
|
|
||||||
rolle: z.string().nullish(),
|
rolle: z.string().nullish(),
|
||||||
privilegien: z.bigint().nullish(),
|
privilegien: z.bigint().nullish(),
|
||||||
uid: z.string(),
|
benutzer_id: z.string(),
|
||||||
objekt_id: z.number().int(),
|
objekt_id: z.string(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
|
|
||||||
export const ApiRequestsSchema = z.object({
|
export const ApiRequestsSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
date: z.date(),
|
date: z.date(),
|
||||||
ip: z.string(),
|
ip: z.string(),
|
||||||
method: z.string(),
|
method: z.string(),
|
||||||
@@ -10,5 +10,5 @@ export const ApiRequestsSchema = z.object({
|
|||||||
responseTime: z.number(),
|
responseTime: z.number(),
|
||||||
responseSize: z.number().int(),
|
responseSize: z.number().int(),
|
||||||
userAgent: z.string(),
|
userAgent: z.string(),
|
||||||
user_id: z.number().int().nullish(),
|
user_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ import * as z from "zod"
|
|||||||
import { Ausweisart, Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
|
import { Ausweisart, Heizungsstatus, Heizungsstatus, Lueftungskonzept } from "@prisma/client"
|
||||||
|
|
||||||
export const AufnahmeSchema = z.object({
|
export const AufnahmeSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string().describe("UID der Gebäude Aufnahme"),
|
benutzer_id: z.string().nullish(),
|
||||||
benutzer_id: z.number().int().nullish(),
|
|
||||||
ausweisart: z.nativeEnum(Ausweisart).describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen").nullish(),
|
ausweisart: z.nativeEnum(Ausweisart).describe("Art des korrespondierenden Ausweises, wie z.B. VerbrauchsausweisWohnen").nullish(),
|
||||||
gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(),
|
gebaeudetyp: z.string().describe("Art des Gebäudes und seiner primären Nutzungsart").nullish(),
|
||||||
gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(),
|
gebaeudeteil: z.string().describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil").nullish(),
|
||||||
@@ -60,5 +59,5 @@ export const AufnahmeSchema = z.object({
|
|||||||
aussenwand_min_12cm_gedaemmt: z.boolean().describe("Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
|
aussenwand_min_12cm_gedaemmt: z.boolean().describe("Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen").nullish(),
|
||||||
dachgeschoss_min_12cm_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
|
dachgeschoss_min_12cm_gedaemmt: z.boolean().describe("Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
|
||||||
oberste_geschossdecke_min_12cm_gedaemmt: z.boolean().describe("Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
|
oberste_geschossdecke_min_12cm_gedaemmt: z.boolean().describe("Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen").nullish(),
|
||||||
objekt_id: z.number().int(),
|
objekt_id: z.string(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ import * as z from "zod"
|
|||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund } from "@prisma/client"
|
||||||
|
|
||||||
export const BedarfsausweisGewerbeSchema = z.object({
|
export const BedarfsausweisGewerbeSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
||||||
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
||||||
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
@@ -20,8 +19,8 @@ export const BedarfsausweisGewerbeSchema = z.object({
|
|||||||
fussbodenheizung: z.boolean().nullish(),
|
fussbodenheizung: z.boolean().nullish(),
|
||||||
bauteilaktivierung: z.boolean().nullish(),
|
bauteilaktivierung: z.boolean().nullish(),
|
||||||
klimatisierung: z.boolean().nullish(),
|
klimatisierung: z.boolean().nullish(),
|
||||||
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||||
aufnahme_id: z.number().int(),
|
aufnahme_id: z.string(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
rechnung_id: z.string().nullish(),
|
||||||
geg_einpreisung_id: z.number().int().nullish(),
|
geg_einpreisung_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||||
|
|
||||||
export const BedarfsausweisWohnenSchema = z.object({
|
export const BedarfsausweisWohnenSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
alte_ausweis_id: z.number().int().nullish(),
|
alte_ausweis_id: z.number().int().nullish(),
|
||||||
uid: z.string(),
|
benutzer_id: z.string().nullish(),
|
||||||
benutzer_id: z.number().int().nullish(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
||||||
registriernummer: z.string().nullish(),
|
registriernummer: z.string().nullish(),
|
||||||
alternative_heizung: z.boolean().nullish(),
|
alternative_heizung: z.boolean().nullish(),
|
||||||
@@ -69,6 +68,7 @@ export const BedarfsausweisWohnenSchema = z.object({
|
|||||||
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
||||||
created_at: z.date(),
|
created_at: z.date(),
|
||||||
updated_at: z.date(),
|
updated_at: z.date(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
ausweistyp: z.nativeEnum(AusweisTyp),
|
||||||
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
rechnung_id: z.string().nullish(),
|
||||||
|
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ import * as z from "zod"
|
|||||||
import { BenutzerRolle } from "@prisma/client"
|
import { BenutzerRolle } from "@prisma/client"
|
||||||
|
|
||||||
export const BenutzerSchema = z.object({
|
export const BenutzerSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
name: z.string().nullish(),
|
name: z.string().nullish(),
|
||||||
vorname: z.string().nullish(),
|
vorname: z.string().nullish(),
|
||||||
email: z.string(),
|
email: z.string(),
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ import * as z from "zod"
|
|||||||
import { BilderKategorie } from "@prisma/client"
|
import { BilderKategorie } from "@prisma/client"
|
||||||
|
|
||||||
export const BildSchema = z.object({
|
export const BildSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
kategorie: z.nativeEnum(BilderKategorie),
|
kategorie: z.nativeEnum(BilderKategorie),
|
||||||
uid: z.string(),
|
|
||||||
name: z.string(),
|
name: z.string(),
|
||||||
aufnahme_id: z.number().int().nullish(),
|
aufnahme_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ export const documenttemplatesSchema = z.object({
|
|||||||
name: z.string(),
|
name: z.string(),
|
||||||
shortdescription: z.string(),
|
shortdescription: z.string(),
|
||||||
longdescription: z.string(),
|
longdescription: z.string(),
|
||||||
user_id: z.number().int(),
|
user_id: z.string(),
|
||||||
is_private: z.boolean(),
|
is_private: z.boolean(),
|
||||||
documenttype: z.number().int(),
|
documenttype: z.number().int(),
|
||||||
filename: z.string(),
|
filename: z.string(),
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
|
|
||||||
export const EventSchema = z.object({
|
export const EventSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
date: z.date(),
|
date: z.date(),
|
||||||
title: z.string(),
|
title: z.string(),
|
||||||
description: z.string().nullish(),
|
description: z.string().nullish(),
|
||||||
aufnahme_id: z.number().int(),
|
aufnahme_id: z.string(),
|
||||||
benutzer_id: z.number().int().nullish(),
|
benutzer_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ import * as z from "zod"
|
|||||||
import { Einpreisungsstatus } from "@prisma/client"
|
import { Einpreisungsstatus } from "@prisma/client"
|
||||||
|
|
||||||
export const GEGEinpreisungSchema = z.object({
|
export const GEGEinpreisungSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
empfaenger: z.string().nullish(),
|
empfaenger: z.string().nullish(),
|
||||||
strasse: z.string().nullish(),
|
strasse: z.string().nullish(),
|
||||||
plz: z.string().nullish(),
|
plz: z.string().nullish(),
|
||||||
@@ -18,5 +17,5 @@ export const GEGEinpreisungSchema = z.object({
|
|||||||
versand_ort: z.string().nullish(),
|
versand_ort: z.string().nullish(),
|
||||||
versand_zusatzzeile: z.string().nullish(),
|
versand_zusatzzeile: z.string().nullish(),
|
||||||
status: z.nativeEnum(Einpreisungsstatus),
|
status: z.nativeEnum(Einpreisungsstatus),
|
||||||
benutzer_id: z.number().int().describe("Die ID des Benutzers, der diese Einpreisung bekommt.").nullish(),
|
benutzer_id: z.string().describe("Die ID des Benutzers, der diese Einpreisung bekommt.").nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,16 +2,15 @@ import * as z from "zod"
|
|||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund } from "@prisma/client"
|
||||||
|
|
||||||
export const GEGNachweisGewerbeSchema = z.object({
|
export const GEGNachweisGewerbeSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
||||||
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
||||||
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
||||||
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||||
aufnahme_id: z.number().int(),
|
aufnahme_id: z.string(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
rechnung_id: z.string().nullish(),
|
||||||
geg_einpreisung_id: z.number().int().nullish(),
|
geg_einpreisung_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,16 +2,15 @@ import * as z from "zod"
|
|||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund } from "@prisma/client"
|
||||||
|
|
||||||
export const GEGNachweisWohnenSchema = z.object({
|
export const GEGNachweisWohnenSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
||||||
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
keller_beheizt: z.boolean().describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen").nullish(),
|
||||||
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
storniert: z.boolean().describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
bestellt: z.boolean().describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
zurueckgestellt: z.boolean().describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen").nullish(),
|
||||||
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
beschreibung: z.string().describe("Beschreibung des Bauvorhabens").nullish(),
|
||||||
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||||
aufnahme_id: z.number().int(),
|
aufnahme_id: z.string(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
rechnung_id: z.string().nullish(),
|
||||||
geg_einpreisung_id: z.number().int().nullish(),
|
geg_einpreisung_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
export * from "./anteilshaber"
|
export * from "./anteilshaber.js"
|
||||||
export * from "./apirequests"
|
export * from "./apirequests.js"
|
||||||
export * from "./aufnahme"
|
export * from "./aufnahme.js"
|
||||||
export * from "./bedarfsausweisgewerbe"
|
export * from "./bedarfsausweisgewerbe.js"
|
||||||
export * from "./bedarfsausweiswohnen"
|
export * from "./bedarfsausweiswohnen.js"
|
||||||
export * from "./benutzer"
|
export * from "./benutzer.js"
|
||||||
export * from "./bild"
|
export * from "./bild.js"
|
||||||
export * from "./event"
|
export * from "./event.js"
|
||||||
export * from "./gegeinpreisung"
|
export * from "./gegeinpreisung.js"
|
||||||
export * from "./gegnachweisgewerbe"
|
export * from "./gegnachweisgewerbe.js"
|
||||||
export * from "./gegnachweiswohnen"
|
export * from "./gegnachweiswohnen.js"
|
||||||
export * from "./klimafaktoren"
|
export * from "./klimafaktoren.js"
|
||||||
export * from "./objekt"
|
export * from "./objekt.js"
|
||||||
export * from "./postleitzahlen"
|
export * from "./postleitzahlen.js"
|
||||||
export * from "./rechnung"
|
export * from "./rechnung.js"
|
||||||
export * from "./refreshtokens"
|
export * from "./refreshtokens.js"
|
||||||
export * from "./tickets"
|
export * from "./tickets.js"
|
||||||
export * from "./unterlage"
|
export * from "./unterlage.js"
|
||||||
export * from "./verbrauchsausweisgewerbe"
|
export * from "./verbrauchsausweisgewerbe.js"
|
||||||
export * from "./verbrauchsausweiswohnen"
|
export * from "./verbrauchsausweiswohnen.js"
|
||||||
export * from "./documenttemplates"
|
export * from "./documenttemplates.js"
|
||||||
export * from "./documenttypes"
|
export * from "./documenttypes.js"
|
||||||
export * from "./tokens"
|
export * from "./tokens.js"
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
|
|
||||||
export const ObjektSchema = z.object({
|
export const ObjektSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
benutzer_id: z.number().int().nullish(),
|
|
||||||
latitude: z.number().nullish(),
|
latitude: z.number().nullish(),
|
||||||
longitude: z.number().nullish(),
|
longitude: z.number().nullish(),
|
||||||
plz: z.string().describe("Postleitzahl des Gebäudes").nullish(),
|
plz: z.string().describe("Postleitzahl des Gebäudes").nullish(),
|
||||||
ort: z.string().describe("Ort des Gebäudes").nullish(),
|
ort: z.string().describe("Ort des Gebäudes").nullish(),
|
||||||
adresse: z.string().describe("Adresse (Straße und Hausnummer) des Gebäudes").nullish(),
|
adresse: z.string().describe("Adresse (Straße und Hausnummer) des Gebäudes").nullish(),
|
||||||
erstellungsdatum: z.date().nullish(),
|
erstellungsdatum: z.date().nullish(),
|
||||||
|
benutzer_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
import { Bezahlmethoden, Rechnungsstatus, Service, AusweisTyp } from "@prisma/client"
|
import { Bezahlmethoden, Rechnungsstatus, Service } from "@prisma/client"
|
||||||
|
|
||||||
export const RechnungSchema = z.object({
|
export const RechnungSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
benutzer_id: z.number().int(),
|
|
||||||
empfaenger: z.string().nullish(),
|
empfaenger: z.string().nullish(),
|
||||||
strasse: z.string().nullish(),
|
strasse: z.string().nullish(),
|
||||||
plz: z.string().nullish(),
|
plz: z.string().nullish(),
|
||||||
@@ -21,10 +19,10 @@ export const RechnungSchema = z.object({
|
|||||||
bezahlmethode: z.nativeEnum(Bezahlmethoden),
|
bezahlmethode: z.nativeEnum(Bezahlmethoden),
|
||||||
status: z.nativeEnum(Rechnungsstatus),
|
status: z.nativeEnum(Rechnungsstatus),
|
||||||
services: z.nativeEnum(Service).array(),
|
services: z.nativeEnum(Service).array(),
|
||||||
ausweistyp: z.nativeEnum(AusweisTyp),
|
|
||||||
betrag: z.number(),
|
betrag: z.number(),
|
||||||
erstellt_am: z.date(),
|
erstellt_am: z.date(),
|
||||||
bezahlt_am: z.date().nullish(),
|
bezahlt_am: z.date().nullish(),
|
||||||
storniert_am: z.date().nullish(),
|
storniert_am: z.date().nullish(),
|
||||||
transaktions_referenz: z.string().nullish(),
|
transaktions_referenz: z.string().nullish(),
|
||||||
|
benutzer_id: z.string(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import * as z from "zod"
|
|||||||
|
|
||||||
export const RefreshTokensSchema = z.object({
|
export const RefreshTokensSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.number().int(),
|
||||||
benutzer_id: z.number().int(),
|
|
||||||
token: z.string(),
|
token: z.string(),
|
||||||
ip: z.string(),
|
ip: z.string(),
|
||||||
expiry: z.date(),
|
expiry: z.date(),
|
||||||
|
benutzer_id: z.string(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -8,9 +8,7 @@ const literalSchema = z.union([z.string(), z.number(), z.boolean()])
|
|||||||
const jsonSchema: z.ZodSchema<Json> = z.lazy(() => z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]))
|
const jsonSchema: z.ZodSchema<Json> = z.lazy(() => z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]))
|
||||||
|
|
||||||
export const TicketsSchema = z.object({
|
export const TicketsSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
benutzer_id: z.number().int().nullish(),
|
|
||||||
created_at: z.date(),
|
created_at: z.date(),
|
||||||
updated_at: z.date().nullish(),
|
updated_at: z.date().nullish(),
|
||||||
deleted_at: z.date().nullish(),
|
deleted_at: z.date().nullish(),
|
||||||
@@ -19,6 +17,7 @@ export const TicketsSchema = z.object({
|
|||||||
beschreibung: z.string(),
|
beschreibung: z.string(),
|
||||||
metadata: jsonSchema,
|
metadata: jsonSchema,
|
||||||
email: z.string(),
|
email: z.string(),
|
||||||
bearbeiter_id: z.number().int().nullish(),
|
bearbeiter_id: z.string().nullish(),
|
||||||
prioritaet: z.number().int().nullish(),
|
prioritaet: z.number().int().nullish(),
|
||||||
|
benutzer_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import * as z from "zod"
|
|||||||
export const tokensSchema = z.object({
|
export const tokensSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.number().int(),
|
||||||
token: z.string(),
|
token: z.string(),
|
||||||
user_id: z.number().int(),
|
user_id: z.string(),
|
||||||
date_created: z.date(),
|
date_created: z.date(),
|
||||||
last_used: z.date(),
|
last_used: z.date(),
|
||||||
times_used: z.number().int(),
|
times_used: z.number().int(),
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
|
|
||||||
export const UnterlageSchema = z.object({
|
export const UnterlageSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
uid: z.string(),
|
|
||||||
name: z.string().nullish(),
|
name: z.string().nullish(),
|
||||||
kategorie: z.string().nullish(),
|
kategorie: z.string().nullish(),
|
||||||
mime: z.string().nullish(),
|
mime: z.string().nullish(),
|
||||||
aufnahme_id: z.number().int().nullish(),
|
aufnahme_id: z.string().nullish(),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||||
|
|
||||||
export const VerbrauchsausweisGewerbeSchema = z.object({
|
export const VerbrauchsausweisGewerbeSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string(),
|
||||||
alte_ausweis_id: z.number().int().nullish(),
|
alte_ausweis_id: z.number().int().nullish(),
|
||||||
uid: z.string(),
|
|
||||||
benutzer_id: z.number().int().nullish(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).nullish(),
|
||||||
registriernummer: z.string().nullish(),
|
registriernummer: z.string().nullish(),
|
||||||
zusaetzliche_heizquelle: z.boolean().nullish(),
|
zusaetzliche_heizquelle: z.boolean().nullish(),
|
||||||
@@ -50,6 +48,8 @@ export const VerbrauchsausweisGewerbeSchema = z.object({
|
|||||||
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
||||||
created_at: z.date(),
|
created_at: z.date(),
|
||||||
updated_at: z.date(),
|
updated_at: z.date(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
ausweistyp: z.nativeEnum(AusweisTyp),
|
||||||
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
benutzer_id: z.string().nullish(),
|
||||||
|
rechnung_id: z.string().nullish(),
|
||||||
|
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
import * as z from "zod"
|
import * as z from "zod"
|
||||||
import { Ausstellgrund } from "@prisma/client"
|
import { Ausstellgrund, AusweisTyp } from "@prisma/client"
|
||||||
|
|
||||||
export const VerbrauchsausweisWohnenSchema = z.object({
|
export const VerbrauchsausweisWohnenSchema = z.object({
|
||||||
id: z.number().int(),
|
id: z.string().describe("ID des Ausweises"),
|
||||||
alte_ausweis_id: z.number().int().nullish(),
|
alte_ausweis_id: z.number().int().nullish(),
|
||||||
uid: z.string().describe("UID des Ausweises"),
|
|
||||||
benutzer_id: z.number().int().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
|
||||||
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
ausstellgrund: z.nativeEnum(Ausstellgrund).describe("Ausstellgrund wie z.B. Vermietung oder Verkauf").nullish(),
|
||||||
registriernummer: z.string().describe("Die Registriernummer des Ausweises").nullish(),
|
registriernummer: z.string().describe("Die Registriernummer des Ausweises").nullish(),
|
||||||
zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(),
|
zusaetzliche_heizquelle: z.boolean().describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen").nullish(),
|
||||||
@@ -35,8 +33,10 @@ export const VerbrauchsausweisWohnenSchema = z.object({
|
|||||||
prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(),
|
prueftext: z.string().describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung").nullish(),
|
||||||
beschreibung: z.string().nullish(),
|
beschreibung: z.string().nullish(),
|
||||||
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
kontrolldatei_angefragt: z.boolean().describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde").nullish(),
|
||||||
|
ausweistyp: z.nativeEnum(AusweisTyp),
|
||||||
created_at: z.date(),
|
created_at: z.date(),
|
||||||
updated_at: z.date(),
|
updated_at: z.date(),
|
||||||
rechnung_id: z.number().int().nullish(),
|
benutzer_id: z.string().describe("Die ID des Benutzers, welchem dieser Ausweis gehört").nullish(),
|
||||||
aufnahme_id: z.number().int().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
rechnung_id: z.string().nullish(),
|
||||||
|
aufnahme_id: z.string().describe("ID der korrespondierenden Gebäudeaufnahme"),
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,6 +18,20 @@ const { title } = Astro.props;
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { H } from "highlight.run";
|
||||||
|
|
||||||
|
if (import.meta.env.PROD) {
|
||||||
|
H.init("1jdkoe52", {
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
backendUrl: "https://highlight-backend.ibcornelsen.de/public",
|
||||||
|
tracingOrigins: true,
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
window.addEventListener("scroll", (event) => {
|
window.addEventListener("scroll", (event) => {
|
||||||
const skala = document.getElementById("skala");
|
const skala = document.getElementById("skala");
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,22 @@ export interface Props {
|
|||||||
const { title } = Astro.props;
|
const { title } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { H } from "highlight.run";
|
||||||
|
|
||||||
|
if (import.meta.env.PROD) {
|
||||||
|
H.init("1jdkoe52", {
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
backendUrl: "https://highlight-backend.ibcornelsen.de/public",
|
||||||
|
tracingOrigins: true,
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
|
|||||||
@@ -34,6 +34,22 @@ const schema = JSON.stringify({
|
|||||||
});
|
});
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { H } from "highlight.run";
|
||||||
|
|
||||||
|
if (import.meta.env.PROD) {
|
||||||
|
H.init("1jdkoe52", {
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
backendUrl: "https://highlight-backend.ibcornelsen.de/public",
|
||||||
|
tracingOrigins: true,
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const { title, user } = Astro.props;
|
|||||||
const objekte = await prisma.objekt.findMany({
|
const objekte = await prisma.objekt.findMany({
|
||||||
where: {
|
where: {
|
||||||
benutzer: {
|
benutzer: {
|
||||||
uid: user.uid
|
id: user.id
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
take: 10,
|
take: 10,
|
||||||
@@ -71,6 +71,22 @@ const schema = JSON.stringify({
|
|||||||
let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
let lightTheme = Astro.cookies.get("theme")?.value === "light";
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { H } from "highlight.run";
|
||||||
|
|
||||||
|
if (import.meta.env.PROD) {
|
||||||
|
H.init("1jdkoe52", {
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
backendUrl: "https://highlight-backend.ibcornelsen.de/public",
|
||||||
|
tracingOrigins: true,
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="de">
|
<html lang="de">
|
||||||
<head>
|
<head>
|
||||||
|
|||||||
@@ -19,6 +19,20 @@ const { title } = Astro.props;
|
|||||||
---
|
---
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { H } from "highlight.run";
|
||||||
|
|
||||||
|
if (import.meta.env.PROD) {
|
||||||
|
H.init("1jdkoe52", {
|
||||||
|
serviceName: "online-energieausweis",
|
||||||
|
backendUrl: "https://highlight-backend.ibcornelsen.de/public",
|
||||||
|
tracingOrigins: true,
|
||||||
|
networkRecording: {
|
||||||
|
enabled: true,
|
||||||
|
recordHeadersAndBody: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
window.addEventListener("scroll", (event) => {
|
window.addEventListener("scroll", (event) => {
|
||||||
let scroll = window.scrollY;
|
let scroll = window.scrollY;
|
||||||
|
|||||||
@@ -5,4 +5,4 @@ export enum TokenType {
|
|||||||
Verify
|
Verify
|
||||||
}
|
}
|
||||||
|
|
||||||
export type TokenData = { uid: string, typ: TokenType, exp: number }
|
export type TokenData = { id: string, typ: TokenType, exp: number }
|
||||||
@@ -6,22 +6,23 @@ export const API_REFRESH_TOKEN_COOKIE_NAME = "refreshToken";
|
|||||||
export const API_UID_COOKIE_NAME = "uid";
|
export const API_UID_COOKIE_NAME = "uid";
|
||||||
|
|
||||||
export enum VALID_UUID_PREFIXES {
|
export enum VALID_UUID_PREFIXES {
|
||||||
"auf" = "Aufnahme",
|
Aufnahme = "AU",
|
||||||
"obj" = "Objekt",
|
Objekt = "OB",
|
||||||
"vaw" = "Verbrauchsausweis Wohnen",
|
VerbrauchsausweisWohnen = "VW",
|
||||||
"vag" = "Verbrauchsausweis Gewerbe",
|
VerbrauchsausweisGewerbe = "VG",
|
||||||
"baw" = "Bedarfsausweis Wohnen",
|
BedarfsausweisWohnen = "BW",
|
||||||
"bag" = "Bedarfsausweis Gewerbe",
|
BedarfsausweisGewerbe = "BG",
|
||||||
"usr" = "User",
|
User = "US",
|
||||||
"ant" = "Anteilshaber",
|
Anteilshaber = "AN",
|
||||||
"evt" = "Event",
|
Event = "EV",
|
||||||
"img" = "Bild",
|
Bild = "BI",
|
||||||
"inv" = "Rechnung",
|
Rechnung = "RE",
|
||||||
"tkt" = "Ticket",
|
Ticket = "TK",
|
||||||
"pln" = "Gebäude Plan",
|
GebaeudePlan = "PN",
|
||||||
"gnw" = "GEG Nachweis Wohnen",
|
GEGNachweisWohnen = "GW",
|
||||||
"gng" = "GEG Nachweis Gewerbe",
|
GEGNachweisGewerbe = "GG",
|
||||||
"gge" = "GEG Einpreisung",
|
GEGEinpreisung = "GE",
|
||||||
|
Unterlage = "UN"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
37
src/lib/db.ts
Normal file
37
src/lib/db.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import * as crypto from "crypto";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generiert eine ID bestimmter Länge für die Datenbank, Implementierung kopiert von https://www.npmjs.com/package/crypto-random-string
|
||||||
|
* @param length Die Länge der generierten ID
|
||||||
|
* @param prefix Ein Optionales Präfix, welches vor die ID geschrieben wird, damit diese identifizierbar bleibt.
|
||||||
|
* @returns Die generierte ID
|
||||||
|
*/
|
||||||
|
export function generatePrefixedId(length: number, prefix: string = ""): string {
|
||||||
|
// Generating entropy is faster than complex math operations, so we use the simplest way
|
||||||
|
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
|
||||||
|
const characterCount = characters.length;
|
||||||
|
const maxValidSelector = (Math.floor(0x1_00_00 / characterCount) * characterCount) - 1; // Using values above this will ruin distribution when using modular division
|
||||||
|
const entropyLength = 2 * Math.ceil(1.1 * length); // Generating a bit more than required so chances we need more than one pass will be really low
|
||||||
|
let string = '';
|
||||||
|
let stringLength = 0;
|
||||||
|
|
||||||
|
while (stringLength < length) { // In case we had many bad values, which may happen for character sets of size above 0x8000 but close to it
|
||||||
|
const entropy = crypto.randomBytes(entropyLength);
|
||||||
|
let entropyPosition = 0;
|
||||||
|
|
||||||
|
while (entropyPosition < entropyLength && stringLength < length) {
|
||||||
|
const entropyValue = readUInt16LE(entropy, entropyPosition);
|
||||||
|
entropyPosition += 2;
|
||||||
|
if (entropyValue > maxValidSelector) { // Skip values which will ruin distribution when using modular division
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string += characters[entropyValue % characterCount];
|
||||||
|
stringLength++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return prefix + string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const readUInt16LE = (uInt8Array: Buffer<ArrayBufferLike>, offset: number) => uInt8Array[offset] + (uInt8Array[offset + 1] << 8);
|
||||||
@@ -67,7 +67,7 @@ export async function checkAuthorizationHeader(authorization: string) {
|
|||||||
|
|
||||||
const user = await prisma.benutzer.findUnique({
|
const user = await prisma.benutzer.findUnique({
|
||||||
where: {
|
where: {
|
||||||
uid: payload.uid
|
id: payload.id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,11 @@
|
|||||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
|
import { PDFDocument, StandardFonts } from "pdf-lib";
|
||||||
import { xml2pdf } from "./elements/xml2pdf.js";
|
import { xml2pdf } from "./elements/xml2pdf.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { fileURLToPath } from "url";
|
|
||||||
import { copyPage } from "./utils/copyPage.js";
|
import { copyPage } from "./utils/copyPage.js";
|
||||||
import { PERSISTENT_DIR } from "#lib/server/constants.js";
|
|
||||||
|
|
||||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||||
|
|
||||||
@@ -78,7 +75,7 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
|
|||||||
<text size="12" lineHeight="14">${benutzer.plz} ${benutzer.ort}</text>
|
<text size="12" lineHeight="14">${benutzer.plz} ${benutzer.ort}</text>
|
||||||
<flex direction="row" justify="space-between" marginTop="55" width="${innerWidth}">
|
<flex direction="row" justify="space-between" marginTop="55" width="${innerWidth}">
|
||||||
<text size="12" font="bold">Datenblatt Energieausweis</text>
|
<text size="12" font="bold">Datenblatt Energieausweis</text>
|
||||||
<text size="12">Ausweis ID: ${ausweis.uid}</text>
|
<text size="12">Ausweis ID: ${ausweis.id}</text>
|
||||||
</flex>
|
</flex>
|
||||||
<text size="12" lineHeight="14" font="bold" marginTop="10">Gebäudedaten</text>
|
<text size="12" lineHeight="14" font="bold" marginTop="10">Gebäudedaten</text>
|
||||||
<text size="12" lineHeight="14">Adresse: ${objekt.adresse}, ${objekt.plz} ${objekt.ort}</text>
|
<text size="12" lineHeight="14">Adresse: ${objekt.adresse}, ${objekt.plz} ${objekt.ort}</text>
|
||||||
@@ -363,8 +360,8 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bild.uid) {
|
if (bild.id) {
|
||||||
image = `<img src="${bild.uid}.jpg" width="${(pages[2].getWidth() - 120) / 3.1}" height="${(pages[2].getHeight() - marginY * 2) / 4}" />`
|
image = `<img src="${bild.id}.jpg" width="${(pages[2].getWidth() - 120) / 3.1}" height="${(pages[2].getHeight() - marginY * 2) / 4}" />`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (images.length > 0) {
|
if (images.length > 0) {
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisWohnenClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweis_2016 } from "#lib/Berechnungen/VerbrauchsausweisWohnen/VerbrauchsausweisWohnen_2016.js";
|
||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import { PDFDocument, rgb, StandardFonts, TextAlignment } from "pdf-lib";
|
import { PDFDocument, StandardFonts } from "pdf-lib";
|
||||||
import { checkbox, flex, text } from "./elements/index.js";
|
|
||||||
import { xml2pdf } from "./elements/xml2pdf.js";
|
import { xml2pdf } from "./elements/xml2pdf.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { BilderKategorie, Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
import { Enums, Heizungsstatus } from "#lib/server/prisma.js";
|
||||||
import { fileURLToPath } from "url";
|
|
||||||
import { copyPage } from "./utils/copyPage.js";
|
import { copyPage } from "./utils/copyPage.js";
|
||||||
import { PERSISTENT_DIR } from "#lib/server/constants.js";
|
|
||||||
import { shortenUID } from "#server/lib/hash.js";
|
|
||||||
|
|
||||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||||
|
|
||||||
@@ -53,7 +49,7 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
|
|
||||||
const innerWidth = pages[0].getWidth() - marginX * 2;
|
const innerWidth = pages[0].getWidth() - marginX * 2;
|
||||||
|
|
||||||
const id = shortenUID(ausweis.uid);
|
const id = ausweis.id;
|
||||||
|
|
||||||
const layout = xml2pdf(`<layout height="${pages[0].getHeight()}" width="${pages[0].getWidth()}" marginTop="150" marginLeft="${marginX}" marginRight="${marginX}">
|
const layout = xml2pdf(`<layout height="${pages[0].getHeight()}" width="${pages[0].getWidth()}" marginTop="150" marginLeft="${marginX}" marginRight="${marginX}">
|
||||||
<text size="12" lineHeight="14">${benutzer.vorname} ${benutzer.name}</text>
|
<text size="12" lineHeight="14">${benutzer.vorname} ${benutzer.name}</text>
|
||||||
@@ -309,8 +305,8 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bild.uid) {
|
if (bild.id) {
|
||||||
image = `<img src="${bild.uid}.jpg" width="${(pages[2].getWidth() - 120) / 3.1}" height="${(pages[2].getHeight() - marginY * 2) / 4}" />`
|
image = `<img src="${bild.id}.jpg" width="${(pages[2].getWidth() - 120) / 3.1}" height="${(pages[2].getHeight() - marginY * 2) / 4}" />`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (images.length > 0) {
|
if (images.length > 0) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
|
||||||
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
|
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
|
||||||
import { Enums } from "#lib/server/prisma.js";
|
import { Enums } from "#lib/server/prisma.js";
|
||||||
@@ -8,8 +8,6 @@ import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib"
|
|||||||
import { addCheckMark } from "./utils/checkbox.js";
|
import { addCheckMark } from "./utils/checkbox.js";
|
||||||
import { addText } from "./utils/text.js";
|
import { addText } from "./utils/text.js";
|
||||||
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
|
||||||
import { PERSISTENT_DIR } from "#lib/server/constants.js";
|
|
||||||
import { fileURLToPath } from "url";
|
|
||||||
import { getS3File } from "#lib/s3.js";
|
import { getS3File } from "#lib/s3.js";
|
||||||
|
|
||||||
|
|
||||||
@@ -143,7 +141,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
||||||
|
|
||||||
if (bild) {
|
if (bild) {
|
||||||
const file = await getS3File("ibc-images", `${bild.uid}.jpg`);
|
const file = await getS3File("ibc-images", `${bild.id}.jpg`);
|
||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
let image: PDFImage;
|
let image: PDFImage;
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
||||||
|
|
||||||
if (bild) {
|
if (bild) {
|
||||||
const file = await getS3File("ibc-images", `${bild.uid}.jpg`);
|
const file = await getS3File("ibc-images", `${bild.id}.jpg`);
|
||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
let image: PDFImage;
|
let image: PDFImage;
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import { Enums, prisma } from "#lib/server/prisma.js";
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gibt den richtigen Prisma Adapter für die Ausweisart basierend auf der UID zurück, oder null bei einer falschen UID.
|
* Gibt den richtigen Prisma Adapter für die Ausweisart basierend auf der UID zurück, oder null bei einer falschen UID.
|
||||||
* @param uid Die Ausweis UID
|
* @param id Die Ausweis UID
|
||||||
*/
|
*/
|
||||||
export function getPrismaAusweisAdapter(uid: string) {
|
export function getPrismaAusweisAdapter(id: string) {
|
||||||
const ausweisart = getAusweisartFromUUID(uid);
|
const ausweisart = getAusweisartFromUUID(id);
|
||||||
|
|
||||||
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
|
||||||
return prisma.verbrauchsausweisWohnen
|
return prisma.verbrauchsausweisWohnen
|
||||||
|
|||||||
33
src/lib/server/db.ts
Normal file
33
src/lib/server/db.ts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import { Aufnahme, Bild, Objekt, prisma, VerbrauchsausweisWohnen } from "./prisma.js";
|
||||||
|
|
||||||
|
export async function getVerbrauchsausweisWohnen(id: string): Promise<VerbrauchsausweisWohnen | null> {
|
||||||
|
return await prisma.verbrauchsausweisWohnen.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getAufnahme(id: string): Promise<Aufnahme | null> {
|
||||||
|
return await prisma.aufnahme.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getObjekt(id: string): Promise<Objekt | null> {
|
||||||
|
return await prisma.objekt.findUnique({
|
||||||
|
where: {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getBilder(aufnahme_id: string): Promise<Bild[]> {
|
||||||
|
return await prisma.bild.findMany({
|
||||||
|
where: {
|
||||||
|
aufnahme_id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -1,30 +1,29 @@
|
|||||||
import { shortenUID } from "#server/lib/hash.js";
|
|
||||||
import { BedarfsausweisWohnen, Enums, Rechnung, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "../prisma.js";
|
import { BedarfsausweisWohnen, Enums, Rechnung, VerbrauchsausweisGewerbe, VerbrauchsausweisWohnen } from "../prisma.js";
|
||||||
|
|
||||||
export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
||||||
const id = shortenUID(ausweis.uid);
|
const id = ausweis.id;
|
||||||
|
|
||||||
let subject: string = "";
|
let subject: string = "";
|
||||||
|
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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 (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})`
|
subject = `Bestellbestätigung vom IB Cornelsen - Bedarfsausweis Wohnen - offline Service (ID: ${id})`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,7 +32,7 @@ export function getPaymentSuccessSubject(ausweis: VerbrauchsausweisWohnen | Verb
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
||||||
const id = shortenUID(ausweis.uid);
|
const id = ausweis.id;
|
||||||
|
|
||||||
let body: string = "";
|
let body: string = "";
|
||||||
|
|
||||||
@@ -61,7 +60,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -85,7 +84,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
@@ -134,7 +133,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -158,7 +157,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
@@ -207,7 +206,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -231,7 +230,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
@@ -262,7 +261,7 @@ export function getPaymentInvoiceBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | VerbrauchsausweisGewerbe | BedarfsausweisWohnen, rechnung: Rechnung, ausweisart: Enums.Ausweisart) {
|
||||||
const id = shortenUID(ausweis.uid);
|
const id = ausweis.id;
|
||||||
|
|
||||||
let body: string = "";
|
let body: string = "";
|
||||||
|
|
||||||
@@ -290,7 +289,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -314,7 +313,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
@@ -363,7 +362,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -387,7 +386,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns drei aktuelle Heizkostenabrechnungen Ihres Energieversorgers zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
@@ -436,7 +435,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
if (rechnung.ausweistyp === Enums.AusweisTyp.Beratung) {
|
if (ausweis.ausweistyp === Enums.AusweisTyp.Beratung) {
|
||||||
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>
|
||||||
@@ -460,7 +459,7 @@ export function getPaymentSuccessBody(ausweis: VerbrauchsausweisWohnen | Verbrau
|
|||||||
<br>
|
<br>
|
||||||
fax 040 · 209339859
|
fax 040 · 209339859
|
||||||
</p>`
|
</p>`
|
||||||
} else if (rechnung.ausweistyp === Enums.AusweisTyp.Offline) {
|
} else if (ausweis.ausweistyp === Enums.AusweisTyp.Offline) {
|
||||||
body = `
|
body = `
|
||||||
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
<p>vielen Dank für Ihre Bestellung. Sie haben unseren offline Service für Ihren Energieausweis angefordert.<br>
|
||||||
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
Bitte antworten Sie auf diese E-Mail und schicken uns Grundriss- und Ansichtspläne Ihres Gebäudes zu. Wir werden Sie innerhalb von 48 Stunden unter der von Ihnen hinterlegten Telefonnummer kontaktieren und die Eingabe in Absprache mit Ihnen durchführen.</p>
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import {
|
|||||||
import { prisma } from "#lib/server/prisma.js";
|
import { prisma } from "#lib/server/prisma.js";
|
||||||
import { getAnsichtsausweis } from "../ausweis.js";
|
import { getAnsichtsausweis } from "../ausweis.js";
|
||||||
import Mail from "nodemailer/lib/mailer/index.js";
|
import Mail from "nodemailer/lib/mailer/index.js";
|
||||||
import { shortenUID } from "#server/lib/hash.js";
|
|
||||||
import { getPaymentSuccessSubject } from "./helpers.js";
|
import { getPaymentSuccessSubject } from "./helpers.js";
|
||||||
import { getPaymentInvoiceBody } from "./helpers.js";
|
import { getPaymentInvoiceBody } from "./helpers.js";
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ export async function sendInvoiceMail(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
const ausweisart = getAusweisartFromUUID(ausweis.id);
|
||||||
|
|
||||||
if (!ausweisart) {
|
if (!ausweisart) {
|
||||||
return
|
return
|
||||||
@@ -41,10 +40,9 @@ export async function sendInvoiceMail(
|
|||||||
|
|
||||||
const attachments: Mail.Attachment[] = [];
|
const attachments: Mail.Attachment[] = [];
|
||||||
|
|
||||||
const id = shortenUID(ausweis.uid)
|
const id = ausweis.id;
|
||||||
|
|
||||||
|
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && ausweis.ausweistyp === Enums.AusweisTyp.Standard) {
|
||||||
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && rechnung.ausweistyp === Enums.AusweisTyp.Standard) {
|
|
||||||
const ansichtsausweis = await getAnsichtsausweis(
|
const ansichtsausweis = await getAnsichtsausweis(
|
||||||
ausweis,
|
ausweis,
|
||||||
aufnahme,
|
aufnahme,
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import {
|
|||||||
import { prisma } from "#lib/server/prisma.js";
|
import { prisma } from "#lib/server/prisma.js";
|
||||||
import { getAnsichtsausweis } from "../ausweis.js";
|
import { getAnsichtsausweis } from "../ausweis.js";
|
||||||
import Mail from "nodemailer/lib/mailer/index.js";
|
import Mail from "nodemailer/lib/mailer/index.js";
|
||||||
import { shortenUID } from "#server/lib/hash.js";
|
|
||||||
import { getPaymentSuccessSubject } from "./helpers.js";
|
import { getPaymentSuccessSubject } from "./helpers.js";
|
||||||
import { getPaymentSuccessBody } from "./helpers.js";
|
import { getPaymentSuccessBody } from "./helpers.js";
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ export async function sendPaymentSuccessMail(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let info: string = "";
|
let info: string = "";
|
||||||
const ausweisart = getAusweisartFromUUID(ausweis.uid);
|
const ausweisart = getAusweisartFromUUID(ausweis.id);
|
||||||
|
|
||||||
if (!ausweisart) {
|
if (!ausweisart) {
|
||||||
return;
|
return;
|
||||||
@@ -41,9 +40,9 @@ export async function sendPaymentSuccessMail(
|
|||||||
|
|
||||||
const attachments: Mail.Attachment[] = [];
|
const attachments: Mail.Attachment[] = [];
|
||||||
|
|
||||||
const id = shortenUID(ausweis.uid)
|
const id = ausweis.id
|
||||||
|
|
||||||
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && rechnung.ausweistyp === Enums.AusweisTyp.Standard) {
|
if (ausweisart != Enums.Ausweisart.BedarfsausweisWohnen && ausweis.ausweistyp === Enums.AusweisTyp.Standard) {
|
||||||
const ansichtsausweis = await getAnsichtsausweis(
|
const ansichtsausweis = await getAnsichtsausweis(
|
||||||
ausweis,
|
ausweis,
|
||||||
aufnahme,
|
aufnahme,
|
||||||
|
|||||||
18
src/lib/tryCatch.ts
Normal file
18
src/lib/tryCatch.ts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Types for the result object with discriminated union
|
||||||
|
type Success<T> = [T, null]
|
||||||
|
|
||||||
|
type Failure<E> = [null, E];
|
||||||
|
|
||||||
|
type Result<T, E = Error> = Success<T> | Failure<E>;
|
||||||
|
|
||||||
|
// Main wrapper function
|
||||||
|
export async function tryCatch<T, E = Error>(
|
||||||
|
promise: Promise<T>,
|
||||||
|
): Promise<Result<T, E>> {
|
||||||
|
try {
|
||||||
|
const data = await promise;
|
||||||
|
return [data, null];
|
||||||
|
} catch (error) {
|
||||||
|
return [null, error as E];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
BedarfsausweisWohnenClient,
|
BedarfsausweisWohnenClient,
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
ObjektClient,
|
ObjektClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
AufnahmeClient
|
AufnahmeClient
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
export let aufnahme: AufnahmeClient
|
export let aufnahme: AufnahmeClient
|
||||||
export let user: BenutzerClient = {} as BenutzerClient;
|
export let user: BenutzerClient = {} as BenutzerClient;
|
||||||
export let ausweistyp: Enums.AusweisTyp
|
export let ausweistyp: Enums.AusweisTyp
|
||||||
export let bilder: UploadedGebaeudeBild[] = []
|
export let bilder: BildClient[] = []
|
||||||
export let uid: string;
|
export let uid: string;
|
||||||
|
|
||||||
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("bedarfsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
|
|||||||
@@ -50,7 +50,6 @@
|
|||||||
|
|
||||||
const result = await api.objekt.PUT.fetch({
|
const result = await api.objekt.PUT.fetch({
|
||||||
adresse: objekt.adresse,
|
adresse: objekt.adresse,
|
||||||
erstellungsdatum: new Date(),
|
|
||||||
latitude: 0,
|
latitude: 0,
|
||||||
longitude: 0,
|
longitude: 0,
|
||||||
ort: objekt.ort,
|
ort: objekt.ort,
|
||||||
@@ -78,7 +77,7 @@
|
|||||||
objekte.push({
|
objekte.push({
|
||||||
...objekt,
|
...objekt,
|
||||||
aufnahmen: [],
|
aufnahmen: [],
|
||||||
uid: result.uid
|
id: result.id
|
||||||
})
|
})
|
||||||
|
|
||||||
objekt = {
|
objekt = {
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
export let rechnung: RechnungClient | null = null;
|
export let rechnung: RechnungClient | null = null;
|
||||||
export let ausweisart: Enums.Ausweisart;
|
export let ausweisart: Enums.Ausweisart;
|
||||||
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
export let aktiveBezahlmethode: Bezahlmethoden = Enums.Bezahlmethoden.paypal;
|
||||||
export let ausweistyp: Enums.AusweisTyp = Enums.AusweisTyp.Standard;
|
|
||||||
|
|
||||||
let email = localStorage.getItem("kundendaten.email") || user.email || "";
|
let email = localStorage.getItem("kundendaten.email") || user.email || "";
|
||||||
let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || "";
|
let vorname = localStorage.getItem("kundendaten.vorname") || user.vorname || "";
|
||||||
@@ -118,7 +117,7 @@
|
|||||||
|
|
||||||
let prices = PRICES[ausweisart];
|
let prices = PRICES[ausweisart];
|
||||||
|
|
||||||
let basePrice: number = prices[ausweistyp];
|
let basePrice: number = prices[ausweis.ausweistyp];
|
||||||
|
|
||||||
$: price =
|
$: price =
|
||||||
basePrice +
|
basePrice +
|
||||||
@@ -129,17 +128,17 @@
|
|||||||
|
|
||||||
const zurueck = {
|
const zurueck = {
|
||||||
[Enums.Ausweisart.VerbrauchsausweisWohnen]:
|
[Enums.Ausweisart.VerbrauchsausweisWohnen]:
|
||||||
`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.uid}`,
|
`/energieausweis-erstellen/verbrauchsausweis-wohngebaeude?uid=${ausweis.id}`,
|
||||||
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
|
[Enums.Ausweisart.VerbrauchsausweisGewerbe]:
|
||||||
`/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.uid}`,
|
`/energieausweis-erstellen/verbrauchsausweis-gewerbe?uid=${ausweis.id}`,
|
||||||
[Enums.Ausweisart.BedarfsausweisWohnen]:
|
[Enums.Ausweisart.BedarfsausweisWohnen]:
|
||||||
`/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.uid}`,
|
`/energieausweis-erstellen/bedarfsausweis-wohnen?uid=${ausweis.id}`,
|
||||||
[Enums.Ausweisart.GEGNachweisWohnen]:
|
[Enums.Ausweisart.GEGNachweisWohnen]:
|
||||||
`/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.uid}`,
|
`/angebot-anfragen/geg-nachweis-wohnen-anfragen?uid=${ausweis.id}`,
|
||||||
[Enums.Ausweisart.GEGNachweisGewerbe]:
|
[Enums.Ausweisart.GEGNachweisGewerbe]:
|
||||||
`/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.uid}`,
|
`/angebot-anfragen/geg-nachweis-gewerbe-anfragen?uid=${ausweis.id}`,
|
||||||
[Enums.Ausweisart.BedarfsausweisGewerbe]:
|
[Enums.Ausweisart.BedarfsausweisGewerbe]:
|
||||||
`/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.uid}`,
|
`/angebot-anfragen/bedarfsausweis-gewerbe-anfragen?uid=${ausweis.id}`,
|
||||||
}[ausweisart];
|
}[ausweisart];
|
||||||
|
|
||||||
async function anfordern() {
|
async function anfordern() {
|
||||||
@@ -238,11 +237,11 @@
|
|||||||
window.history.pushState(
|
window.history.pushState(
|
||||||
{},
|
{},
|
||||||
"",
|
"",
|
||||||
`${location.pathname}?uid=${ausweis.uid}`
|
`${location.pathname}?uid=${ausweis.id}`
|
||||||
);
|
);
|
||||||
|
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
window.location.href = `/speichern-erfolgreich?uid=${ausweis.uid}`
|
window.location.href = `/speichern-erfolgreich?id=${ausweis.id}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,10 +294,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let uid: string, checkout_url: string | undefined;
|
let id: string, checkout_url: string | undefined;
|
||||||
|
|
||||||
if (rechnung) {
|
if (rechnung) {
|
||||||
const result = await api.rechnung._uid.PATCH.fetch({
|
const result = await api.rechnung._id.PATCH.fetch({
|
||||||
bezahlmethode: aktiveBezahlmethode,
|
bezahlmethode: aktiveBezahlmethode,
|
||||||
abweichende_versand_adresse: abweichende_versand_adresse,
|
abweichende_versand_adresse: abweichende_versand_adresse,
|
||||||
empfaenger: empfaenger,
|
empfaenger: empfaenger,
|
||||||
@@ -313,14 +312,14 @@
|
|||||||
versand_zusatzzeile: versand_zusatzzeile
|
versand_zusatzzeile: versand_zusatzzeile
|
||||||
}, {
|
}, {
|
||||||
params: {
|
params: {
|
||||||
uid: rechnung.uid
|
id: rechnung.id
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
Authorization: `Bearer ${Cookies.get(API_ACCESS_TOKEN_COOKIE_NAME)}`,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
uid = result.uid
|
id = result.id
|
||||||
checkout_url = result.checkout_url
|
checkout_url = result.checkout_url
|
||||||
} else {
|
} else {
|
||||||
const result = await api.rechnung.PUT.fetch(
|
const result = await api.rechnung.PUT.fetch(
|
||||||
@@ -340,8 +339,7 @@
|
|||||||
versand_plz: versand_plz,
|
versand_plz: versand_plz,
|
||||||
versand_ort: versand_ort,
|
versand_ort: versand_ort,
|
||||||
telefon: telefon,
|
telefon: telefon,
|
||||||
ausweis_uid: ausweis.uid,
|
ausweis_id: ausweis.id
|
||||||
ausweistyp,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
headers: {
|
headers: {
|
||||||
@@ -350,7 +348,7 @@
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
uid = result.uid;
|
id = result.id;
|
||||||
checkout_url = result.checkout_url;
|
checkout_url = result.checkout_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,7 +356,7 @@
|
|||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
|
|
||||||
if (aktiveBezahlmethode === Enums.Bezahlmethoden.rechnung) {
|
if (aktiveBezahlmethode === Enums.Bezahlmethoden.rechnung) {
|
||||||
window.location.href = `/payment/success?r=${uid}&a=${ausweis.uid}`;
|
window.location.href = `/payment/success?r=${id}&a=${ausweis.id}`;
|
||||||
} else {
|
} else {
|
||||||
window.location.href = checkout_url as string;
|
window.location.href = checkout_url as string;
|
||||||
}
|
}
|
||||||
@@ -431,10 +429,11 @@
|
|||||||
active={1}
|
active={1}
|
||||||
steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}
|
steps={["Gebäudedaten", "Kundendaten", "Bestätigung"]}
|
||||||
{ausweisart}
|
{ausweisart}
|
||||||
|
ausweistyp={ausweis.ausweistyp}
|
||||||
anliegen={"Angebot anfragen"}
|
anliegen={"Angebot anfragen"}
|
||||||
/>
|
/>
|
||||||
{:else}
|
{:else}
|
||||||
<Progressbar active={1} {ausweisart} anliegen={"Energieausweis erstellen"} />
|
<Progressbar active={1} {ausweisart} ausweistyp={ausweis.ausweistyp} anliegen={"Energieausweis erstellen"} />
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -845,11 +844,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 ausweistyp === Enums.AusweisTyp.Standard}
|
{#if ausweis.ausweistyp === Enums.AusweisTyp.Standard}
|
||||||
<span>Netto-Preis Energieausweis</span>
|
<span>Netto-Preis Energieausweis</span>
|
||||||
{:else if ausweistyp === Enums.AusweisTyp.Beratung}
|
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Beratung}
|
||||||
<span>Energieausweis inkl. Beratung</span>
|
<span>Energieausweis inkl. Beratung</span>
|
||||||
{:else if ausweistyp === Enums.AusweisTyp.Offline}
|
{:else if ausweis.ausweistyp === Enums.AusweisTyp.Offline}
|
||||||
<span>Energieausweis Offline</span>
|
<span>Energieausweis Offline</span>
|
||||||
{/if}
|
{/if}
|
||||||
<span>:</span>
|
<span>:</span>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import Bereich from "#components/labels/Bereich.svelte";
|
import Bereich from "#components/labels/Bereich.svelte";
|
||||||
import StromVerbrauch from "#components/Ausweis/StromVerbrauch.svelte";
|
import StromVerbrauch from "#components/Ausweis/StromVerbrauch.svelte";
|
||||||
import { AufnahmeClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
import { AufnahmeClient, ObjektClient, BildClient, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
|
||||||
import { BenutzerClient } from "#components/Ausweis/types.js";
|
import { BenutzerClient } from "#components/Ausweis/types.js";
|
||||||
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
|
import GebaeudeDaten from "#components/Ausweis/GebaeudeDaten.svelte";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Enums } from "#lib/client/prisma.js";
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
|
|
||||||
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
const ausweisart = Enums.Ausweisart.VerbrauchsausweisGewerbe
|
||||||
const anliegen = "Energieausweis erstellen";
|
const anliegen = "Energieausweis erstellen";
|
||||||
|
|||||||
@@ -41,29 +41,28 @@
|
|||||||
import Overlay from "#components/Overlay.svelte";
|
import Overlay from "#components/Overlay.svelte";
|
||||||
import AusweisGespeichertModule from "#modules/VerbrauchsausweisWohnen/AusweisGespeichertModule.svelte";
|
import AusweisGespeichertModule from "#modules/VerbrauchsausweisWohnen/AusweisGespeichertModule.svelte";
|
||||||
import type {
|
import type {
|
||||||
VerbrauchsausweisWohnenClient,
|
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
ObjektClient,
|
|
||||||
AufnahmeClient,
|
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
import { Enums } from "#lib/client/prisma.js";
|
import { Aufnahme, Enums, Objekt, VerbrauchsausweisWohnen } from "#lib/client/prisma.js";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
|
||||||
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
|
// TODO: Vom Server sollte ein volles Objekt kommen, dass alle Subobjekte enthält, weil es sonst zu Problemen führen kann
|
||||||
// wenn aufnahme oder objekt nicht existiert...
|
// wenn aufnahme oder objekt nicht existiert...
|
||||||
export let ausweis: VerbrauchsausweisWohnenClient;
|
export let ausweis: VerbrauchsausweisWohnen;
|
||||||
export let objekt: ObjektClient
|
export let objekt: Objekt
|
||||||
export let aufnahme: AufnahmeClient
|
export let aufnahme: Aufnahme
|
||||||
export let user: BenutzerClient;
|
export let user: BenutzerClient | null;
|
||||||
export let bilder: UploadedGebaeudeBild[];
|
export let bilder: BildClient[];
|
||||||
export let ausweistyp: Enums.AusweisTyp;
|
export let ausweistyp: Enums.AusweisTyp;
|
||||||
export let uid: string | null;
|
export let id: string | null;
|
||||||
|
|
||||||
if (!uid && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
// Falls die Daten im localStorage neuer sind als der Ausweis den wir von der Datenbank bekommen haben, benutzen wir lieber diese.
|
||||||
|
if (!id && (!ausweis.updated_at || moment(localStorage.getItem("verbrauchsausweis-wohnen.updated_at") || new Date()).isAfter(ausweis.updated_at))) {
|
||||||
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
|
const localStorageAusweis = localStorage.getItem("verbrauchsausweis-wohnen.ausweis");
|
||||||
if (localStorageAusweis) {
|
if (localStorageAusweis) {
|
||||||
ausweis = JSON.parse(localStorageAusweis)
|
ausweis = JSON.parse(localStorageAusweis)
|
||||||
|
ausweis.ausweistyp = ausweistyp;
|
||||||
}
|
}
|
||||||
|
|
||||||
const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-wohnen.aufnahme");
|
const localStorageAufnahme = localStorage.getItem("verbrauchsausweis-wohnen.aufnahme");
|
||||||
@@ -115,7 +114,7 @@ let skala: HTMLDivElement;
|
|||||||
|
|
||||||
<Overlay bind:hidden={speichernOverlayHidden}>
|
<Overlay bind:hidden={speichernOverlayHidden}>
|
||||||
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
|
<div class="bg-white w-full max-w-screen-sm py-8 px-8">
|
||||||
<AusweisGespeichertModule uid={ausweis.uid}></AusweisGespeichertModule>
|
<AusweisGespeichertModule uid={ausweis.id}></AusweisGespeichertModule>
|
||||||
</div>
|
</div>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
ObjektClient,
|
ObjektClient,
|
||||||
AufnahmeClient,
|
AufnahmeClient,
|
||||||
BenutzerClient,
|
BenutzerClient,
|
||||||
UploadedGebaeudeBild,
|
BildClient,
|
||||||
UnterlageClient,
|
UnterlageClient,
|
||||||
GEGNachweisWohnenClient,
|
GEGNachweisWohnenClient,
|
||||||
} from "#components/Ausweis/types.js";
|
} from "#components/Ausweis/types.js";
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
export let objekt: ObjektClient;
|
export let objekt: ObjektClient;
|
||||||
export let aufnahme: AufnahmeClient;
|
export let aufnahme: AufnahmeClient;
|
||||||
export let user: BenutzerClient = {} as BenutzerClient;
|
export let user: BenutzerClient = {} as BenutzerClient;
|
||||||
export let bilder: UploadedGebaeudeBild[] = [];
|
export let bilder: BildClient[] = [];
|
||||||
export let plaene: UnterlageClient[] = [];
|
export let plaene: UnterlageClient[] = [];
|
||||||
export let unterlagen: UnterlageClient[] = [];
|
export let unterlagen: UnterlageClient[] = [];
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user