854 Commits

Author SHA1 Message Date
Jens Cornelsen
cfb7df5a89 Die 4 wichtigsten Energiewerte als Beispielergebnis 2025-08-06 18:46:30 +02:00
Jens Cornelsen
d9db1e3f03 Textkommentare eingefügt 2025-08-03 22:40:10 +02:00
Jens Cornelsen
0335aa556f Eingabe Heizung 2025-06-01 15:15:31 +02:00
Jens Cornelsen
b8256aa3bb !8599 2025-05-14 18:50:21 +02:00
Jens Cornelsen
843229b1a7 Berechnung bis Formblatt 14 2025-05-08 23:12:38 +02:00
Jens Cornelsen
36449d6a56 Eingabe Bauteile 2025-05-05 12:39:46 +02:00
Jens Cornelsen
115d14875f Berechnung bis Formblatt 12 2025-05-02 10:00:44 +02:00
Jens Cornelsen
1efbbccffb Auto stash before rebase of "dev" onto "origin/dev" 2025-05-01 09:54:18 +02:00
Jens Cornelsen
8fd63da3f9 Auto stash before rebase of "dev" onto "origin/dev" 2025-05-01 09:48:20 +02:00
Jens Cornelsen
05ad62a1fa Auto stash before rebase of "dev" onto "origin/dev" 2025-05-01 09:46:03 +02:00
Jens Cornelsen
b1a04c0d66 Auto stash before rebase of "dev" onto "origin/dev" 2025-05-01 09:44:03 +02:00
Moritz Utcke
ed33d19648 Speichern 2025-04-29 16:51:15 -03:00
Moritz Utcke
6600d8dee8 Merge branch 'staging' into dev 2025-04-29 15:19:34 -03:00
Jens Cornelsen
7fed3d0625 Anzeige der Zusatzservices 2025-04-29 18:46:22 +02:00
Jens Cornelsen
9efce15f51 . 2025-04-29 18:25:49 +02:00
Jens Cornelsen
4acca5591c Fix ausweistyp 2025-04-29 18:00:31 +02:00
Moritz Utcke
da7f91bab3 Merge branch 'main' into staging 2025-04-29 12:21:47 -03:00
Moritz Utcke
bb3caa04c4 Merge branch 'dev' into staging 2025-04-29 12:20:42 -03:00
Moritz Utcke
e18f27675d Fix 2025-04-29 11:30:29 -03:00
Moritz Utcke
1380dcb43a Partner 2025-04-29 11:15:57 -03:00
Moritz Utcke
a8be6db8aa Ausweis erstellen 2025-04-29 10:39:11 -03:00
Jens Cornelsen
cee45ffef5 Auto stash before rebase of "main" onto "origin/main" 2025-04-29 13:01:51 +02:00
Moritz Utcke
e24310bdb7 Ausweis Erstellen Button 2025-04-28 23:57:36 -03:00
Moritz Utcke
39e8527c59 Merge branch 'staging' into dev 2025-04-28 17:28:14 -03:00
Moritz Utcke
76bd0bb5dd hilfe 2025-04-28 17:18:45 -03:00
Moritz Utcke
4b9e7dda5f ahhhhh 2025-04-28 17:14:28 -03:00
Moritz Utcke
73b44d574b Update 2025-04-28 17:11:54 -03:00
Moritz Utcke
f778641be6 No Checkout 2025-04-28 17:07:26 -03:00
Moritz Utcke
75723d666e Update 2025-04-28 16:59:34 -03:00
Moritz Utcke
272b044157 Update 2025-04-28 16:52:41 -03:00
Moritz Utcke
10bc17963a Update 2025-04-28 16:48:34 -03:00
Moritz Utcke
35c24b0380 Update 2025-04-28 16:40:49 -03:00
Moritz Utcke
3e09686cf6 Update 2025-04-28 16:34:28 -03:00
Moritz Utcke
aca01b859f Auto PR 2025-04-28 16:31:33 -03:00
Moritz Utcke
344651dfc1 Update Workflow 2025-04-28 15:38:06 -03:00
Moritz Utcke
4a2eb72f0a Update workflow 2025-04-28 14:10:18 -03:00
Moritz Utcke
eb1763a6c1 Merge remote-tracking branch 'origin/staging' into staging 2025-04-28 14:06:31 -03:00
Moritz Utcke
e276c71461 Update workflow 2025-04-28 14:06:17 -03:00
Moritz Utcke
2bf4eba44d Update Workflow 2025-04-28 14:02:46 -03:00
Moritz Utcke
9e2d7ecf08 Merge branch 'main' into staging 2025-04-28 13:32:22 -03:00
Moritz Utcke
058b61908f Update Workflow 2025-04-28 13:31:50 -03:00
Moritz Utcke
5a6bfcc900 Merge branch 'staging' 2025-04-28 13:29:59 -03:00
Moritz Utcke
ec0d5ddf5a Update workflow 2025-04-28 13:23:33 -03:00
Moritz Utcke
7204957749 Update dev pipeline 2025-04-28 13:14:37 -03:00
Moritz Utcke
8c4345924f Update dev pipeline 2025-04-28 13:10:16 -03:00
Moritz Utcke
ed609a4690 Merge branch 'main' into dev 2025-04-28 13:08:08 -03:00
Moritz Utcke
b29b26ef0e Update 2025-04-28 12:58:54 -03:00
Moritz Utcke
d6f01bef98 Merge branch 'main' into staging 2025-04-28 12:53:22 -03:00
Moritz Utcke
bfb17795a6 Workflows 2025-04-28 12:52:09 -03:00
Moritz Utcke
dc5c6ac557 Workflows 2025-04-28 12:50:12 -03:00
Moritz Utcke
6416b0f749 Workflows 2025-04-28 12:45:21 -03:00
Moritz Utcke
a094036d07 Merge branch 'feature-branch' into dev 2025-04-28 11:29:11 -03:00
Moritz Utcke
8c69e6add1 Größe geändert 2025-04-28 11:26:23 -03:00
Jens Cornelsen
78decc697e . 2025-04-28 14:03:41 +02:00
Jens Cornelsen
5c846ec400 Text Dashboard Warmwasserzuschlag 2025-04-28 13:59:19 +02:00
Moritz Utcke
b13b145d16 Fix dev 2025-04-28 08:57:19 -03:00
Jens Cornelsen
c2542e7dab Kühlung vorhanden fix 2025-04-28 13:16:54 +02:00
Jens Cornelsen
422a03a2e8 Warmwasserzuschlag fix 2025-04-28 13:04:02 +02:00
Moritz Utcke
e09513d50e Zusatzartikel und Hilfe Anfordern 2025-04-27 17:15:24 -03:00
Moritz Utcke
e159e81c2d Neuausstellung + Verschlankung 2025-04-27 16:29:20 -03:00
Jens Cornelsen
a113d09775 Merge pull request #525 from IBCornelsen/dev
info popup entfernt
2025-04-26 10:03:20 +02:00
Jens Cornelsen
25aa048c4a info popup entfernt 2025-04-26 10:00:11 +02:00
Jens Cornelsen
207bf31058 Merge pull request #524 from IBCornelsen/dev
Button Ausweis erstellen
2025-04-25 19:37:26 +02:00
Jens Cornelsen
f9daeceeca Button Ausweis erstellen 2025-04-25 19:26:21 +02:00
Jens Cornelsen
b47a5fd5f6 Merge pull request #523 from IBCornelsen/dev
update main
2025-04-25 10:57:12 +02:00
Jens Cornelsen
88c35f81f7 Text verbessert 2025-04-25 10:55:08 +02:00
Jens Cornelsen
cc583080ea Preis fix Bedarfsausweis 2025-04-24 17:18:47 +02:00
Carl Mahnke
e535cdaeba Bedarfsausweis ausstellen - cleanup 2025-04-24 16:56:52 +02:00
Carl Mahnke
f17a8a6481 Bedarfsausweis Austellen - Fix Rechnung PDF Anhang 2025-04-24 16:51:12 +02:00
Carl Mahnke
d5fb937dd6 Bedarfsausweis Austellen - Fix Rechnung PDF Anhang 2025-04-24 16:47:41 +02:00
Carl Mahnke
23246fbda2 Bedarfsausweis Austellen - Fix Rechnung PDF Anhang 2025-04-24 16:35:18 +02:00
Jens Cornelsen
735344cea4 Merge pull request #522 from IBCornelsen/dev
update main
2025-04-24 15:58:03 +02:00
Jens Cornelsen
8488472ebc . 2025-04-24 15:37:01 +02:00
Jens Cornelsen
299ec89216 . 2025-04-24 15:24:43 +02:00
Jens Cornelsen
a9aaa508f5 Auto stash before rebase of "dev" onto "origin/dev" 2025-04-24 15:17:39 +02:00
Carl Mahnke
52261e8d2a Bedarfsausweis ausstellen Timeout deaktivieren 2025-04-24 14:56:43 +02:00
Carl Mahnke
4ac3999f67 Bedarfsausweis austellen Rechnung PDF Error Logging 2025-04-24 14:50:15 +02:00
Carl Mahnke
9c059eb4b6 Bedarfsausweis austellen 2025-04-24 14:48:06 +02:00
Carl Mahnke
ba5d5ac5d5 Merge remote-tracking branch 'origin/dev' into Dev-Carl 2025-04-24 14:25:18 +02:00
Jens Cornelsen
6d48cee1fa . 2025-04-24 14:22:57 +02:00
Carl Mahnke
d157ed3c0f Bedarfsausweis Ausstellen: Fixing PDF Mime Type + LexOffice Rechnung anhängen 2025-04-24 14:20:31 +02:00
Jens Cornelsen
0495d48669 . 2025-04-24 14:13:20 +02:00
Jens Cornelsen
7ba5c9de92 Dashboard 2025-04-24 13:42:52 +02:00
Carl Mahnke
b64282a7ca Disable LexOffice Rechnung for Testing 2025-04-24 12:58:50 +02:00
Carl Mahnke
bd67288887 Merge remote-tracking branch 'origin/dev' into Dev-Carl 2025-04-24 12:55:05 +02:00
Carl Mahnke
68f51d4553 Merge branch 'main' into Dev-Carl 2025-04-24 12:54:22 +02:00
Jens Cornelsen
5dbbde0856 Merge pull request #521 from IBCornelsen/main
get main
2025-04-24 12:52:04 +02:00
Carl Mahnke
a9f01a5a8e Verbrauchsausweis: Fix Attachments 2025-04-24 10:45:43 +02:00
Carl Mahnke
28a383a476 Bedarfsausweis: Revert Check, ob Rechnung PDF bereits existiert 2025-04-24 10:37:54 +02:00
Jens Cornelsen
56b6bcd1a1 Fix Attachment 2025-04-24 09:59:28 +02:00
Jens Cornelsen
14b3cdf744 Merge pull request #520 from IBCornelsen/main
get main
2025-04-23 19:42:38 +02:00
Jens Cornelsen
38f77d862d Merge branch 'dev' into main 2025-04-23 19:40:44 +02:00
Carl Mahnke
f3c2c82d8d Quickfix Tel 2 2025-04-23 18:32:36 +02:00
Carl Mahnke
87f6bf14d8 Merge remote-tracking branch 'origin/dev' into Dev-Carl 2025-04-23 18:27:59 +02:00
Carl Mahnke
72ed91ddcc Bedarfsausweis: Check, ob rechnung PDF bereits existiert 2025-04-23 18:22:29 +02:00
Jens Cornelsen
a4c3c38912 api caller 2025-04-23 18:20:46 +02:00
Jens Cornelsen
e86b44f5a0 Telefonnummer Dashboard 2025-04-23 18:18:40 +02:00
Carl Mahnke
101b1e9aab Bedarfsausweis: Check, ob Rechnung PDF bereits existiert 2025-04-23 18:00:53 +02:00
Carl Mahnke
ecd4b08119 Auto stash before merge of "Dev-Carl" and "origin/dev" 2025-04-23 17:38:05 +02:00
Moritz Utcke
f958eb07bf Bedarfsausweis 2025-04-23 10:49:58 -03:00
Carl Mahnke
611866508c Aushang PDF 2025-04-23 15:43:22 +02:00
Moritz Utcke
076c49c054 Bedarfsausweis Wohnen ausstellen 2025-04-23 10:34:30 -03:00
Jens Cornelsen
9c8b1b1913 Merge pull request #519 from IBCornelsen/dev
update main
2025-04-23 10:46:53 +02:00
Jens Cornelsen
cfad65878e . 2025-04-23 10:08:34 +02:00
Moritz Utcke
379ae672c4 Merge remote-tracking branch 'origin/dev' into dev 2025-04-22 19:42:52 -03:00
Moritz Utcke
b568f5c101 Bedarfsausweis 2025-04-22 19:41:57 -03:00
Jens Cornelsen
7c36bb8728 Merge pull request #518 from IBCornelsen/dev
Fix Bedarfsausweis
2025-04-23 00:12:45 +02:00
Jens Cornelsen
df0fa82482 Fix Bedarfsausweis 2025-04-23 00:05:32 +02:00
Jens Cornelsen
70fd424488 Textkorrekturen 2025-04-22 21:17:09 +02:00
Moritz Utcke
8470ad5915 Highlight rausgenommen 2025-04-22 15:04:43 -03:00
Moritz Utcke
a8a9553d20 Stornierungsbestätigung 2025-04-22 15:01:07 -03:00
Moritz Utcke
8d8fb96f0d Merge remote-tracking branch 'origin/dev' into dev 2025-04-22 13:06:21 -03:00
Jens Cornelsen
25280f2cd1 Merge pull request #517 from IBCornelsen/dev
Update main
2025-04-22 18:01:46 +02:00
Jens Cornelsen
3ab5992210 Adresse Angebotsanfragen 2025-04-22 17:27:00 +02:00
Moritz Utcke
de8dd9e9f1 Auto stash before merge of "dev" and "origin/dev" 2025-04-22 10:32:34 -03:00
Jens Cornelsen
3e15724c3e Navigation 2025-04-22 15:15:03 +02:00
Jens Cornelsen
dfe7856d03 Infotext hinzugefügt 2025-04-22 13:16:12 +02:00
Jens Cornelsen
b70417e9ed . 2025-04-22 13:02:13 +02:00
Jens Cornelsen
f5d6fa03e5 Navigation 2025-04-22 12:56:15 +02:00
Jens Cornelsen
e35378ced8 Auto stash before rebase of "dev" onto "origin/dev" 2025-04-22 12:45:31 +02:00
Moritz Utcke
414727fdc1 Unterlagen und Bilder 2025-04-22 00:09:08 -03:00
Moritz Utcke
e2c14dace9 Suche 2025-04-21 21:40:17 -03:00
Moritz Utcke
568f9769ee Dashboard objekte redirect 2025-04-21 21:19:49 -03:00
Moritz Utcke
6901973e5c Merge branch 'dashboard' into dev 2025-04-21 20:25:20 -03:00
Moritz Utcke
a588837605 Verwendungszweck 2025-04-21 20:24:57 -03:00
Jens Cornelsen
6e6ac36178 Merge pull request #516 from IBCornelsen/dashboard
Neues Dashboard
2025-04-22 01:10:38 +02:00
Moritz Utcke
cfc6d3c230 Rechnung Optional 2025-04-21 20:06:11 -03:00
Jens Cornelsen
b6aa1fdf6d Merge remote-tracking branch 'origin/dev' into dashboard 2025-04-22 00:59:41 +02:00
Moritz Utcke
d9f6b7e825 Speichern direkt auf Ausweis 2025-04-21 19:59:30 -03:00
Jens Cornelsen
68bffa8944 Auto stash before rebase of "dashboard" onto "origin/dashboard" 2025-04-22 00:47:02 +02:00
Moritz Utcke
f8e890e9a9 Bestätigungsmail weg 2025-04-21 19:09:57 -03:00
Moritz Utcke
64eb0d4e15 Fix 2025-04-21 18:18:31 -03:00
Moritz Utcke
d7a862e061 Fix 2025-04-21 17:56:23 -03:00
Moritz Utcke
6a2c386b5d GEGNachweise 2025-04-21 17:55:37 -03:00
Moritz Utcke
62e6dd44b9 Dashboard Template 2025-04-21 17:53:19 -03:00
Moritz Utcke
05b31a4862 Dashboard 2025-04-21 16:15:47 -03:00
Moritz Utcke
55305f31b7 Unnötige Dateien entfernt 2025-04-21 15:35:29 -03:00
Moritz Utcke
1f86a063ef Ausweis erstellen aus Dashboard 2025-04-21 15:23:59 -03:00
Moritz Utcke
217885587e Merge remote-tracking branch 'origin/dev' into dev 2025-04-21 15:18:48 -03:00
Moritz Utcke
28f8933f72 Ausweis als Admin bearbeiten 2025-04-21 15:18:41 -03:00
Moritz Utcke
5360ec3d24 Ausweis als Admin bearbeiten 2025-04-21 15:08:43 -03:00
Moritz Utcke
6339a3aeda Merge remote-tracking branch 'origin/main' into dev 2025-04-21 15:06:04 -03:00
Jens Cornelsen
974d0e28a1 Kühlungszuschlag fix 2025-04-21 19:57:15 +02:00
Jens Cornelsen
e9dab58a57 . 2025-04-21 19:23:15 +02:00
Jens Cornelsen
3aa72ea258 Warmwasserzuschlag fix 2025-04-21 19:10:14 +02:00
Moritz Utcke
0b161cf53e Bedarfsausweis Wohnen Sektion Rausgenomment 2025-04-21 13:00:04 -03:00
Jens Cornelsen
590723b297 Merge pull request #515 from IBCornelsen/dev
Datum Fetch, Rechnung, Mollie, etc
2025-04-21 16:33:14 +02:00
Jens Cornelsen
fd390238d9 Ausweis Box Design Änderung Text 2025-04-21 16:30:19 +02:00
Moritz Utcke
6388669d66 Verbrauch Datum 2025-04-21 09:34:07 -04:00
Moritz Utcke
b475e4dd79 fix GetRechung 2025-04-20 20:55:22 -04:00
Moritz Utcke
f5373fc7b1 Fix 2025-04-20 20:49:37 -04:00
Moritz Utcke
265e58d80d Fix Undefined 2025-04-20 20:37:46 -04:00
Moritz Utcke
d2fac65a6d Bugfixes 2025-04-20 20:34:29 -04:00
Moritz Utcke
b0df7fc4cf bump astro-typesafe-api 2025-04-20 19:41:42 -04:00
Moritz Utcke
e21a829cb6 Bugfixes 2025-04-20 17:21:46 -04:00
Jens Cornelsen
bef1cff348 Dashboard Verbrauchsausweis 2025-04-19 22:02:12 +02:00
Jens Cornelsen
f9555c7a1e Merge pull request #514 from IBCornelsen/main
get main
2025-04-19 02:41:59 +02:00
Jens Cornelsen
03389a04ba Zusammenfassung Verbrauchsausweis 2025-04-19 02:35:55 +02:00
Jens Cornelsen
008a6f05a5 Zusammenfassung Eingaben 2025-04-19 01:48:35 +02:00
Jens Cornelsen
6aa8816dd1 . 2025-04-18 18:12:59 +02:00
Jens Cornelsen
70427e8a45 . 2025-04-18 16:15:28 +02:00
Jens Cornelsen
51ea0ec007 . 2025-04-18 16:03:52 +02:00
Jens Cornelsen
1381f5787a Merge pull request #513 from IBCornelsen/dev
Verbrauchsausweis Gewerbe  Anzeige Zuschläge korrigiert
2025-04-18 15:37:46 +02:00
Jens Cornelsen
722db2d2ec . 2025-04-18 15:27:28 +02:00
Jens Cornelsen
72458f4631 . 2025-04-18 14:59:42 +02:00
Jens Cornelsen
bde6b3e102 . 2025-04-18 14:37:36 +02:00
Jens Cornelsen
936ca5abaa Kühlungszuschlag Strom 2025-04-18 14:27:43 +02:00
Jens Cornelsen
1f03bf5570 Leerstandszuschlag Strom 2025-04-18 13:57:22 +02:00
Jens Cornelsen
e7e2390bcd Kühlungszuschlag korrigiert 2025-04-18 13:41:48 +02:00
Jens Cornelsen
3ac6164c82 Warmwasserzuschlag raus 2025-04-18 13:26:30 +02:00
Jens Cornelsen
3bb6778e67 Leerstandszuschlag 2025-04-18 13:04:06 +02:00
Jens Cornelsen
fa797c00c2 Merge pull request #512 from IBCornelsen/main
get main
2025-04-18 12:27:28 +02:00
Jens Cornelsen
f0ae1a9205 . 2025-04-17 23:34:45 +02:00
Jens Cornelsen
af7da9c07f . 2025-04-17 23:29:36 +02:00
Jens Cornelsen
4106253b58 . 2025-04-17 23:26:43 +02:00
Jens Cornelsen
c787dce10c . 2025-04-17 23:18:04 +02:00
Jens Cornelsen
b265910b2a . 2025-04-17 23:03:17 +02:00
Jens Cornelsen
5e3f4c0f59 . 2025-04-17 22:46:02 +02:00
Jens Cornelsen
2fe07ebfad Zusammenfasssung Ausweisseite 2025-04-17 22:39:20 +02:00
Jens Cornelsen
7be766d2c7 Zahllinks erstmal entfernt 2025-04-17 20:58:37 +02:00
Jens Cornelsen
15651fc803 Fix Kühlung "nicht vorhanden" 2025-04-17 18:13:22 +02:00
Jens Cornelsen
5b3b81551e Merge remote-tracking branch 'origin/main' into dev 2025-04-17 18:03:03 +02:00
Jens Cornelsen
330841f8ee . 2025-04-17 01:46:45 +02:00
Jens Cornelsen
0708c6ce43 . 2025-04-17 01:41:23 +02:00
Jens Cornelsen
2c1945584d . 2025-04-17 01:36:49 +02:00
Jens Cornelsen
183178f943 . 2025-04-17 01:30:16 +02:00
Jens Cornelsen
b1b95159fa plz und ort in Ausweis pdf eingefügt 2025-04-17 01:20:18 +02:00
Jens Cornelsen
b0828592c5 Filter nur bestellte Ausweise und nicht ausgestellte im Dashboard für Admins 2025-04-17 01:02:58 +02:00
Jens Cornelsen
21446b3bf3 Filter nur bestellte Ausweise und nicht ausgestellte im Dashboard für Admins 2025-04-17 00:52:09 +02:00
Jens Cornelsen
935fbfba78 Firma in Adresse 2025-04-16 17:34:48 +02:00
Jens Cornelsen
fa195a79f5 Firma Benutzer in Adresse 2025-04-16 17:28:14 +02:00
Jens Cornelsen
f6a367c567 Adresse DB Rückgängig 2025-04-16 17:18:02 +02:00
Jens Cornelsen
bf6d8f47e7 Kühlung repariert VWBWTKEN9TR 2025-04-16 11:12:47 +02:00
Jens Cornelsen
02761610d1 Korrektur Kreuz 2025-04-15 20:37:14 +02:00
Jens Cornelsen
bf3107d3b7 Kühlungszuschlag 2025-04-15 18:24:28 +02:00
Jens Cornelsen
66e596bb57 Nochmal Zuschlag Kühlung 2025-04-15 18:12:22 +02:00
Jens Cornelsen
cdfdb6c001 PDF gefixt !! 2025-04-15 17:49:58 +02:00
Jens Cornelsen
c583229cc8 PDF Anzeige 2025-04-15 17:39:52 +02:00
Jens Cornelsen
417009fd6e PDF Verbrauchsausweis Anzeige gefixt 2025-04-15 17:08:34 +02:00
Jens Cornelsen
d3ffbca858 . 2025-04-15 17:01:22 +02:00
Jens Cornelsen
db4fc19c1a . 2025-04-15 16:57:40 +02:00
Jens Cornelsen
eefae0635a . 2025-04-15 16:49:55 +02:00
Jens Cornelsen
1d7c12ec60 . 2025-04-15 16:46:43 +02:00
Jens Cornelsen
4d7f94e292 . 2025-04-15 16:34:39 +02:00
Jens Cornelsen
e13810b16a . 2025-04-15 16:25:37 +02:00
Jens Cornelsen
d4be779cf1 . 2025-04-15 16:17:45 +02:00
Jens Cornelsen
3912262f4b fix pdf Verbrauchsausweis gewerbe 2025-04-15 16:05:24 +02:00
Jens Cornelsen
ed753b71c1 . 2025-04-15 15:47:37 +02:00
Jens Cornelsen
5b78e8b075 x statt haken 2025-04-15 15:41:01 +02:00
Jens Cornelsen
71dd1de503 test 2025-04-15 15:30:09 +02:00
Jens Cornelsen
2a95f7750a . 2025-04-15 15:26:13 +02:00
Jens Cornelsen
6d3dcb503a unicode 2025-04-15 15:21:38 +02:00
Jens Cornelsen
57c6bbd96c . 2025-04-15 15:18:08 +02:00
Jens Cornelsen
3f18ad9c59 . 2025-04-15 15:12:50 +02:00
Jens Cornelsen
c09cdcc788 . 2025-04-15 15:06:56 +02:00
Jens Cornelsen
473ff8d774 haken alternative 2025-04-15 14:58:17 +02:00
Jens Cornelsen
4ec3f42a8b . 2025-04-15 14:55:07 +02:00
Jens Cornelsen
36a4d7415c . 2025-04-15 14:37:26 +02:00
Jens Cornelsen
df81964b86 Elemente pdf 2025-04-15 14:24:46 +02:00
Carl Mahnke
7130b6ba65 Verbrauchsausweis Gewerbe ausstellen 2025-04-15 13:36:19 +02:00
Jens Cornelsen
bfa79fb06e Anzeige Elemente PDF - fix 2025-04-15 13:05:44 +02:00
Jens Cornelsen
52e2459d47 Bereiche wieder aktiviert 2025-04-14 17:45:57 +02:00
Jens Cornelsen
5081f70570 Höhe Dashboard full 2025-04-14 17:10:41 +02:00
Jens Cornelsen
f4e6b7baf8 dashboard layout 2025-04-14 17:07:55 +02:00
Jens Cornelsen
e55388e4b7 . 2025-04-14 17:06:50 +02:00
Jens Cornelsen
f14c376791 Pfad gefixr 2025-04-14 16:54:20 +02:00
Jens Cornelsen
071fd8c7be Höhe full 2025-04-14 16:51:00 +02:00
Jens Cornelsen
2bb2bd74db Nutzfläche gerundet 2025-04-14 11:41:36 +02:00
Jens Cornelsen
9d9fdebf3a . 2025-04-14 11:29:30 +02:00
Jens Cornelsen
0d9675fb35 . 2025-04-14 11:21:18 +02:00
Jens Cornelsen
7b5b272c17 . 2025-04-14 11:00:02 +02:00
Jens Cornelsen
a7427c3462 . 2025-04-14 10:45:58 +02:00
Jens Cornelsen
2b8ebcf182 . 2025-04-14 10:41:31 +02:00
Jens Cornelsen
eb72b600b4 . 2025-04-14 10:38:10 +02:00
Jens Cornelsen
606b851661 . 2025-04-14 10:26:23 +02:00
Jens Cornelsen
15f94c7752 Kühlungszuschlag bei Kühlung vorhanden 2025-04-14 10:21:18 +02:00
Jens Cornelsen
04dbd4adcd . 2025-04-14 00:50:08 +02:00
Jens Cornelsen
853fe54e3b Kundenprüfung Anteil WW 2025-04-14 00:37:16 +02:00
Jens Cornelsen
e2490f2296 . 2025-04-14 00:16:50 +02:00
Jens Cornelsen
cbddcf0968 Anzeige Nutzfläche gefixt 2025-04-14 00:01:42 +02:00
Jens Cornelsen
8b1e5df851 kuehlung fix 2025-04-13 23:07:36 +02:00
Jens Cornelsen
29d8e5e7b3 . 2025-04-13 21:53:59 +02:00
Jens Cornelsen
e86328b0c2 VG . 2025-04-13 20:07:50 +02:00
Jens Cornelsen
b8d37d4e38 bestellt bei BW auf false wenn keine Rechnung und user nicht 2025-04-13 19:55:32 +02:00
Jens Cornelsen
fd93f3fd54 . 2025-04-13 15:48:37 +02:00
Jens Cornelsen
9035de79ce . 2025-04-13 15:42:09 +02:00
Jens Cornelsen
2304de45b1 . 2025-04-13 13:53:22 +02:00
Jens Cornelsen
f1007d325f . 2025-04-13 13:37:29 +02:00
Jens Cornelsen
44679dbef0 . 2025-04-13 13:33:40 +02:00
Jens Cornelsen
682c97b3e7 . 2025-04-13 13:29:30 +02:00
Jens Cornelsen
b65c3eeeaa . 2025-04-13 13:24:27 +02:00
Jens Cornelsen
883c019293 . 2025-04-13 13:22:11 +02:00
Jens Cornelsen
50c2e3a6ce . 2025-04-13 13:14:35 +02:00
Jens Cornelsen
b7082e2318 Korrektur reset 2025-04-13 13:01:20 +02:00
Jens Cornelsen
f30b1cbd09 Besteller hinzugefügt 2025-04-13 11:57:45 +02:00
Jens Cornelsen
8936479c78 . 2025-04-13 02:32:15 +02:00
Jens Cornelsen
f02b30c6b5 . 2025-04-13 02:25:57 +02:00
Jens Cornelsen
fd34f6bcf7 . 2025-04-13 02:08:54 +02:00
Jens Cornelsen
e9eb113c33 . 2025-04-13 01:56:12 +02:00
Jens Cornelsen
1caee4e19e . 2025-04-13 01:22:35 +02:00
Jens Cornelsen
e18188d2a8 . 2025-04-13 01:10:50 +02:00
Jens Cornelsen
682cf056b6 . 2025-04-13 01:02:58 +02:00
Jens Cornelsen
5d11889fb2 Dashboard 2025-04-13 00:57:59 +02:00
Jens Cornelsen
566780b5e2 . 2025-04-13 00:49:12 +02:00
Jens Cornelsen
2d025b9fde . 2025-04-13 00:35:11 +02:00
Jens Cornelsen
64e97b6593 . 2025-04-13 00:23:05 +02:00
Jens Cornelsen
a05daedc54 . 2025-04-13 00:06:49 +02:00
Jens Cornelsen
e5756abb4d . 2025-04-12 23:48:20 +02:00
Jens Cornelsen
bfd30ace70 . 2025-04-12 23:37:27 +02:00
Jens Cornelsen
5858bff825 Dashboard 2025-04-12 23:26:19 +02:00
Jens Cornelsen
99c1a127b4 . 2025-04-12 23:04:09 +02:00
Jens Cornelsen
70af2e2d07 . 2025-04-12 22:35:55 +02:00
Jens Cornelsen
7db145af7c Dashboard 2025-04-12 22:24:11 +02:00
Jens Cornelsen
dfe13dd6bd . 2025-04-12 21:27:03 +02:00
Jens Cornelsen
33596e4b61 . 2025-04-12 21:21:26 +02:00
Jens Cornelsen
ca9c1b025a . 2025-04-12 21:14:22 +02:00
Jens Cornelsen
ca5102cd77 Dashboard 2025-04-12 21:01:02 +02:00
Jens Cornelsen
cfe160f34d . 2025-04-12 20:34:12 +02:00
Jens Cornelsen
d0a7033bf4 . 2025-04-12 20:29:52 +02:00
Jens Cornelsen
415291b083 . 2025-04-12 20:17:13 +02:00
Jens Cornelsen
4208c3ecc5 . 2025-04-12 20:09:32 +02:00
Jens Cornelsen
76dbe27c5d . 2025-04-12 20:00:59 +02:00
Jens Cornelsen
cfbf1dd69b . 2025-04-12 19:52:18 +02:00
Jens Cornelsen
313b6e328e . 2025-04-12 19:51:01 +02:00
Jens Cornelsen
22532f3783 . 2025-04-12 19:50:13 +02:00
Jens Cornelsen
3ced32b235 . 2025-04-12 19:46:08 +02:00
Jens Cornelsen
300b1d5ea3 . 2025-04-12 19:31:19 +02:00
Jens Cornelsen
40df8c7104 Dashboard 2025-04-12 19:22:19 +02:00
Carl Mahnke
83727ac71d Migrationsskripte Verbrauchsausweis Wohnen + Gewerbe 2025-04-12 18:13:40 +02:00
Carl Mahnke
f31d710b20 Migrationsskript Bedarfsausweis Wohnen Ohne Limit 2025-04-12 17:36:31 +02:00
Carl Mahnke
6da7c0e501 Migrationsskript Bedarfsausweis Wohnen Limit 10 2025-04-12 17:27:51 +02:00
Carl Mahnke
f7b6a50482 Migrationsskript Bedarfsausweis Wohnen Test 2025-04-12 17:14:02 +02:00
Carl Mahnke
48f72a2f0f Migrations Skripte 2025-04-12 16:40:21 +02:00
Jens Cornelsen
43d2c114f4 Merge pull request #511 from IBCornelsen/main
update dev
2025-04-12 13:40:34 +02:00
Jens Cornelsen
aa84dd967e . 2025-04-11 21:07:52 +02:00
Jens Cornelsen
c413f76fe2 . 2025-04-11 20:58:52 +02:00
Jens Cornelsen
7762310bf3 . 2025-04-11 20:48:12 +02:00
Jens Cornelsen
7dd3a6c60d . 2025-04-11 20:29:22 +02:00
Jens Cornelsen
80a6992f5b . 2025-04-11 20:03:22 +02:00
Jens Cornelsen
4b651b733b . 2025-04-11 19:37:34 +02:00
Jens Cornelsen
c269306d9d . 2025-04-11 19:31:51 +02:00
Jens Cornelsen
cf0f0bdee0 . 2025-04-11 19:19:22 +02:00
Jens Cornelsen
d4e2d50e00 Skala und Rchnung 2025-04-11 18:58:11 +02:00
Jens Cornelsen
e303c44822 PDF Name auf Energieausweis geändert 2025-04-11 17:33:40 +02:00
Jens Cornelsen
3eb30d2248 Auto stash before rebase of "main" onto "origin/main" 2025-04-11 17:10:52 +02:00
Carl Mahnke
9b6b30ae30 Kuehlung gefixt 2025-04-11 15:06:28 +02:00
Moritz Utcke
9d9e6f7786 Merge branch 'dev' 2025-04-10 00:34:03 -04:00
Moritz Utcke
98f32ca279 Ausstellen 2025-04-10 00:33:54 -04:00
Moritz Utcke
ab7e5bc6d6 Merge branch 'dev' 2025-04-09 22:17:11 -04:00
Moritz Utcke
636c5463b2 Ausstellen 2025-04-09 22:17:00 -04:00
Moritz Utcke
85c0216e9d Merge branch 'dev' 2025-04-09 21:45:33 -04:00
Moritz Utcke
5e2861546f Ausstellen Error 2025-04-09 21:45:04 -04:00
Moritz Utcke
c1fc08ecba Merge branch 'dev' 2025-04-09 21:35:43 -04:00
Moritz Utcke
458a6ab254 Ausstellen 2025-04-09 21:35:24 -04:00
Moritz Utcke
1259f642e1 Merge pull request #508 from IBCornelsen/revert-507-revert-506-dev
Revert "Revert "Bugfixes""
2025-04-09 20:16:35 -04:00
Moritz Utcke
3cb71b8e2c Revert "Revert "Bugfixes"" 2025-04-09 20:13:52 -04:00
Moritz Utcke
eb8bae6d69 Merge pull request #507 from IBCornelsen/revert-506-dev
Revert "Bugfixes"
2025-04-09 19:25:36 -04:00
Moritz Utcke
4f382c150d Revert "Bugfixes" 2025-04-09 19:25:21 -04:00
Moritz Utcke
53ea51885a Merge pull request #506 from IBCornelsen/dev
Bugfixes
2025-04-09 19:11:44 -04:00
Moritz Utcke
f5ae2cd0d4 Mollie 2025-04-09 13:54:39 -04:00
Moritz Utcke
8860750487 Mollie 2025-04-09 13:25:06 -04:00
Moritz Utcke
a58c8d466e Verbrauchsausweis Gewerbe 2025-04-09 13:10:11 -04:00
Moritz Utcke
8daee69576 Bugfixes 2025-04-09 11:46:27 -04:00
Moritz Utcke
7665141a5a Formular Button 2025-04-09 09:18:11 -04:00
Moritz Utcke
7327d39c57 Ausweis ID im Ausweis 2025-04-09 09:06:43 -04:00
Moritz Utcke
9177ca18f0 Merge pull request #505 from IBCornelsen/dev
Updates und Verbesserungen
2025-04-08 19:59:34 -04:00
Moritz Utcke
0956744878 Ausstellen 2025-04-08 19:34:51 -04:00
Moritz Utcke
b0235056a7 Adresse 2025-04-08 18:50:27 -04:00
Moritz Utcke
d354189d3c Ausweis, Ausstellung, Adresse 2025-04-08 18:49:29 -04:00
Moritz Utcke
07760aa26a Bugfix Process not defined 2025-04-08 15:13:17 -04:00
Moritz Utcke
13322836aa Recover DB 2025-04-08 13:53:32 -04:00
Moritz Utcke
d8acd0476a Actions 2025-04-08 13:06:42 -04:00
Moritz Utcke
a2e0d50b1f Update .gitignore 2025-04-08 10:23:14 -04:00
Moritz Utcke
176f1c08ad Klimafaktoren 2025-04-07 23:55:42 -04:00
Moritz Utcke
1970a105a9 Webhook 2025-04-07 21:41:27 -04:00
Moritz Utcke
71438a39eb Ausstellen 2025-04-07 21:31:47 -04:00
Moritz Utcke
ba7792a4b9 Ausstellen 2025-04-07 21:27:38 -04:00
Moritz Utcke
145bf46ee1 Partner Code 2025-04-07 20:36:47 -04:00
Moritz Utcke
ecdce5b279 Suche 2025-04-07 18:46:28 -04:00
Moritz Utcke
c0d4ede483 Daten Umziehen 2025-04-07 18:45:33 -04:00
Moritz Utcke
3fa207ea9c Merge remote-tracking branch 'origin/main' 2025-04-07 18:38:21 -04:00
Moritz Utcke
2a302a4b59 astro-typesafe-api-caller entfernt 2025-04-07 18:37:39 -04:00
Moritz Utcke
42e0907bb9 Merge pull request #504 from IBCornelsen/Jens
Preise Bedarfsausweis
2025-04-07 18:37:30 -04:00
Moritz Utcke
a20aa88096 Merge branch 'main' into Jens 2025-04-07 18:37:23 -04:00
Jens Cornelsen
aef820f448 WIP on main 2025-04-08 00:33:17 +02:00
Moritz Utcke
f487b25aa1 UUID Match 2025-04-07 18:29:30 -04:00
Moritz Utcke
babd929f6a Passwort Zurücksetzen 2025-04-07 18:12:51 -04:00
Moritz Utcke
1d27e2bd67 DB Schema 2025-04-07 16:12:02 -04:00
Moritz Utcke
2abb143cfe Datenbank und ID Generierung 2025-04-07 15:33:30 -04:00
Jens Cornelsen
5289273fc2 Popup 2025-04-07 11:06:17 +02:00
Moritz Utcke
32d8e2383e ID Verbrauchsausweis 2025-04-07 04:27:12 -04:00
Moritz Utcke
f9538e770a Abweichung 2025-04-07 04:19:35 -04:00
Moritz Utcke
05b2711f7f Merge remote-tracking branch 'origin/main' 2025-04-07 04:12:36 -04:00
Moritz Utcke
703f06c7a7 Kundendaten Box 2025-04-07 04:12:22 -04:00
Moritz Utcke
6d8dcb1b0e Live 2025-04-07 03:16:04 -04:00
Jens Cornelsen
1e883866ed Merge pull request #502 from IBCornelsen/Jens
Merge pull request #501 from IBCornelsen/main
2025-04-07 09:04:56 +02:00
Moritz Utcke
17f2983c3a Merge pull request #501 from IBCornelsen/main
get main
2025-04-07 04:02:58 -03:00
Moritz Utcke
607dfed53f Merge branch 'Jens' into main 2025-04-07 04:02:51 -03:00
Moritz Utcke
0f20fc1184 Rechnung Import 2025-04-07 02:56:28 -04:00
Jens Cornelsen
a8202ff10d Produktübersichten final 2025-04-07 08:53:49 +02:00
Moritz Utcke
e06c8273e8 Datenbank und Ausweise 2025-04-07 02:14:26 -04:00
Jens Cornelsen
63fda2ce72 Merge pull request #500 from IBCornelsen/main
get main
2025-04-07 07:20:08 +02:00
Moritz Utcke
7d3b0396c7 Merge remote-tracking branch 'origin/main' 2025-04-07 00:47:53 -04:00
Moritz Utcke
21c47a5310 Bedarfsausweis Wohnen 2025-04-07 00:47:31 -04:00
Jens Cornelsen
2086ac3d9c Merge pull request #499 from IBCornelsen/Jens
Preise hinzugefügt
2025-04-07 06:46:47 +02:00
Jens Cornelsen
c3ffc0446a Merge pull request #498 from IBCornelsen/main
get main
2025-04-07 06:40:09 +02:00
Jens Cornelsen
33411d8473 . 2025-04-07 06:39:07 +02:00
Jens Cornelsen
528d4a33eb Preise XL angepasst 2025-04-07 06:34:00 +02:00
Moritz Utcke
1332b8e798 Merge remote-tracking branch 'origin/main' 2025-04-06 23:22:02 -04:00
Moritz Utcke
f1bb2fc55c Datenbank und Checkliste 2025-04-06 23:21:55 -04:00
Jens Cornelsen
ef7e0a1df9 Merge pull request #497 from IBCornelsen/Jens
.
2025-04-07 04:14:16 +02:00
Jens Cornelsen
e8083462e2 Merge pull request #496 from IBCornelsen/main
get main
2025-04-07 04:11:57 +02:00
Jens Cornelsen
86f8a9fba7 Ohne Makler 2025-04-07 04:05:00 +02:00
Moritz Utcke
b7f9649036 Datenbank Popup 2025-04-06 18:54:46 -04:00
Jens Cornelsen
3acf581775 Merge pull request #495 from IBCornelsen/Jens
Info Popup
2025-04-07 00:33:31 +02:00
Jens Cornelsen
18227c7beb Merge pull request #494 from IBCornelsen/main
.
2025-04-07 00:31:23 +02:00
Jens Cornelsen
0811e2dd16 . 2025-04-07 00:25:51 +02:00
Jens Cornelsen
f305d2f6eb . 2025-04-07 00:14:29 +02:00
Jens Cornelsen
c2ea0bcd37 Info Popup 2025-04-07 00:07:58 +02:00
Moritz Utcke
6b0b88e9ac Fix 2025-04-06 15:56:21 -04:00
Moritz Utcke
221e94a8d7 Auto stash before merge of "main" and "origin/main" 2025-04-06 15:54:51 -04:00
Jens Cornelsen
371b8422ce Merge pull request #493 from IBCornelsen/Jens
PDF Icons und Bestätigungsbox Kunden
2025-04-06 21:24:40 +02:00
Jens Cornelsen
4b43aa3e8f Auto stash before rebase of "Jens" onto "origin/Jens" 2025-04-06 21:21:45 +02:00
Jens Cornelsen
d72a93fbff Merge pull request #492 from IBCornelsen/main
get main
2025-04-06 21:09:44 +02:00
Moritz Utcke
ba51f36a8e GEG 2025-04-06 14:45:33 -04:00
Moritz Utcke
1fa3faff52 Bezeichnung 2025-04-06 14:00:29 -04:00
Moritz Utcke
820da9a235 Kreuz icon 2025-04-06 13:55:57 -04:00
Moritz Utcke
91485aa009 Ausweistyp mitgeben 2025-04-06 13:52:55 -04:00
Moritz Utcke
c8c6238583 Speichern, laden, bearbeiten 2025-04-06 13:50:45 -04:00
Moritz Utcke
624fd3c045 Bedarfsausweis Gewerbe 2025-04-06 13:27:08 -04:00
Moritz Utcke
7b0fdbf5f8 Bugfixes 2025-04-06 12:57:20 -04:00
Jens Cornelsen
1f4e2eb4ce Merge pull request #491 from IBCornelsen/main
get main
2025-04-06 18:31:20 +02:00
Moritz Utcke
0b89320007 Speichern verbessert 2025-04-06 10:42:36 -04:00
Moritz Utcke
074ee8b463 Bugfixes 2025-04-05 22:35:08 -03:00
Jens Cornelsen
55ff99a4ca Merge pull request #490 from IBCornelsen/main
get main
2025-04-06 00:42:28 +02:00
Jens Cornelsen
009e1a8cad Bestätigungsbox vor Bestellung 2025-04-06 00:35:52 +02:00
Moritz Utcke
6c108f0455 Merge remote-tracking branch 'origin/main' 2025-04-05 13:07:50 -03:00
Moritz Utcke
09cd167a70 Unterlagen und weitere Fehler 2025-04-05 13:06:50 -03:00
Jens Cornelsen
4239bc7917 Merge pull request #489 from IBCornelsen/Jens
Impressum. Datenschutz und AGB hinzugefügt
2025-04-05 15:43:35 +02:00
Jens Cornelsen
77665af171 Impressum. Datenschutz und AGB hinzugefügt 2025-04-05 15:38:37 +02:00
Jens Cornelsen
2a51b96b24 Merge pull request #488 from IBCornelsen/Jens
Profil Platzhalter
2025-04-05 14:12:22 +02:00
Jens Cornelsen
559dfe38e6 Profil Platzhalter 2025-04-05 14:10:03 +02:00
Jens Cornelsen
2dadfebccf Merge pull request #487 from IBCornelsen/Jens
Dashboard angepasst
2025-04-05 13:30:27 +02:00
Jens Cornelsen
0bc4fd6670 Dashboard angepasst 2025-04-05 13:27:05 +02:00
Jens Cornelsen
516e854616 Merge pull request #486 from IBCornelsen/Jens
Text Partner
2025-04-04 12:31:27 +02:00
Jens Cornelsen
912970923f Text Partner 2025-04-04 12:28:28 +02:00
Jens Cornelsen
4e5ee5174f Merge pull request #485 from IBCornelsen/main
get main
2025-04-04 11:21:30 +02:00
Jens Cornelsen
51e9a5c97c . 2025-04-04 09:26:36 +02:00
Jens Cornelsen
09c4f5b06e . 2025-04-04 09:23:03 +02:00
Jens Cornelsen
aff26d7e16 Abstand zum Footer 2025-04-04 09:19:15 +02:00
Jens Cornelsen
49920caecc Merge pull request #484 from IBCornelsen/main
get main
2025-04-04 09:07:30 +02:00
UMBENOMENA
5f9c010d09 Merge pull request #483 from IBCornelsen/UMBE
.
2025-04-03 22:44:40 +02:00
Robert Jagtiani
edce3ca5a3 . 2025-04-03 22:44:05 +02:00
UMBENOMENA
d0c4b32a2c Merge pull request #482 from IBCornelsen/UMBE
.
2025-04-03 22:35:27 +02:00
Robert Jagtiani
3acd5c5170 . 2025-04-03 22:29:46 +02:00
UMBENOMENA
79e8c9e19a Merge pull request #481 from IBCornelsen/UMBE
.
2025-04-03 21:55:20 +02:00
Robert Jagtiani
cc2a92a2a5 . 2025-04-03 21:51:10 +02:00
UMBENOMENA
f0e1126dbb Merge pull request #480 from IBCornelsen/UMBE
.
2025-04-03 21:34:06 +02:00
Robert Jagtiani
8804346424 . 2025-04-03 21:33:09 +02:00
Robert Jagtiani
a194e8a17e . 2025-04-03 21:09:22 +02:00
UMBENOMENA
f0dbb2a1af Merge pull request #479 from IBCornelsen/UMBE
.
2025-04-03 15:16:03 +02:00
Robert Jagtiani
6fb22d2ee0 . 2025-04-03 15:15:36 +02:00
Robert Jagtiani
78523171e9 Auto stash before checking out "origin/main"
.
2025-04-02 18:48:52 +02:00
Robert Jagtiani
cfdfef039e fonts 2025-04-02 16:01:01 +02:00
Robert Jagtiani
fecbf8948b . 2025-04-02 15:06:43 +02:00
Robert Jagtiani
40d33532c8 . 2025-04-02 14:45:19 +02:00
UMBENOMENA
69d40eb52b Merge pull request #472 from IBCornelsen/main
getMain
2025-04-02 14:41:38 +02:00
UMBENOMENA
4c79e8cb67 Merge pull request #471 from IBCornelsen/UMBE
.
2025-04-02 14:38:13 +02:00
UMBENOMENA
3fa4ede71f Merge branch 'main' into UMBE 2025-04-02 14:37:42 +02:00
Robert Jagtiani
15b818acdb . 2025-04-02 14:33:36 +02:00
Jens Cornelsen
fa4c4d16d0 Merge pull request #470 from IBCornelsen/main
get main
2025-04-02 12:02:52 +02:00
Moritz Utcke
5997037328 Mime 2025-04-01 14:55:32 -03:00
Moritz Utcke
29c63a585d Success 2025-04-01 14:13:13 -03:00
Moritz Utcke
71f5093a49 Tests 2025-04-01 13:49:47 -03:00
Moritz Utcke
be94bd482c Datenblatt und Verbrauchsausweis verbessert 2025-04-01 09:43:43 -03:00
Moritz Utcke
14e1d89024 Bilder fix Datenblatt 2025-04-01 09:35:15 -03:00
Moritz Utcke
c8b41458e1 Felder angepasst und Tests 2025-03-30 20:18:30 -03:00
Moritz Utcke
e2e576e4fe Auto stash before merge of "main" and "origin/main" 2025-03-30 17:05:32 -03:00
Jens Cornelsen
2f35b8c403 Merge pull request #469 from IBCornelsen/Jens
18599 Berechnungsfunktionen überarbeitet
2025-03-30 17:59:56 +02:00
Jens Cornelsen
5ea258705c 18599 Berechnungsfunktionen überarbeitet 2025-03-30 17:54:38 +02:00
Jens Cornelsen
f4dbe590df Merge pull request #468 from IBCornelsen/Jens
.
2025-03-29 14:01:50 +01:00
Jens Cornelsen
f4bbc979f9 . 2025-03-29 13:59:57 +01:00
Jens Cornelsen
8175b97073 Merge pull request #467 from IBCornelsen/Jens
Produktübersichten
2025-03-29 13:30:47 +01:00
Jens Cornelsen
085cf9783b Produktübersichten
Links der Produktarten in den Produktübersichten für Verbrauchsausweis Gewerbe, arfsausweis Wohnen, und Bedarfsausweis Gewerbe hinzugefügt
2025-03-29 13:28:01 +01:00
Jens Cornelsen
f80b04ee77 Merge pull request #466 from IBCornelsen/main
get Main
2025-03-29 12:07:12 +01:00
UMBENOMENA
e1a83aed77 Merge pull request #465 from IBCornelsen/main
getMain
2025-03-26 15:33:20 +01:00
Moritz Utcke
9acf9e1e50 Tests 2025-03-25 22:42:28 -03:00
Moritz Utcke
75ade8ebaa Verbesserungen im Prozess 2025-03-25 19:15:16 -03:00
Moritz Utcke
0117f94c07 ID 2025-03-25 14:37:33 -03:00
Moritz Utcke
00772317e7 ID statt UID 2025-03-25 14:34:19 -03:00
Moritz Utcke
efc1e8329a Backend URL 2025-03-25 14:13:33 -03:00
Moritz Utcke
fc9fca0ee6 backend URL 2025-03-25 14:04:41 -03:00
Moritz Utcke
5d66eb10ca Highlight und neue ID 2025-03-25 14:01:13 -03:00
Moritz Utcke
84a3a2dd39 Ausweistyp 2025-03-24 16:39:39 -03:00
Moritz Utcke
a9c2b5c173 Ausweistyp Kundendaten 2025-03-24 16:15:10 -03:00
Jens Cornelsen
1678ac64b8 Merge pull request #464 from IBCornelsen/main
get main
2025-03-24 10:12:55 +01:00
Moritz Utcke
83b618b59d ID Suchen 2025-03-23 19:21:14 -03:00
Moritz Utcke
302ae192ac ID auf Datenblatt 2025-03-23 19:07:57 -03:00
Moritz Utcke
3af32c0153 Preise anpassen 2025-03-23 17:38:07 -03:00
Moritz Utcke
9f64f8a3c2 Ausweistyp 2025-03-23 16:25:40 -03:00
Moritz Utcke
048c1fc4d4 Progressbar 2025-03-23 16:25:09 -03:00
Moritz Utcke
6f00b66013 Workflow 2025-03-23 14:51:39 -03:00
Moritz Utcke
d42209c3a0 Workflow 2025-03-23 14:42:05 -03:00
UMBENOMENA
7ce6e1d7a0 Merge pull request #463 from IBCornelsen/UMBE
.
2025-03-21 13:01:35 +01:00
Robert Jagtiani
666b94bfad . 2025-03-21 13:01:10 +01:00
UMBENOMENA
a597947e80 Merge pull request #462 from IBCornelsen/UMBE
Ausweise, kleine Änderungen TRELLO
2025-03-20 19:02:39 +01:00
Robert Jagtiani
51a8cc576b Ausweise, kleine Änderungen TRELLO 2025-03-20 18:59:56 +01:00
UMBENOMENA
9901688668 Merge pull request #461 from IBCornelsen/main
getMain
2025-03-20 17:05:05 +01:00
Moritz Utcke
c39efcdbf0 Github 2025-03-20 11:12:33 -03:00
Moritz Utcke
01cd027e09 Github 2025-03-20 11:10:17 -03:00
Moritz Utcke
e3f7214af2 Github 2025-03-20 11:06:41 -03:00
Moritz Utcke
f77a013767 Nothing 2025-03-20 11:03:38 -03:00
Moritz Utcke
8b3e6b80c4 Bedarfsausweis Wohnen 2025-03-20 09:12:37 -03:00
Moritz Utcke
9706a839d6 Kundendaten 2025-03-19 23:39:48 -03:00
Moritz Utcke
d38bd8a6ad Makefile don't destroy database 2025-03-19 21:27:01 -03:00
Moritz Utcke
9e7f1da680 Makefile 2025-03-19 21:06:59 -03:00
Moritz Utcke
499cbfb47d Merge remote-tracking branch 'origin/main' 2025-03-19 21:06:44 -03:00
Moritz Utcke
7c7e76ca82 Makefile 2025-03-19 21:06:35 -03:00
Moritz Utcke
a57c97f59d Makefile 2025-03-19 21:04:58 -03:00
Moritz Utcke
91872ee3d3 client:only 2025-03-19 20:56:57 -03:00
Moritz Utcke
5cf9892da0 ID 2025-03-19 20:46:11 -03:00
Moritz Utcke
2db7508859 Filtern nach ID 2025-03-19 20:43:47 -03:00
Moritz Utcke
06eb1dff34 Alte Ausweis ID 2025-03-19 18:54:22 -03:00
Moritz Utcke
bba1fc0b47 Admin Tools 2025-03-19 18:39:41 -03:00
Moritz Utcke
113f40ebb1 int id 2025-03-19 13:17:48 -03:00
Moritz Utcke
147b1ff44f Alte Ausweis Id 2025-03-19 13:15:40 -03:00
Moritz Utcke
dee9afcda4 Straße in Imports 2025-03-19 13:07:02 -03:00
Moritz Utcke
bf5cc87510 Makefile 2025-03-19 13:02:23 -03:00
Moritz Utcke
fb6b88c499 Merge branch 'main' of https://github.com/IBCornelsen/online-energieausweis into main 2025-03-19 16:01:20 +00:00
Moritz Utcke
b1d5cde032 Klimafaktoren 2025-03-19 16:00:59 +00:00
Moritz Utcke
cb7b1f0c41 Klimafaktoren gefixt 2025-03-19 12:59:46 -03:00
Moritz Utcke
6c0ab35f91 Studio in Prod 2025-03-19 12:42:41 -03:00
Moritz Utcke
219ffc7fbb Klimfaktoren 2025-03-19 12:31:37 -03:00
Moritz Utcke
973fd76d1a Bildupload fix 2025-03-19 12:21:06 -03:00
Moritz Utcke
915898c26f Bilder speichern nach ausweis gespeichert fix 2025-03-19 11:30:09 -03:00
Moritz Utcke
8277eb100c PDF Datenblatt Bilder 2025-03-19 11:20:37 -03:00
Moritz Utcke
aea651c7f7 S3 Fix 2025-03-19 11:12:53 -03:00
Moritz Utcke
959fcd7f3b Resolve build error 2025-03-19 10:44:04 -03:00
Moritz Utcke
8d73143932 S3 Object Storage 2025-03-18 18:25:24 -03:00
Moritz Utcke
e01de6f03e Dashboard 2025-03-17 21:17:06 -03:00
Moritz Utcke
27027c0f0e Merge remote-tracking branch 'origin/main' 2025-03-17 20:43:49 -03:00
Moritz Utcke
90522e1f81 Mal schauen 2025-03-17 20:43:44 -03:00
Jens Cornelsen
7ef726c7c2 Merge pull request #460 from IBCornelsen/Jens
.
2025-03-17 03:09:59 +01:00
Jens Cornelsen
ba459c2ef4 . 2025-03-17 03:05:06 +01:00
Jens Cornelsen
89256c8ab1 Merge pull request #459 from IBCornelsen/Jens
Bestätigungstext angepasst
2025-03-17 02:53:03 +01:00
Jens Cornelsen
34af0d655f Mail 2025-03-17 02:43:07 +01:00
Jens Cornelsen
1c282c0d9a Merge remote-tracking branch 'origin/main' into Jens 2025-03-17 02:39:37 +01:00
Jens Cornelsen
34a1f1015b Bestätigungstext angepasst 2025-03-17 02:36:21 +01:00
Moritz Utcke
661a75ee9c Bugfixes 2025-03-16 22:22:34 -03:00
Jens Cornelsen
afd9ef16df Merge pull request #457 from IBCornelsen/main
get main
2025-03-17 02:16:06 +01:00
Jens Cornelsen
48d94b08ad . 2025-03-17 02:14:34 +01:00
Moritz Utcke
310794a049 Ansichtsausweis 2025-03-16 18:01:28 -03:00
Moritz Utcke
cd7fce3b1b Fehler gefixt 2025-03-16 17:59:15 -03:00
Moritz Utcke
d47651b5a1 Verbrauchsausweis Gewerbe 2025-03-15 20:52:43 -03:00
Moritz Utcke
8e9dfc5153 Admin formular aufrufen 2025-03-15 20:51:37 -03:00
Moritz Utcke
de94e1ba6d Ausweis gespeichert 2025-03-15 20:05:48 -03:00
Jens Cornelsen
5b6c0c7d97 Merge pull request #456 from IBCornelsen/Jens
E-Mail Text Registrierung  und Speicherung
2025-03-15 22:29:38 +01:00
Jens Cornelsen
d9dfa18e28 E-Mail Text Registrierung und Speicherung 2025-03-15 22:27:06 +01:00
Jens Cornelsen
c66d7dd260 Merge pull request #455 from IBCornelsen/Jens
.
2025-03-15 21:55:31 +01:00
Jens Cornelsen
215640f57a . 2025-03-15 21:52:11 +01:00
Jens Cornelsen
539e7a6b36 . 2025-03-15 21:44:06 +01:00
Jens Cornelsen
5a1c02e6f5 Merge pull request #454 from IBCornelsen/Jens
.
2025-03-15 21:39:31 +01:00
Jens Cornelsen
45da8032de . 2025-03-15 21:36:40 +01:00
Jens Cornelsen
8703b3b633 Merge pull request #453 from IBCornelsen/Jens
Button bearbeiten bei Beratung und Offline hinzugefügt
2025-03-15 21:19:10 +01:00
Jens Cornelsen
69298f2c71 Button bearbeiten bei Beratung und Offline hinzugefügt 2025-03-15 21:16:56 +01:00
Jens Cornelsen
ab5f9d71d3 Merge pull request #452 from IBCornelsen/Jens
E-Mail Text Buttons dashboard
2025-03-15 21:05:48 +01:00
Jens Cornelsen
1cbb01c8e7 E-Mail Text Buttons dashboard 2025-03-15 20:57:24 +01:00
UMBENOMENA
2d3db305db Merge pull request #451 from IBCornelsen/main
getMain
2025-03-15 16:35:00 +01:00
Jens Cornelsen
50b53e8bba Merge pull request #450 from IBCornelsen/Jens
.
2025-03-14 01:28:38 +01:00
Jens Cornelsen
65ccda0ac0 . 2025-03-14 01:26:49 +01:00
Jens Cornelsen
c25928cd18 Merge pull request #449 from IBCornelsen/Jens
.
2025-03-14 00:52:44 +01:00
Jens Cornelsen
6a0ffe25f2 . 2025-03-14 00:50:07 +01:00
Jens Cornelsen
850b0bfff8 Merge pull request #448 from IBCornelsen/Jens
.
2025-03-14 00:31:16 +01:00
Jens Cornelsen
a4f1e10f0e . 2025-03-14 00:29:34 +01:00
Jens Cornelsen
6bcad2fecc Merge pull request #447 from IBCornelsen/Jens
.
2025-03-14 00:17:59 +01:00
Jens Cornelsen
93f22bfe5d . 2025-03-14 00:15:29 +01:00
Jens Cornelsen
3f2d62e125 Merge pull request #446 from IBCornelsen/Jens
Email
2025-03-14 00:04:58 +01:00
Jens Cornelsen
f85a61dcff Email 2025-03-14 00:02:13 +01:00
Jens Cornelsen
5388b4eb91 Merge pull request #445 from IBCornelsen/Jens
E-Mail Text
2025-03-13 22:50:35 +01:00
Jens Cornelsen
02f70e84fc Merge pull request #444 from IBCornelsen/main
get main
2025-03-13 22:46:52 +01:00
Jens Cornelsen
e0faf0bced . 2025-03-13 22:40:00 +01:00
Moritz Utcke
3a66e21ebd Merge remote-tracking branch 'origin/main' 2025-03-13 18:37:40 -03:00
Moritz Utcke
4ecbeab1da Verbrauchsausweis Wohnen Email 2025-03-13 18:37:27 -03:00
Jens Cornelsen
9c34ac833c Merge pull request #443 from IBCornelsen/Jens
Korrektur E-Mail Text
2025-03-13 22:26:22 +01:00
Jens Cornelsen
fc3f4b0e3e Korrektur E-Mail Text 2025-03-13 22:23:05 +01:00
Jens Cornelsen
64978b7e65 Merge pull request #442 from IBCornelsen/main
get main
2025-03-13 22:08:50 +01:00
Moritz Utcke
4378f25642 GEG Nachweis Wohnen Test 2025-03-13 17:23:54 -03:00
Moritz Utcke
9ad163a469 Dashboard Ausweistyp 2025-03-13 17:19:13 -03:00
Moritz Utcke
2a47b8f482 Email Betreff 2025-03-13 17:12:45 -03:00
Jens Cornelsen
5084346b28 Merge pull request #441 from IBCornelsen/main
get main
2025-03-13 17:08:06 +01:00
Moritz Utcke
2391629b36 ID ohne strich 2025-03-12 19:56:01 -03:00
Moritz Utcke
8964c9f533 Redirect 2025-03-12 18:20:23 -03:00
Moritz Utcke
2000e8b80e Merge remote-tracking branch 'origin/main' 2025-03-12 18:14:19 -03:00
Moritz Utcke
00015b30cd Bedarfsausweis gewerbe 2025-03-12 18:14:13 -03:00
Jens Cornelsen
b4af4ad667 Merge pull request #440 from IBCornelsen/Jens
.
2025-03-12 21:20:57 +01:00
Jens Cornelsen
6b255232c6 . 2025-03-12 21:18:34 +01:00
Jens Cornelsen
54b9ff8ce5 Merge pull request #439 from IBCornelsen/Jens
Merge pull request #438 from IBCornelsen/main
2025-03-12 21:10:26 +01:00
Jens Cornelsen
b7f4f9e8a4 Merge pull request #438 from IBCornelsen/main
get  main
2025-03-12 21:04:21 +01:00
Jens Cornelsen
f4647ebd53 Merge branch 'Jens' into main 2025-03-12 21:04:03 +01:00
Jens Cornelsen
ed4f5fdf37 E-Mail Text geg-anfordern 2025-03-12 20:58:23 +01:00
Moritz Utcke
5f5cdc5728 Merge remote-tracking branch 'origin/main' 2025-03-12 16:21:46 -03:00
Moritz Utcke
0b93b2d230 GEG Nachweis Gewerbe 2025-03-12 16:21:27 -03:00
UMBENOMENA
7f213930b1 Merge pull request #437 from IBCornelsen/UMBE
.
2025-03-12 19:36:17 +01:00
Robert Jagtiani
76240ce840 . 2025-03-12 19:34:19 +01:00
UMBENOMENA
011f4b37ba Merge pull request #436 from IBCornelsen/UMBE
.
2025-03-12 19:27:46 +01:00
Robert Jagtiani
691df89535 . 2025-03-12 19:25:32 +01:00
UMBENOMENA
bbb0fcaa8f Merge pull request #435 from IBCornelsen/UMBE
Verbrauchsausweis Gewerbe & Navigation
2025-03-12 18:32:38 +01:00
Robert Jagtiani
e741af6901 Verbrauchsausweis Gewerbe & Navigation 2025-03-12 18:32:02 +01:00
UMBENOMENA
68dd22e509 Merge pull request #434 from IBCornelsen/main
getMain
2025-03-12 17:45:50 +01:00
Jens Cornelsen
2a1e3568af Merge pull request #433 from IBCornelsen/main
get main
2025-03-12 17:35:23 +01:00
Moritz Utcke
cf68652880 Datenblatt 2025-03-11 19:35:34 -03:00
Moritz Utcke
b1d2a40534 Verbrauchsausweis Gewerbe 2025-03-11 18:54:03 -03:00
Moritz Utcke
c588f69b0c Dashboard Error 2025-03-11 16:42:48 -03:00
Moritz Utcke
8b489a94cc Bugfixes und Bezahlen 2025-03-11 09:15:22 -03:00
Moritz Utcke
9b50053007 Merge remote-tracking branch 'origin/main' 2025-03-10 20:12:02 -03:00
Moritz Utcke
4979a1d112 Fehler gefixt 2025-03-10 20:11:57 -03:00
UMBENOMENA
08a26cbc2d Merge pull request #432 from IBCornelsen/UMBE
widget immowelt
2025-03-10 01:13:08 +01:00
UMBENOMENA
51f6909aaf Merge pull request #431 from IBCornelsen/main
getMain
2025-03-10 01:11:41 +01:00
Robert Jagtiani
deb73f0e3c widget immowelt 2025-03-10 01:10:02 +01:00
Jens Cornelsen
c93a78066c Merge pull request #430 from IBCornelsen/main
get main
2025-03-09 21:37:55 +01:00
Moritz Utcke
e69362536e GEG Nachweis und Gebäudeliste 2025-03-09 07:35:59 -03:00
Moritz Utcke
a1e5945d73 Verbesserungen 2025-03-09 06:34:01 -03:00
Moritz Utcke
c3c7fd313f Verbrauchsausweis Gewerbe 2025-03-08 14:46:16 -03:00
Moritz Utcke
c4de916057 Email ID 2025-03-07 16:24:24 -03:00
Moritz Utcke
096f325292 Kundendaten Header 2025-03-07 15:49:05 -03:00
Moritz Utcke
0333f9315a PDF 2025-03-07 15:32:25 -03:00
Moritz Utcke
a5894a3285 Bilder 2025-03-07 14:58:59 -03:00
Moritz Utcke
d0e0f4aa27 Speichern 2025-03-07 14:47:09 -03:00
Jens Cornelsen
f174cf8428 Merge pull request #429 from IBCornelsen/Jens
Roten Rand entfernt
2025-03-07 15:50:11 +01:00
Jens Cornelsen
fc35f35f5f Roten Rand entfernt 2025-03-07 15:49:20 +01:00
Jens Cornelsen
ad53e45c15 Merge pull request #428 from IBCornelsen/Jens
Plausibilitätsprüfungen - Text angepasst
2025-03-07 15:43:34 +01:00
Jens Cornelsen
7b3166ad3a Merge pull request #427 from IBCornelsen/main
get main
2025-03-07 15:38:42 +01:00
Jens Cornelsen
0e07d9784e Plausibilitätsprüfungen - Text angepasst 2025-03-07 15:37:24 +01:00
UMBENOMENA
a1b6681eeb Merge pull request #426 from IBCornelsen/UMBE
.
2025-03-07 15:14:56 +01:00
Robert Jagtiani
ba96a54d2e . 2025-03-07 15:12:46 +01:00
UMBENOMENA
aa429d0a0d Merge pull request #425 from IBCornelsen/UMBE
.
2025-03-07 14:54:12 +01:00
Robert Jagtiani
a10c46d8cb . 2025-03-07 14:53:41 +01:00
UMBENOMENA
4a59c69f68 Merge pull request #424 from IBCornelsen/main
getMain
2025-03-07 14:35:05 +01:00
Moritz Utcke
d1ab64780b Rote Boxen und Email 2025-03-06 20:19:08 -03:00
Moritz Utcke
534b26080d Logout 2025-03-06 16:22:38 -03:00
Moritz Utcke
1c0a391c16 Logout 2025-03-06 15:49:10 -03:00
Jens Cornelsen
142a1e2988 Merge pull request #423 from IBCornelsen/main
get main
2025-03-06 18:45:54 +01:00
Jens Cornelsen
6214d2dd02 T63 - T65 fertiggestellt 2025-03-06 18:35:31 +01:00
Moritz Utcke
8b3c4b3b76 Speichern 2025-03-05 22:32:27 -03:00
Moritz Utcke
e867a74478 Kundendaten werden lokal gespeichert 2025-03-05 22:25:00 -03:00
Moritz Utcke
9b61b66890 Hilfe bestellen 2025-03-05 21:35:48 -03:00
Moritz Utcke
25da5c9bb0 Felder Prüfung 2025-03-05 21:33:16 -03:00
Moritz Utcke
9b33755cdd Updats 2025-03-05 13:11:39 -03:00
Jens Cornelsen
d7f57a4d04 Merge pull request #422 from IBCornelsen/Jens
T49, T52, T53, T54, T55, T56, T58, T59, T60, T61, T62, T63, T64 und T65 fertiggestellt
2025-03-02 23:13:47 +01:00
Jens Cornelsen
daf3307e2a T49, T52, T53, T54, T55, T56, T58, T59, T60, T61, T62, T63, T64 und T65 fertiggestellt 2025-03-02 23:09:58 +01:00
Jens Cornelsen
3becee4b4f Merge pull request #421 from IBCornelsen/Jens
Überarbeitung Produktübersichten
2025-02-27 19:43:55 +01:00
Jens Cornelsen
512dd0ecdf Überarbeitung Produktübersichten 2025-02-27 19:41:33 +01:00
Jens Cornelsen
b466794e16 Merge pull request #420 from IBCornelsen/main
get main
2025-02-27 19:12:02 +01:00
Jens Cornelsen
eed6d9b3bd Merge pull request #419 from IBCornelsen/Jens
.
2025-02-27 19:10:13 +01:00
Jens Cornelsen
6576609166 . 2025-02-27 19:07:49 +01:00
UMBENOMENA
15b5ff8ac4 Merge pull request #418 from IBCornelsen/UMBE
Bedarfsausweis Wohnen
2025-02-27 00:39:24 +01:00
Robert Jagtiani
14ac72f8d2 Bedarfsausweis Wohnen 2025-02-27 00:39:05 +01:00
UMBENOMENA
76b7ccf5ec Merge pull request #417 from IBCornelsen/UMBE
.
2025-02-27 00:19:04 +01:00
Robert Jagtiani
38079d6df4 . 2025-02-27 00:17:36 +01:00
UMBENOMENA
5d6962b283 Merge pull request #416 from IBCornelsen/UMBE
produktübersichten angepasst(trello)
2025-02-27 00:14:41 +01:00
Robert Jagtiani
a860b133c9 produktübersichten angepasst(trello) 2025-02-27 00:14:13 +01:00
UMBENOMENA
4bf250734a Merge pull request #415 from IBCornelsen/UMBE
Bedarfsausweis Wohnen
2025-02-27 00:13:25 +01:00
Robert Jagtiani
af26efe23a Bedarfsausweis Wohnen 2025-02-26 23:55:26 +01:00
Jens Cornelsen
5f35cf6f96 Merge pull request #414 from IBCornelsen/Jens
T47, T48, T49, T50 und T51 fertiggestellt
2025-02-26 23:24:07 +01:00
Jens Cornelsen
aea0732c42 T47, T48, T49, T50 und T51 fertiggestellt 2025-02-26 23:21:22 +01:00
UMBENOMENA
49b090ea52 Merge pull request #413 from IBCornelsen/main
getMain
2025-02-26 21:58:04 +01:00
Jens Cornelsen
7c987f6581 Merge pull request #412 from IBCornelsen/Jens
T45, 46 und 47 hinzugefügt
2025-02-26 16:13:52 +01:00
Jens Cornelsen
1b96822f0b Merge pull request #411 from IBCornelsen/main
get main
2025-02-26 16:08:54 +01:00
Jens Cornelsen
476ce29c57 T45, 46 und 47 hinzugefügt 2025-02-26 16:04:40 +01:00
UMBENOMENA
d0c693a0fe Merge pull request #410 from IBCornelsen/UMBE
Navigation Korrektur
2025-02-26 00:16:16 +01:00
Robert Jagtiani
096000d001 navigation Korrektur 2025-02-26 00:15:44 +01:00
UMBENOMENA
12a85136b3 Merge pull request #409 from IBCornelsen/main
getMain
2025-02-25 23:47:35 +01:00
UMBENOMENA
567ad2cc12 Merge pull request #408 from IBCornelsen/UMBE
.
2025-02-25 23:09:15 +01:00
Robert Jagtiani
0d4736f1f0 . 2025-02-25 23:07:20 +01:00
Jens Cornelsen
59e08e66fb Merge pull request #407 from IBCornelsen/Jens
Navigation verändert
2025-02-25 23:05:58 +01:00
Jens Cornelsen
3606fbd856 Navigation verändert 2025-02-25 22:23:39 +01:00
Jens Cornelsen
e3b1490493 Merge pull request #406 from IBCornelsen/Jens
Links angepasst, Produktbeschreibung überarbeitet
2025-02-25 15:07:37 +01:00
Jens Cornelsen
5d2a3b4c30 Links angepasst, Produktbeschreibung überarbeitet 2025-02-25 15:05:20 +01:00
Jens Cornelsen
41f8f9903e Merge pull request #405 from IBCornelsen/main
get main
2025-02-25 12:37:02 +01:00
UMBENOMENA
83690789ac Merge pull request #404 from IBCornelsen/UMBE
immowelt
2025-02-24 21:37:25 +01:00
Robert Jagtiani
bdc4f7bf0a immowelt 2025-02-24 21:36:58 +01:00
UMBENOMENA
6178dcd229 Merge pull request #403 from IBCornelsen/UMBE
immowelt
2025-02-24 20:07:39 +01:00
Robert Jagtiani
e9c4e3d0c3 immowelt 2025-02-24 20:03:38 +01:00
Jens Cornelsen
1852c1071b Merge pull request #402 from IBCornelsen/Jens
Nutzfläche im Ausweis PDF gefixt, Berechnung gefixt
2025-02-24 16:53:21 +01:00
Jens Cornelsen
bc1e84b4d2 Merge pull request #400 from IBCornelsen/main
get main
2025-02-24 16:26:27 +01:00
Jens Cornelsen
d591a8700e Fehler Nutzfläche im PDF korrigiert. Berechnungsfehler korrigiert 2025-02-24 16:23:08 +01:00
UMBENOMENA
8886a37630 Merge pull request #399 from IBCornelsen/UMBE
.
2025-02-24 01:38:01 +01:00
Robert Jagtiani
924d3e8513 . 2025-02-24 01:36:02 +01:00
UMBENOMENA
57a43f64d7 Merge pull request #398 from IBCornelsen/main
getMain
2025-02-24 01:14:33 +01:00
UMBENOMENA
1a9c57546f Merge pull request #395 from IBCornelsen/UMBE
.
2025-02-24 00:48:53 +01:00
Robert Jagtiani
f223373f4f . 2025-02-24 00:48:27 +01:00
Jens Cornelsen
2fac04a148 Merge pull request #397 from IBCornelsen/Jens
Inhaltsseiten, GEG und Links
2025-02-24 00:19:02 +01:00
Jens Cornelsen
f328a8262f Merge pull request #396 from IBCornelsen/main
get main
2025-02-24 00:15:13 +01:00
Jens Cornelsen
253b3d664f Inhalte, GEG und Links 2025-02-24 00:12:42 +01:00
Robert Jagtiani
1c29b57d08 . 2025-02-23 23:46:01 +01:00
UMBENOMENA
ad7abeba05 Merge pull request #394 from IBCornelsen/UMBE
widget
2025-02-23 17:06:52 +01:00
Robert Jagtiani
cc2b9bdbf1 widget 2025-02-23 17:03:46 +01:00
UMBENOMENA
dee753ddba Merge pull request #393 from IBCornelsen/UMBE
widget Korrekturen - firefox,bilder
2025-02-23 15:37:22 +01:00
Robert Jagtiani
af50e6ffad widget Korrekturen - firefox,bilder 2025-02-23 15:35:19 +01:00
UMBENOMENA
e825377ff1 Merge pull request #392 from IBCornelsen/UMBE
verbrauch
2025-02-23 14:11:16 +01:00
Robert Jagtiani
1484f54fe2 verbrauch 2025-02-23 14:09:23 +01:00
Moritz Utcke
80b88df992 Kleinere Fehler gefixt 2025-02-23 22:58:17 +11:00
Moritz Utcke
35db825e6a Auto stash before merge of "main" and "origin/main" 2025-02-23 22:29:22 +11:00
Jens Cornelsen
f4aeff329a Merge pull request #391 from IBCornelsen/main
get main
2025-02-23 10:41:10 +01:00
UMBENOMENA
d7acd67326 Merge pull request #390 from IBCornelsen/UMBE
anfragen, progressbar, firefox usw...
2025-02-23 10:07:09 +01:00
Robert Jagtiani
ee7b1e4471 anfragen, progressbar, firefox usw... 2025-02-23 10:05:14 +01:00
Jens Cornelsen
778d0435f3 Merge pull request #388 from IBCornelsen/Jens
Dashboard
2025-02-23 04:40:17 +01:00
Jens Cornelsen
74a6844981 Merge pull request #387 from IBCornelsen/main
get main
2025-02-23 04:36:32 +01:00
Jens Cornelsen
8f9f79a02d Dashboard 2025-02-23 04:35:02 +01:00
UMBENOMENA
4a81a08157 Merge pull request #386 from IBCornelsen/UMBE
responsive
2025-02-23 01:25:00 +01:00
Robert Jagtiani
1bfa3276d6 responsive 2025-02-23 01:23:08 +01:00
UMBENOMENA
afa97cbae9 Merge pull request #385 from IBCornelsen/main
getMain
2025-02-22 21:11:44 +01:00
Jens Cornelsen
85ba433452 Merge pull request #384 from IBCornelsen/Jens
.
2025-02-22 19:43:24 +01:00
Jens Cornelsen
f8f53d0ac9 . 2025-02-22 19:41:20 +01:00
Jens Cornelsen
e4888849b1 Merge pull request #383 from IBCornelsen/Jens
.
2025-02-22 19:27:33 +01:00
Jens Cornelsen
cdb8b500bc . 2025-02-22 19:24:27 +01:00
Jens Cornelsen
106c420447 Merge pull request #382 from IBCornelsen/Jens
.
2025-02-22 18:56:30 +01:00
Jens Cornelsen
83c6aa8550 . 2025-02-22 18:54:21 +01:00
UMBENOMENA
f262710f59 Merge pull request #381 from IBCornelsen/UMBE
kundendaten
2025-02-22 18:49:00 +01:00
UMBENOMENA
04d69a4e95 Merge branch 'main' into UMBE 2025-02-22 18:48:50 +01:00
Robert Jagtiani
e96ac71d1d kundendaten 2025-02-22 18:47:22 +01:00
Jens Cornelsen
399b43149b Merge pull request #380 from IBCornelsen/Jens
logo
2025-02-22 18:37:53 +01:00
Jens Cornelsen
693b9968e9 logo 2025-02-22 18:36:02 +01:00
Jens Cornelsen
4edd73de52 Merge pull request #379 from IBCornelsen/Jens
CSS gefixt
2025-02-22 18:29:12 +01:00
Jens Cornelsen
e7a554cac0 CSS gefixt 2025-02-22 18:26:33 +01:00
Jens Cornelsen
a973586a2b Merge pull request #378 from IBCornelsen/Jens
Textgröße Gebäudadresse im Dashboard angebasst
2025-02-22 18:07:20 +01:00
Jens Cornelsen
c682dc4409 Textgröße Gebäudadresse im Dashboard angebasst 2025-02-22 18:03:47 +01:00
Jens Cornelsen
f404f5a1fe Merge pull request #377 from IBCornelsen/Jens
Höhe Fotoslider im Dashboard angepasst
2025-02-22 18:00:35 +01:00
Jens Cornelsen
3678cd7b37 Höhe des Fotobanners im Dashboard angepasst 2025-02-22 17:54:19 +01:00
Jens Cornelsen
14196bf66c Migrations 2025-02-22 16:21:29 +01:00
Jens Cornelsen
3f5f1cebe7 Merge pull request #373 from IBCornelsen/main
get main
2025-02-22 15:28:59 +01:00
Moritz Utcke
8fc6a88f58 AngabenZurHeizungsanlage.svelte gefixt 2025-02-22 13:29:27 +11:00
Moritz Utcke
591c5ec9e6 Merge remote-tracking branch 'origin/main' 2025-02-22 13:28:31 +11:00
Moritz Utcke
57c05b8672 Pfade Automatisch erstellen 2025-02-22 13:28:12 +11:00
UMBENOMENA
e6fdf39e00 Merge pull request #376 from IBCornelsen/UMBE
.
2025-02-22 03:18:19 +01:00
Jens Cornelsen
fabef77366 Merge pull request #375 from IBCornelsen/Jens
Inhaltsseiten komplett
2025-02-22 03:17:17 +01:00
Robert Jagtiani
b14d80d101 . 2025-02-22 03:15:10 +01:00
UMBENOMENA
a04a71df23 Merge pull request #374 from IBCornelsen/UMBE
Bedarfsausweis
2025-02-22 03:10:29 +01:00
Jens Cornelsen
eb4d67d04e Merge remote-tracking branch 'origin/main' into Jens 2025-02-22 03:10:24 +01:00
Robert Jagtiani
0e5a74725e Bedarfsausweis 2025-02-22 03:08:48 +01:00
Jens Cornelsen
fdbe165343 Inhaltsseiten komplett 2025-02-22 03:06:52 +01:00
Moritz Utcke
a40a809e12 Ordner 2025-02-22 12:40:51 +11:00
Moritz Utcke
69e169362b Persistent Directory 2025-02-22 12:37:54 +11:00
Moritz Utcke
6cf8910839 Bild Upload 2025-02-22 12:15:25 +11:00
Moritz Utcke
fb706c5999 Bilder 2025-02-22 12:03:36 +11:00
Moritz Utcke
b5d6ba731e clientAddress 2025-02-22 11:51:48 +11:00
Moritz Utcke
224697fd06 Merge remote-tracking branch 'origin/main' 2025-02-22 11:46:13 +11:00
Moritz Utcke
065e9a5e14 No Prerender 2025-02-22 11:46:09 +11:00
Jens Cornelsen
999cfbc7cb Merge pull request #372 from IBCornelsen/Jens
Inhaltsseiten
2025-02-22 01:36:39 +01:00
Jens Cornelsen
5f075814dd git 2025-02-22 01:34:44 +01:00
Jens Cornelsen
dfcd3e359c Merge remote-tracking branch 'origin/main' into Jens 2025-02-22 01:32:54 +01:00
Jens Cornelsen
67aaee6f09 Auto stash before merge of "main" and "origin/main" 2025-02-22 01:27:09 +01:00
Moritz Utcke
c05d02b002 makefile und ausweistyp 2025-02-22 11:23:44 +11:00
Moritz Utcke
412d2dc7ef Klimafaktoren 2025-02-22 11:11:57 +11:00
Moritz Utcke
d3ca67399c Makefile 2025-02-22 10:46:07 +11:00
Moritz Utcke
21e87339b9 Port 3000 2025-02-22 10:37:28 +11:00
Moritz Utcke
fa18a0f94e Port 2025-02-22 10:32:18 +11:00
Moritz Utcke
d050fcecec Makefile 2025-02-22 10:29:55 +11:00
Moritz Utcke
aa6effcc90 Merge remote-tracking branch 'origin/main' 2025-02-22 10:20:52 +11:00
Moritz Utcke
785e0f78ff Astro build funktioniert 2025-02-22 10:20:20 +11:00
Jens Cornelsen
c4942affe8 Merge pull request #370 from IBCornelsen/Jens
Inhaltsseiten
2025-02-21 22:38:05 +01:00
Jens Cornelsen
8ee620935e Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:33:38 +01:00
Jens Cornelsen
5ffcb4b3ff Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:33:07 +01:00
Jens Cornelsen
2a5416673b Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:32:27 +01:00
Jens Cornelsen
21446bf4e8 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:31:51 +01:00
Jens Cornelsen
45ee28c332 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:31:09 +01:00
Jens Cornelsen
c0df0d73af Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:30:18 +01:00
Jens Cornelsen
1ce0164e70 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:29:39 +01:00
Jens Cornelsen
9d4359ea89 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:29:07 +01:00
Jens Cornelsen
2eb44a9bb3 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:27:30 +01:00
Jens Cornelsen
6242fc9ef8 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:26:51 +01:00
Jens Cornelsen
270fcc329f Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:25:44 +01:00
Jens Cornelsen
0e50cbe118 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:24:50 +01:00
Jens Cornelsen
47767e4316 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:23:31 +01:00
Jens Cornelsen
37339da412 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-21 22:21:44 +01:00
Jens Cornelsen
91704f6037 Merge pull request #369 from IBCornelsen/main
get main
2025-02-21 21:51:37 +01:00
UMBENOMENA
c9e372ce53 Merge pull request #368 from IBCornelsen/UMBE
.
2025-02-21 21:43:19 +01:00
Robert Jagtiani
226e9a6d77 . 2025-02-21 21:41:58 +01:00
Jens Cornelsen
b2121ec76e Merge pull request #367 from IBCornelsen/main
get main
2025-02-21 21:26:18 +01:00
UMBENOMENA
77eaa41cc3 Update constants.ts 2025-02-21 21:23:26 +01:00
UMBENOMENA
2e1ec82d77 Merge pull request #366 from IBCornelsen/main
.
2025-02-21 21:22:26 +01:00
UMBENOMENA
8669b6d7ff Update constants.ts 2025-02-21 21:20:28 +01:00
UMBENOMENA
192e71ac60 Update constants.ts 2025-02-21 19:15:03 +01:00
UMBENOMENA
095655e9e8 Merge pull request #365 from IBCornelsen/UMBE
price GEGGewerbe
2025-02-21 19:12:49 +01:00
UMBENOMENA
fb14dbd6bc Merge branch 'main' into UMBE 2025-02-21 19:12:43 +01:00
Robert Jagtiani
7c56d036fd price GEGGewerbe 2025-02-21 19:11:17 +01:00
Moritz Utcke
fa272cf0f3 Plausibilitätsprüfungen 2025-02-22 00:02:02 +11:00
Moritz Utcke
6a51b0b02f Dashboard 2025-02-21 23:57:46 +11:00
Moritz Utcke
d6e137d50f GEGNachweis Mail 2025-02-21 20:01:54 +11:00
Moritz Utcke
6e49ba328e Dahsboard Gefixt 2025-02-21 19:19:06 +11:00
Moritz Utcke
d31a958df7 Preise 2025-02-21 18:27:03 +11:00
Moritz Utcke
993d58c170 Verbesserungen 2025-02-21 18:22:33 +11:00
Moritz Utcke
d1e3b51635 Merge remote-tracking branch 'origin/main' 2025-02-21 12:25:58 +11:00
Moritz Utcke
1df144e5b2 GEG Einpreisung 2025-02-21 12:25:28 +11:00
Jens Cornelsen
3e160b3af1 Merge pull request #363 from IBCornelsen/Jens
Inhaltsseiten
2025-02-20 21:41:53 +01:00
Jens Cornelsen
26ea187a09 Inhaltsseiten 2025-02-20 21:40:04 +01:00
Jens Cornelsen
45e8ebb29d Merge pull request #362 from IBCornelsen/Jens
Inhaltsseiten
2025-02-20 20:07:21 +01:00
Jens Cornelsen
85fe01bc60 Korrektur 2025-02-20 20:05:52 +01:00
Jens Cornelsen
cba9d7a0e0 Inhaltsseiten 2025-02-20 19:55:51 +01:00
Jens Cornelsen
d672c957f9 Merge pull request #361 from IBCornelsen/main
get main
2025-02-20 13:37:25 +01:00
Moritz Utcke
685cb114f8 Verbrauchsausweis Gewerbe 2025-02-20 22:12:22 +11:00
Moritz Utcke
86532ec251 Ansichtsausweis 2025-02-20 21:41:29 +11:00
Moritz Utcke
b283013116 Button Oben Funktioniert wieder 2025-02-20 21:27:40 +11:00
Moritz Utcke
927f0157be Login Popup zu Kundendaten bewegt 2025-02-20 21:25:38 +11:00
Moritz Utcke
eac6f0c035 Bestellung 2025-02-20 17:07:49 +11:00
Moritz Utcke
727ea1c924 Merge remote-tracking branch 'origin/main' 2025-02-20 16:51:36 +11:00
Moritz Utcke
d538f754c4 Verbesserungen und Datenumzug 2025-02-20 16:50:21 +11:00
UMBENOMENA
4d801eef4c Merge pull request #360 from IBCornelsen/UMBE
.
2025-02-20 00:58:30 +01:00
Robert Jagtiani
dd60f42d7b . 2025-02-20 00:57:27 +01:00
Moritz Utcke
8049af9f17 Design 2025-02-20 10:35:23 +11:00
Moritz Utcke
39476ac5d5 Links 2025-02-20 10:24:05 +11:00
Moritz Utcke
dc0dfff31f Bild Upload 2025-02-20 10:21:48 +11:00
Moritz Utcke
d228908430 Fehler Behoben 2025-02-20 10:11:09 +11:00
Jens Cornelsen
d73b0af435 Merge pull request #359 from IBCornelsen/main
get main
2025-02-19 23:33:08 +01:00
UMBENOMENA
2f04be6da9 Merge pull request #357 from IBCornelsen/UMBE
.
2025-02-19 19:50:44 +01:00
UMBENOMENA
a38fea3955 Merge branch 'main' into UMBE 2025-02-19 19:50:37 +01:00
Robert Jagtiani
850a51569f . 2025-02-19 19:49:38 +01:00
UMBENOMENA
22ada149f4 Update Progressbar.svelte 2025-02-19 19:41:04 +01:00
UMBENOMENA
051f758566 Merge pull request #356 from IBCornelsen/main
getMain
2025-02-19 19:36:35 +01:00
UMBENOMENA
5bee70f95a Merge pull request #355 from IBCornelsen/UMBE
responsiv
2025-02-19 19:35:53 +01:00
UMBENOMENA
bfcc44dbe2 Merge branch 'main' into UMBE 2025-02-19 19:35:38 +01:00
Robert Jagtiani
cde5661e30 responsiv 2025-02-19 19:30:44 +01:00
Jens Cornelsen
902743f0d9 Merge pull request #354 from IBCornelsen/Jens
T42, T43 und T44 fertiggestellt
2025-02-19 19:05:29 +01:00
Jens Cornelsen
52e07ea0bf T42, T43 und T44 fertiggestellt 2025-02-19 19:04:01 +01:00
Jens Cornelsen
daec65e051 Merge pull request #352 from IBCornelsen/main
get main
2025-02-19 14:17:53 +01:00
Jens Cornelsen
7986adc9c6 Merge branch 'Jens' into main 2025-02-19 14:17:12 +01:00
Jens Cornelsen
0686f2930b T41 fertiggesellt und constants erweitert 2025-02-19 14:12:44 +01:00
Moritz Utcke
faa8f2c673 GEG Nachweis 2025-02-19 23:22:39 +11:00
Moritz Utcke
69566f1c74 Dashboard, Datenblatt usw. 2025-02-19 18:12:48 +11:00
Moritz Utcke
198912c792 Merge remote-tracking branch 'origin/main' 2025-02-19 11:11:58 +11:00
Moritz Utcke
df00cb88e2 Verbrauchsausweis Gewerbe 2025-02-19 11:11:24 +11:00
Jens Cornelsen
b2f86696cc Merge pull request #351 from IBCornelsen/Jens
T37, T38, T39 und T40 fertiggestellt
2025-02-18 23:05:14 +01:00
Jens Cornelsen
2b0fda66f1 T37, T38, T39 und T40 fertiggestellt 2025-02-18 23:03:05 +01:00
Jens Cornelsen
47533d5794 Merge pull request #350 from IBCornelsen/main
Aussteller
2025-02-18 13:42:36 +01:00
Moritz Utcke
78248ba0a4 Aussteller 2025-02-18 22:28:27 +11:00
Jens Cornelsen
b3b59591be Merge pull request #349 from IBCornelsen/main
getMain
2025-02-18 12:26:03 +01:00
Moritz Utcke
c3da028ed7 Buchstabe hervorheben 2025-02-18 22:17:44 +11:00
Moritz Utcke
feb3145169 Merge remote-tracking branch 'origin/main' 2025-02-18 22:05:53 +11:00
Moritz Utcke
003882a16a Verbrauchsausweis Wohnen Ausweis fertig 2025-02-18 22:05:33 +11:00
Moritz Utcke
137cef3114 Merge pull request #348 from IBCornelsen/main
Ausweis und weitere Änderungen
2025-02-18 14:27:41 +07:00
Moritz Utcke
0777fc39eb Merge branch 'Jens' into main 2025-02-18 14:27:35 +07:00
Jens Cornelsen
9359ee0432 Interpolation 2025-02-18 08:24:52 +01:00
Moritz Utcke
c8ba17fab3 Ausweis und weitere Änderungen 2025-02-18 18:17:02 +11:00
UMBENOMENA
faf9ef8b0b Merge pull request #347 from IBCornelsen/main
getMain
2025-02-17 15:49:55 +01:00
Jens Cornelsen
404f5845a4 Merge pull request #346 from IBCornelsen/main
.
2025-02-17 11:42:43 +01:00
Jens Cornelsen
8486421f12 Neue Ordner 2025-02-17 11:40:20 +01:00
Jens Cornelsen
3abaa89107 Merge pull request #345 from IBCornelsen/Jens
.
2025-02-17 11:29:46 +01:00
Jens Cornelsen
1af751042c Merge remote-tracking branch 'origin/Jens' into Jens 2025-02-17 11:27:28 +01:00
Jens Cornelsen
0daa65bd94 Merge pull request #344 from IBCornelsen/main
Update Jens
2025-02-17 11:25:01 +01:00
Jens Cornelsen
c4350ec75a T12, T13, T14 und T15 hinzugefügt 2025-02-17 11:13:02 +01:00
Moritz Utcke
9951179b2a Bestellen auf Rechnung 2025-02-17 20:46:27 +11:00
Moritz Utcke
7f6430f20f Anfang Aussschlusskriterien 2025-02-17 11:39:48 +07:00
Moritz Utcke
5f8d30a5a3 Fehler gefixt die beim Testen aufgefallen sind. 2025-02-17 11:24:07 +07:00
Jens Cornelsen
f18b5ca03c Merge pull request #343 from IBCornelsen/main
.
2025-02-15 15:59:41 +01:00
Jens Cornelsen
74f05d404c Merge pull request #342 from IBCornelsen/Jens
Überarbeitet und auf funktionDoppelteInterpolation umgestellt
2025-02-15 15:55:16 +01:00
Jens Cornelsen
8935479fad Überarbeitet und auf funktionDoppelteInterpolation umgestellt 2025-02-15 15:50:02 +01:00
Jens Cornelsen
23cadae581 Korrektur 2025-02-15 15:31:38 +01:00
Jens Cornelsen
b6db5cde51 Merge pull request #341 from IBCornelsen/Jens
Überarbeitet und Wertebereiche angepasst
2025-02-15 15:00:03 +01:00
Jens Cornelsen
a9ab3daa6f Überarbeitet und Wertebereiche angepasst 2025-02-15 14:58:34 +01:00
Jens Cornelsen
0d0f6c8851 Merge pull request #340 from IBCornelsen/main
Update Jens
2025-02-15 09:38:22 +01:00
Jens Cornelsen
8ac9005e8b Merge remote-tracking branch 'origin/main' 2025-02-15 09:29:47 +01:00
Jens Cornelsen
ae970e376e Funktion T108 fertiggestellt 2025-02-15 09:29:16 +01:00
UMBENOMENA
c6ab7adba3 Merge pull request #339 from IBCornelsen/UMBE
VA Gewerbe änderungen
2025-02-14 23:13:55 +01:00
Robert Jagtiani
dbd70febdb VA Gewerbe änderungen 2025-02-14 23:13:29 +01:00
UMBENOMENA
2acd91f270 Merge pull request #338 from IBCornelsen/UMBE
widget Einbau
2025-02-14 18:49:25 +01:00
Robert Jagtiani
0381a6f473 widget Einbau 2025-02-14 18:48:29 +01:00
Jens Cornelsen
e86c4d94b8 Merge pull request #337 from IBCornelsen/Jens
Funktionen für T105, T106 und T107 fertiggestellt
2025-02-14 18:48:17 +01:00
Jens Cornelsen
8d1f95ec89 Auto stash before merge of "Jens" and "origin/Jens" 2025-02-14 18:45:02 +01:00
Jens Cornelsen
89ce919802 Merge pull request #336 from IBCornelsen/main
Update
2025-02-14 14:18:52 +01:00
UMBENOMENA
ed5b71f8bf Merge pull request #335 from IBCornelsen/UMBE
Prüfbox & Progress
2025-02-14 01:21:48 +01:00
Robert Jagtiani
0927883055 Merge remote-tracking branch 'origin/UMBE' into UMBE 2025-02-14 01:16:39 +01:00
UMBENOMENA
2ac1e3f436 Merge pull request #334 from IBCornelsen/main
getMain
2025-02-14 01:06:15 +01:00
Robert Jagtiani
66297101ff progessbar und prüfbox 2025-02-14 00:52:02 +01:00
Moritz Utcke
6e2f29c673 Bedarfsausweis Wohnen API 2025-02-12 14:27:56 +07:00
Moritz Utcke
a4fe9b4f80 Merge remote-tracking branch 'origin/main' 2025-02-12 12:28:25 +07:00
Moritz Utcke
fe3b2809d9 Fehler von Jens gefixt 2025-02-12 12:28:17 +07:00
UMBENOMENA
e61481c1b0 Merge pull request #333 from IBCornelsen/UMBE
Ausweis Module RESPONSIV
2025-02-12 01:30:07 +01:00
UMBENOMENA
8b3371cf26 Merge branch 'main' into UMBE 2025-02-12 01:29:31 +01:00
Robert Jagtiani
e48753f9bd Ausweis Module RESPONSIV 2025-02-12 01:20:32 +01:00
UMBENOMENA
8b3578aa74 Merge pull request #332 from IBCornelsen/UMBE
.
2025-02-11 23:53:23 +01:00
Robert Jagtiani
094b40e604 . 2025-02-11 23:52:55 +01:00
UMBENOMENA
843c417f19 Merge pull request #331 from IBCornelsen/UMBE
widget & VA
2025-02-11 23:47:38 +01:00
Robert Jagtiani
f4ba7c8111 widget & VA 2025-02-11 23:40:53 +01:00
Jens Cornelsen
01d3312989 Merge pull request #330 from IBCornelsen/Jens
Merge pull request #327 from IBCornelsen/UMBE
2025-02-11 23:26:27 +01:00
Jens Cornelsen
60a0f3af70 Merge pull request #327 from IBCornelsen/UMBE
widget, preise
2025-02-11 23:24:43 +01:00
Jens Cornelsen
de8e68e21b Merge pull request #329 from IBCornelsen/Jens
.
2025-02-11 23:04:45 +01:00
Jens Cornelsen
158752b16d . 2025-02-11 23:01:52 +01:00
Jens Cornelsen
b1feb53b79 Merge pull request #328 from IBCornelsen/Jens
Interpolationen T83, T84, T85, T86, T88, T90 und T102 hinzugefügt
2025-02-11 22:53:45 +01:00
Jens Cornelsen
28ece60c76 Merge branch 'main' into Jens 2025-02-11 22:53:12 +01:00
Jens Cornelsen
30f699297c Interpolationen T83, T84, T85, T86, T88, T90 und T102 hinzugefügt 2025-02-11 22:29:55 +01:00
UMBENOMENA
91fd0ec516 Merge pull request #327 from IBCornelsen/UMBE
widget, preise
2025-02-11 21:48:56 +01:00
Robert Jagtiani
c6c7d5bc14 widget, preise 2025-02-11 21:47:19 +01:00
Jens Cornelsen
06f05104ab Merge pull request #326 from IBCornelsen/main
Update
2025-02-11 13:42:44 +01:00
Moritz Utcke
23c95dab63 Merge branch 'dev-moritz' 2025-02-11 17:33:46 +07:00
657 changed files with 1098019 additions and 30210 deletions

View File

@@ -1,3 +0,0 @@
# Jeden Monat müssen wir die neuen Klimafaktoren vom DWD abholen, der Cronjob läuft immer am 28. für die höchste Wahrscheinlichkeit
# dass die Daten schon da sind, falls der DWD mal später dran ist...
0 12 28 * * bun ./src/cronjobs/update-dwd-klimafaktoren.ts

16
.env Normal file
View File

@@ -0,0 +1,16 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
POSTGRES_DB=main
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=main
POSTGRES_PASSWORD=hHMP8cd^N3SnzGRR
DB_CONTAINER_NAME=database
POSTGRES_DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}"
POSTGRES_DATABASE_URL_EXTERNAL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_CONTAINER_NAME}:${POSTGRES_PORT}/${POSTGRES_DB}"

View File

@@ -0,0 +1,76 @@
name: Auto Merge Staging into Main
on:
schedule:
- cron: '0 2 * * *' # 2:00 UTC = 4:00 Europäische Zeit
workflow_dispatch:
jobs:
merge:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set Git user
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Fetch all branches
run: |
git fetch origin main
git fetch origin staging
- name: Check if main has commits not in staging
id: check
run: |
git fetch origin
if [ $(git rev-list --count origin/staging..origin/main) -gt 0 ]; then
echo "❌ Staging is behind main and requires manual merging."
exit 1
fi
- name: Create PR from staging to main
id: create_pr
run: |
PR_URL=$(gh pr create --base main --head staging --title "Auto-merge staging into main" --body "This PR was created automatically by GitHub Actions. It merges the latest \`staging\` into \`main\`.")
echo "PR_URL=$PR_URL" >> $GITHUB_OUTPUT
PR_NUMBER=$(echo $PR_URL | awk -F'/' '{print $NF}')
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Enable auto-merge on PR
if: steps.create_pr.outputs.PR_NUMBER != ''
run: |
gh pr merge ${{ steps.create_pr.outputs.PR_NUMBER }} --merge --auto
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
notify_failure:
needs: merge
if: failure()
runs-on: ubuntu-latest
steps:
- name: Send Discord notification on failure
run: |
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"🚨 Auto-Merge fehlgeschlagen! Bitte manuell prüfen: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\"}" \
${{ secrets.DISCORD_WEBHOOK_URL }}
notify_success:
needs: merge
if: success()
runs-on: ubuntu-latest
steps:
- name: Send Discord notification on success
run: |
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"✅ Auto-Merge ausgeführt! Ergebnis jetzt auf [GitHub](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) und [online-energieausweis.org](https://online-energieausweis.org) einsehen.\"}" \
${{ secrets.DISCORD_WEBHOOK_URL }}

View File

@@ -1,16 +1,18 @@
name: Dev Pipeline
name: Development Pipeline
on:
pull_request:
branches: [main]
push:
branches: [main]
branches: [dev]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Bun
run: |
curl -fsSL https://bun.sh/install | bash
- uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEV_HOST }}
@@ -18,9 +20,12 @@ jobs:
password: ${{ secrets.DEV_PASSWORD }}
port: 22
script: |
export PATH=$HOME/.bun/bin:$PATH
export PATH=$HOME/.nvm/versions/node/v22.14.0/bin:$PATH
echo $PATH
cd ~/online-energieausweis
git reset --hard origin/main
git reset --hard origin/dev
git clean -f -d
git pull origin main
git pull origin dev
git status
make prod

27
.github/workflows/prevent-wrong-pr.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
name: PR Rules Enforcement
on:
pull_request:
branches:
- main
- staging
jobs:
check-pr:
runs-on: ubuntu-latest
name: Validate Pull Request Sources
steps:
- name: Prevent dev merges
run: |
if [[ "${{ github.head_ref }}" == "dev" ]]; then
echo "ERROR: Merging 'dev' into '${{ github.base_ref }}' is forbidden!"
exit 1
fi
- name: Allow only staging into main
if: github.base_ref == 'main'
run: |
if [[ "${{ github.head_ref }}" != "staging" ]]; then
echo "ERROR: Only 'staging' branch is allowed to merge into 'main'. Current: '${{ github.head_ref }}'"
exit 1
fi

31
.github/workflows/prod-pipeline.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Production Pipeline
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Bun
run: |
curl -fsSL https://bun.sh/install | bash
- uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PROD_HOST }}
username: ${{ secrets.PROD_USERNAME }}
password: ${{ secrets.PROD_PASSWORD }}
port: 22
script: |
export PATH=$HOME/.bun/bin:$PATH
export PATH=$HOME/.nvm/versions/node/v22.14.0/bin:$PATH
echo $PATH
cd ~/online-energieausweis
git reset --hard origin/main
git clean -f -d
git pull origin main
git status
make prod

17
.gitignore vendored
View File

@@ -20,15 +20,22 @@ pnpm-debug.log*
pnpm-lock.yaml
bun.lockb
# environment variables
.env
.env.production
src/astro-typesafe-api-caller.ts
# macOS-specific files
.DS_Store
public/fonts/
*.Identifier
src/lib/Berechnungen/BedarfsausweisWohnen/18599-Tabellenverfahren-Wohngebaeude-komplett-ocr.pdf
src/astro-typesafe-api-caller.ts
dbml/schema.dbml
prisma/migrations/20250315143314_/migration.sql
# src/astro-typesafe-api-caller.ts
src/testing/ausweise.csv
src/testing/users.csv
src/testing/rechnungen.csv

View File

@@ -1,10 +1,16 @@
FROM oven/bun:1.0.23
FROM postgres:latest
ENV POSTGRES_USER ${POSTGRES_USER}
ENV POSTGRES_PASSWORD ${POSTGRES_PASSWORD}
ENV POSTGRES_DB ${POSTGRES_DB}
EXPOSE 3000
COPY ./prisma/migrations/ /docker-entrypoint-initdb.d/
WORKDIR /online-energieausweis
COPY ./package.json ./
COPY . .
RUN bun install --prod
EXPOSE 5432
CMD ["bun", "run", "build:production"]
# Use a loop to copy migration.sql from each folder to the corresponding directory in the build context
RUN for folder in /docker-entrypoint-initdb.d/*; do \
if [ -d "$folder" ]; then \
cp "$folder/migration.sql" "$folder.sql"; \
rm -rf "$folder"; \
fi \
done

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,52 +1,74 @@
.PHONY: dev database online-energieausweis all prod bun-install-database # api bun-install-api
.PHONY: dev online-energieausweis all prod backup run-database build-database install-dependencies wait-for-database prod database prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
DB_CONTAINER_NAME := database
DB_NAME := main
DB_USER := main
DB_PASSWORD := hHMP8cd^N3SnzGRR
DB_PORT := 5432
DB_VOLUME := postgres_data
PERSISTENT_DIR := $(HOME)/persistent/$(APP_NAME)
BACKUP_FILENAME := $(HOME)/backups/$(shell date +"%Y-%m-%d_%H-%M-%S").sql.gz
online-energieausweis:
bun run dev --host
dev: database online-energieausweis # api
dev: database online-energieausweis
database:
$(MAKE) -C ../database dev
docker compose up
bun-install-database:
cd ../database
bun link
prisma-studio:
- pm2 delete prisma-studio
pm2 start --name "prisma-studio" bunx -- prisma studio
backup:
mkdir -p $(PERSISTENT_DIR)
- docker exec -t $(DB_CONTAINER_NAME) pg_dump --data-only -U $(DB_USER) $(DB_NAME) | gzip > $(BACKUP_FILENAME)
run-database: stop-database
docker volume rm -f $(DB_VOLUME)
docker volume create $(DB_VOLUME)
docker build -t $(DB_CONTAINER_NAME) .
docker run -d --name $(DB_CONTAINER_NAME) \
-e POSTGRES_USER=$(DB_USER) \
-e POSTGRES_PASSWORD=$(DB_PASSWORD) \
-p $(DB_PORT):5432 \
-v $(DB_VOLUME):/var/lib/postgresql/data \
-v $(PERSISTENT_DIR):/persistent \
$(DB_CONTAINER_NAME)
stop-database:
- docker stop $(DB_CONTAINER_NAME)
- docker rm $(DB_CONTAINER_NAME)
wait-for-database:
@while ! docker exec $(DB_CONTAINER_NAME) pg_isready -U $(DB_USER) -h localhost -p $(DB_PORT) > /dev/null 2>&1; do \
sleep 1; \
done
restore-backup:
gunzip -c $(BACKUP_FILENAME) | docker exec -i $(DB_CONTAINER_NAME) psql -U $(DB_USER) -d postgres
install-dependencies:
bun install
# bun-install-api: bun-install-database
# cd ../api
# bun install
# bun link @ibcornelsen/database
# api:
# $(MAKE) -C ../api dev
bunx prisma generate
all:
mkdir -p ~/logs
bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log
prod: bun-install-database # bun-install-api
update-dwd-klimafaktoren-cron:
pm2 start bun --name "update-dwd-klimafaktoren-cron" --cron "0 12 28 * *" -- src/cronjobs/update-dwd-klimafaktoren.ts
prod: install-dependencies prisma-studio backup-database-cronjob update-dwd-klimafaktoren-cron
bun run build
mkdir -p ~/logs
mkdir -p ~/persistent/online-energieausweis
# Wir müssen sichergehen, dass der Database Container läuft, sonst können wir ihn nicht linken.
@if [ ! $$(docker ps | grep database | wc -l) -gt 0 ]; then \
cd ../database; \
$(MAKE) prod; \
cd ../online-energieausweis; \
fi
# Auch die API sollte bereits laufen
# @if [ $$(pm2 pid api) -eq "0" ]; then \
# cd ../api; \
# $(MAKE) prod; \
# cd ../online-energieausweis; \
# fi
- rm -f ~/online-energieausweis/.env;
- touch ~/online-energieausweis/.env;
- echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/ibcornelsen.de/privkey.pem | base64 | tr -d '\n')" >> ~/online-energieausweis/.env;
- echo "CERTIFICATE=$(cat /etc/letsencrypt/live/ibcornelsen.de/fullchain.pem | base64 | tr -d '\n')" >> ~/online-energieausweis/.env;
- pm2 delete online-energieausweis
pm2 start --name "online-energieausweis" --log ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log --time bun -- astro dev
NODE_ENV="production" pm2 start --name "online-energieausweis" --update-env --log ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log --time bun -- run ./server.ts
pm2 save
backup-database-cronjob:
- pm2 delete daily-db-backup
pm2 start bash --name "daily-db-backup" --cron "0 0 * * *" -- backup-database.bash

View File

@@ -4,38 +4,37 @@ import svelte from "@astrojs/svelte";
import tailwind from "@astrojs/tailwind";
import node from "@astrojs/node";
import mdx from "@astrojs/mdx";
import dsv from "@rollup/plugin-dsv"
import astroTypesafeAPI from "astro-typesafe-api"
import { fileURLToPath } from "url";
// https://astro.build/config
export default defineConfig({
integrations: [svelte(), tailwind(), mdx(), astroTypesafeAPI()],
outDir: "./dist",
output: "server",
vite: {
optimizeDeps: {
exclude: ["@ibcornelsen/api", "@ibcornelsen/database"]
},
resolve: {
alias: {
"#": fileURLToPath(new URL("./src", import.meta.url))
}
},
ssr: {
noExternal: ["@pdfme/generator", "@pdfme/common", "@pdfme/schemas"]
},
build: {
commonjsOptions: {
transformMixedEsModules: false
}
},
plugins: [dsv()]
},
adapter: node({
mode: "middleware"
mode: "middleware",
}),
vite: {
server: {
allowedHosts: ["ibcornelsen.de", "online-energieausweis.org"]
},
optimizeDeps: {
exclude: ["bun"]
},
build: {
rollupOptions: {
external: ["bun", "stream", "node:stream", "http", "node:http", "https", "http2", "path", "os", "crypto", "fs", "url", "util", "child_process"]
}
},
ssr: {
external: ["@prisma/client", "bun", "stream"],
resolve: {
alias: {
".prisma/client/index-browser": "./node_modules/.prisma/client/index-browser.js"
}
}
}
},
server: {
port: 3000
},

28
backup-database.bash Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
FILE_NAME=data-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
FILE_NAME_COMPLETE=full-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br
# Das wird benötigt für AWS Ionos Kompatibilität.
export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
# Wir exportieren die Datenbank und komprimieren sie.
# IMPORTANT: Dieser Befehl benötigt das `ionos` Profil, sonst wird er nicht funktionieren.
# Das Profil kann mit `aws configure --profile ionos` erstellt werden.
# Den Key dafür findet man auf https://dcd.ionos.com/latest/?lang=en#/key-management
docker exec -t online-energieausweis-database-1 pg_dump --data-only -U main main | brotli --best > $FILE_NAME
aws s3 cp $FILE_NAME s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD
echo "Uploaded $FILE_NAME"
docker exec -t online-energieausweis-database-1 pg_dumpall -c -U main | brotli --best > $FILE_NAME_COMPLETE
aws s3 cp $FILE_NAME_COMPLETE s3://ibc-db-backup/ --profile ionos --endpoint-url https://s3-eu-central-1.ionoscloud.com --storage-class STANDARD
echo "Uploaded $FILE_NAME_COMPLETE"
# Wir entfernen das Backup
rm $FILE_NAME
rm $FILE_NAME_COMPLETE

File diff suppressed because it is too large Load Diff

71474
backup/postleitzahlen.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -39,11 +39,11 @@ bun link @ibcornelsen/database
PERSISTENT_DIR="${HOME}/persistent/${APP_NAME}";
mkdir -p $PERSISTENT_DIR;
# TODO: Wir legen hier die .env Datei an, die die SSL Zertifikate enthält.
# Wir legen hier die .env Datei an, die die SSL Zertifikate enthält.
rm -f ~/$APP_NAME/.env;
touch ~/$APP_NAME/.env;
echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/ibcornelsen.de/privkey.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env;
echo "CERTIFICATE=$(cat /etc/letsencrypt/live/ibcornelsen.de/fullchain.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env;
echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/online-energieausweis.org/privkey.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env;
echo "CERTIFICATE=$(cat /etc/letsencrypt/live/online-energieausweis.org/fullchain.pem | base64 | tr -d '\n')" >> ~/$APP_NAME/.env;
# Wir müssen sichergehen, dass der Database Container läuft, sonst können wir ihn nicht linken.
if [ ! $((docker ps | grep $DB_CONTAINER_NAME) | wc -l) -gt 0 ]; then

975
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
import { defineConfig } from "cypress";
import dsv from "@rollup/plugin-dsv"
import { prisma } from "./src/lib/server/prisma"
import { fileURLToPath } from "url";
import vitePreprocessor from "cypress-vite";
@@ -9,7 +9,7 @@ export default defineConfig({
baseUrl: "http://localhost:3000",
viewportHeight: 900,
viewportWidth: 1660,
supportFile: false,
supportFile: fileURLToPath(new URL("./src/cypress/support/commands.ts", import.meta.url)),
specPattern: "./src/cypress/e2e/**/*.{ts,js}",
setupNodeEvents(on, config) {
on("file:preprocessor", vitePreprocessor({
@@ -18,6 +18,7 @@ export default defineConfig({
},
resolve: {
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)),
"#components": fileURLToPath(new URL("./src/components", import.meta.url)),
"#lib": fileURLToPath(new URL("./src/lib", import.meta.url))
@@ -31,6 +32,19 @@ export default defineConfig({
},
plugins: [dsv()]
}))
on("task", {
async verbrauchsausweisWohnen(query) {
return await prisma.verbrauchsausweisWohnen.findFirst(query)
},
async plz() {
const total = await prisma.postleitzahlen.count()
const result = await prisma.postleitzahlen.findFirst({
skip: Math.floor(Math.random() * total)
})
return result?.plz
}
})
},
},
component: {

View File

@@ -1,26 +1,8 @@
version: '3'
services:
ibcornelsen-online-energieausweis:
build: ./
command: bun run dev --host
environment:
PORT: 3000
NODE_ENV: "development"
ports:
- "3000:3000"
volumes:
- ./:/online-energieausweis
- ./node_modules/@ibcornelsen/ui:/online-energieausweis/node_modules/@ibcornelsen/ui
- ./node_modules/@ibcornelsen/database:/online-energieausweis/node_modules/@ibcornelsen/database
# - ./node_modules/@ibcornelsen/api:/online-energieausweis/node_modules/@ibcornelsen/api
- ./node_modules/radix-svelte-icons:/online-energieausweis/node_modules/radix-svelte-icons
- ../api/persistent:/persistent
ibcornelsen-api:
extends:
file: ../api/docker-compose.yml
service: ibcornelsen-api
database:
extends:
file: ../database/docker-compose.yml
service: database
build: ./
env_file:
- .env
ports:
- 5432:5432

View File

@@ -1,15 +0,0 @@
git clone https://github.com/IBCornelsen/online-energieausweis
git clone https://github.com/IBCornelsen/database
git clone https://github.com/IBCornelsen/api
cd ./database
bun link
bun install
cd ../api
bun link
bun install
cd ../online-energieausweis
bun link
bun install

17314
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,8 @@
"@astrojs/node": "^8.3.4",
"@astrojs/svelte": "^2.2.0",
"@astrojs/tailwind": "^3.1.3",
"@ibcornelsen/database": "link:@ibcornelsen/database",
"@aws-sdk/client-s3": "^3.758.0",
"@highlight-run/node": "^3.12.0",
"@ibcornelsen/ui": "^0.0.2",
"@mollie/api-client": "^4.1.0",
"@pdfme/common": "^5.2.16",
@@ -31,26 +32,34 @@
"@trpc/client": "^10.45.2",
"@trpc/server": "^10.45.2",
"astro": "^4.16.17",
"astro-typesafe-api": "^0.2.1",
"astro-typesafe-api": "^0.2.4",
"body-scroll-lock": "^4.0.0-beta.0",
"buffer": "^6.0.3",
"bun": "^1.1.45",
"bun": "^1.2.5",
"csvtojson": "^2.0.10",
"express": "^4.21.2",
"flag-icons": "^6.15.0",
"fontkit": "^2.0.4",
"highlight.run": "^9.14.0",
"is-base64": "^1.1.0",
"js-cookie": "^3.0.5",
"js-interpolate": "^1.3.2",
"jsonwebtoken": "^9.0.2",
"jwt-decode": "^4.0.0",
"mime": "^4.0.6",
"moment": "^2.30.1",
"moment-timezone": "^0.5.46",
"nodemailer": "^6.10.0",
"pdf-lib": "^1.17.1",
"postcss-nested": "^7.0.2",
"puppeteer": "^24.7.2",
"radix-svelte-icons": "^1.0.0",
"sass": "^1.83.4",
"sharp": "^0.33.5",
"siema": "^1.5.1",
"soap": "^1.1.8",
"sqids": "^0.3.0",
"ssh2-sftp-client": "^12.0.0",
"svelte": "^3.59.2",
"svelte-dialogs": "^1.2.2",
"svelte-preprocess": "^5.1.4",
@@ -58,6 +67,7 @@
"tailwindcss": "^3.4.17",
"trpc-openapi": "^1.2.0",
"uuid": "^9.0.1",
"winston": "^3.17.0",
"zod": "^3.24.1"
},
"devDependencies": {
@@ -65,12 +75,16 @@
"@rollup/plugin-dsv": "^3.0.5",
"@tailwindcss/typography": "^0.5.16",
"@types/body-scroll-lock": "^3.1.2",
"@types/bun": "^1.2.2",
"@types/express": "^5.0.0",
"@types/fontkit": "^2.0.7",
"@types/is-base64": "^1.1.3",
"@types/js-cookie": "^3.0.6",
"@types/jsonwebtoken": "^9.0.7",
"@types/nodemailer": "^6.4.17",
"@types/papaparse": "^5.3.15",
"@types/siema": "^1.4.11",
"@types/ssh2-sftp-client": "^9.0.4",
"@types/uuid": "^9.0.8",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
@@ -79,16 +93,22 @@
"cypress": "^13.17.0",
"cypress-file-upload": "^5.0.8",
"cypress-vite": "^1.6.0",
"daisyui": "^4.12.23",
"eslint": "~8.15.0",
"eslint-config-prettier": "8.1.0",
"papaparse": "^5.5.2",
"postcss": "^8.5.1",
"postcss-import": "^16.1.0",
"postcss-nesting": "^13.0.1",
"prettier": "^2.8.8",
"typescript": "^4.9.5"
"prisma": "6.4.1",
"prisma-dbml-generator": "^0.12.0",
"prisma-generator-fake-data": "^0.14.3",
"tsx": "^4.19.3",
"typescript": "^5.8.3",
"zod-prisma": "^0.5.4"
},
"overrides": {
"zod": "^3.24.1"
}
},
"module": "index.ts"
}

BIN
persistent/images/haken.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

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

View File

@@ -0,0 +1,14 @@
/*
Warnings:
- Added the required column `updated_at` to the `Rechnung` table without a default value. This is not possible if the table is not empty.
- Added the required column `updated_at` to the `benutzer` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "Rechnung" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;
-- AlterTable
ALTER TABLE "benutzer" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;

View File

@@ -0,0 +1,9 @@
/*
Warnings:
- Added the required column `updated_at` to the `Bild` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "Bild" ADD COLUMN "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN "updated_at" TIMESTAMP(3) NOT NULL;

View File

@@ -0,0 +1,26 @@
-- AlterTable
ALTER TABLE "BedarfsausweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "Bild" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "GEGNachweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "GEGNachweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "Rechnung" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "VerbrauchsausweisGewerbe" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "VerbrauchsausweisWohnen" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "benutzer" ALTER COLUMN "updated_at" SET DEFAULT CURRENT_TIMESTAMP;

View File

@@ -0,0 +1,17 @@
-- AlterTable
ALTER TABLE "BedarfsausweisGewerbe" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'BedarfsausweisGewerbe';
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'BedarfsausweisWohnen';
-- AlterTable
ALTER TABLE "GEGNachweisGewerbe" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'GEGNachweisGewerbe';
-- AlterTable
ALTER TABLE "GEGNachweisWohnen" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'GEGNachweisWohnen';
-- AlterTable
ALTER TABLE "VerbrauchsausweisGewerbe" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'VerbrauchsausweisGewerbe';
-- AlterTable
ALTER TABLE "VerbrauchsausweisWohnen" ADD COLUMN "ausweisart" "Ausweisart" NOT NULL DEFAULT 'VerbrauchsausweisWohnen';

View File

@@ -0,0 +1,9 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "fenster_art_1" SET DATA TYPE TEXT,
ALTER COLUMN "fenster_art_2" SET DATA TYPE TEXT,
ALTER COLUMN "dachfenster_art" SET DATA TYPE TEXT,
ALTER COLUMN "haustuer_art" SET DATA TYPE TEXT,
ALTER COLUMN "dach_daemmung" SET DATA TYPE TEXT,
ALTER COLUMN "decke_daemmung" SET DATA TYPE TEXT,
ALTER COLUMN "aussenwand_daemmung" SET DATA TYPE TEXT,
ALTER COLUMN "boden_daemmung" SET DATA TYPE TEXT;

View File

@@ -0,0 +1,30 @@
/*
Warnings:
- The `fenster_art_1` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `fenster_art_2` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `dachfenster_art` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `haustuer_art` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `dach_daemmung` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `decke_daemmung` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `aussenwand_daemmung` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
- The `boden_daemmung` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
*/
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "fenster_art_1",
ADD COLUMN "fenster_art_1" DOUBLE PRECISION,
DROP COLUMN "fenster_art_2",
ADD COLUMN "fenster_art_2" DOUBLE PRECISION,
DROP COLUMN "dachfenster_art",
ADD COLUMN "dachfenster_art" DOUBLE PRECISION,
DROP COLUMN "haustuer_art",
ADD COLUMN "haustuer_art" DOUBLE PRECISION,
DROP COLUMN "dach_daemmung",
ADD COLUMN "dach_daemmung" DOUBLE PRECISION,
DROP COLUMN "decke_daemmung",
ADD COLUMN "decke_daemmung" DOUBLE PRECISION,
DROP COLUMN "aussenwand_daemmung",
ADD COLUMN "aussenwand_daemmung" DOUBLE PRECISION,
DROP COLUMN "boden_daemmung",
ADD COLUMN "boden_daemmung" DOUBLE PRECISION;

View File

@@ -0,0 +1,17 @@
-- CreateEnum
CREATE TYPE "Auslegungstemperatur" AS ENUM ('VorlaufRuecklauf9070', 'VorlaufRuecklauf7055', 'VorlaufRuecklauf5545', 'VorlaufRuecklauf3528');
-- CreateEnum
CREATE TYPE "LuftDichtheit" AS ENUM ('KategorieImitGeplanterDichtheitsprüfung', 'KategorieIIneuesGebäude', 'KategorieIIIGebäudebestand', 'KategorieVImitoffensichtlichenUndichtheiten', 'gemessenerLuftwechseln50');
-- CreateEnum
CREATE TYPE "LueftungsArt" AS ENUM ('FensterundInfiltration', 'keineFensternurInfiltration', 'keineFensterkeineInfiltration');
-- CreateEnum
CREATE TYPE "LueftungsAnlage" AS ENUM ('Abluftanlage', 'ZuUndAbluftanlage', 'OhnemechLüftung', 'LuftHeizungsanlage', 'Zuluftsystem');
-- CreateEnum
CREATE TYPE "Wärmeerzeuger" AS ENUM ('standard_kessel', 'brennwert_kessel', 'niedertemperatur_kessel', 'biomasse_kessel', 'fernwärme', 'waermepumpe', 'blockheizkraftwerk');
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "waerme_erzeugung_heizung_18599" "Wärmeerzeuger" NOT NULL DEFAULT 'brennwert_kessel';

View File

@@ -0,0 +1,33 @@
/*
Warnings:
- The values [OhnemechLüftung] on the enum `LueftungsAnlage` will be removed. If these variants are still used in the database, this will fail.
- The values [KategorieImitGeplanterDichtheitsprüfung,KategorieIIneuesGebäude,KategorieIIIGebäudebestand] on the enum `LuftDichtheit` will be removed. If these variants are still used in the database, this will fail.
- The `waerme_erzeugung_heizung_18599` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
*/
-- CreateEnum
CREATE TYPE "Waermeerzeuger" AS ENUM ('standard_kessel', 'brennwert_kessel', 'niedertemperatur_kessel', 'biomasse_kessel', 'fernwaerme', 'waermepumpe', 'blockheizkraftwerk');
-- AlterEnum
BEGIN;
CREATE TYPE "LueftungsAnlage_new" AS ENUM ('Abluftanlage', 'ZuUndAbluftanlage', 'OhnemechLueftung', 'LuftHeizungsanlage', 'Zuluftsystem');
ALTER TYPE "LueftungsAnlage" RENAME TO "LueftungsAnlage_old";
ALTER TYPE "LueftungsAnlage_new" RENAME TO "LueftungsAnlage";
DROP TYPE "LueftungsAnlage_old";
COMMIT;
-- AlterEnum
BEGIN;
CREATE TYPE "LuftDichtheit_new" AS ENUM ('KategorieImitGeplanterDichtheitspruefung', 'KategorieIIneuesGebaeude', 'KategorieIIIGebaeudebestand', 'KategorieVImitoffensichtlichenUndichtheiten', 'gemessenerLuftwechseln50');
ALTER TYPE "LuftDichtheit" RENAME TO "LuftDichtheit_old";
ALTER TYPE "LuftDichtheit_new" RENAME TO "LuftDichtheit";
DROP TYPE "LuftDichtheit_old";
COMMIT;
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "waerme_erzeugung_heizung_18599",
ADD COLUMN "waerme_erzeugung_heizung_18599" "Waermeerzeuger" NOT NULL DEFAULT 'brennwert_kessel';
-- DropEnum
DROP TYPE "Wärmeerzeuger";

View File

@@ -0,0 +1,19 @@
/*
Warnings:
- The values [standard_kessel,brennwert_kessel,niedertemperatur_kessel,biomasse_kessel,fernwaerme,waermepumpe,blockheizkraftwerk] on the enum `Waermeerzeuger` will be removed. If these variants are still used in the database, this will fail.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "Waermeerzeuger_new" AS ENUM ('Standardkessel', 'Brennwertkessel', 'Niedertemperaturkessel', 'Biomassekessel', 'Fernwaerme', 'Waermepumpe', 'Blockheizkraftwerk');
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" DROP DEFAULT;
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" TYPE "Waermeerzeuger_new" USING ("waerme_erzeugung_heizung_18599"::text::"Waermeerzeuger_new");
ALTER TYPE "Waermeerzeuger" RENAME TO "Waermeerzeuger_old";
ALTER TYPE "Waermeerzeuger_new" RENAME TO "Waermeerzeuger";
DROP TYPE "Waermeerzeuger_old";
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" SET DEFAULT 'Niedertemperaturkessel';
COMMIT;
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" SET DEFAULT 'Niedertemperaturkessel';

View File

@@ -0,0 +1,23 @@
-- CreateEnum
CREATE TYPE "orientierung" AS ENUM ('Bitte_auswaehlen', 'Sued', 'Suedost', 'Suedwest', 'Ost', 'West', 'Nordwest', 'Nordost', 'Nord', 'horizontal');
-- CreateEnum
CREATE TYPE "art" AS ENUM ('Bitte_auswaehlen', 'Fenster', 'Dachfenster', 'Haustuer', 'Oberlicht', 'Aussenwand', 'Dach', 'Flachdach', 'Geschossdecke', 'Kellerdecke', 'Boden');
-- CreateEnum
CREATE TYPE "neigung" AS ENUM ('Neigung0', 'Neigung30', 'Neigung45', 'Neigung60', 'Neigung90');
-- AlterEnum
-- This migration adds more than one value to an enum.
-- With PostgreSQL versions 11 and earlier, this is not possible
-- in a single migration. This can be worked around by creating
-- multiple migrations, each migration adding only one value to
-- the enum.
ALTER TYPE "Waermeerzeuger" ADD VALUE 'Therme';
ALTER TYPE "Waermeerzeuger" ADD VALUE 'Brennwertherme';
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "art" "art" NOT NULL DEFAULT 'Bitte_auswaehlen',
ADD COLUMN "orientierung" "orientierung" NOT NULL DEFAULT 'Bitte_auswaehlen';

View File

@@ -0,0 +1,11 @@
/*
Warnings:
- You are about to drop the column `art` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
- You are about to drop the column `orientierung` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "art",
DROP COLUMN "orientierung",
ADD COLUMN "planungswerte_bauteil" TEXT[] DEFAULT ARRAY[]::TEXT[];

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "planungswerte_bauteil" DROP DEFAULT;

View File

@@ -0,0 +1,9 @@
/*
Warnings:
- The `planungswerte_bauteil` column on the `BedarfsausweisWohnen` table would be dropped and recreated. This will lead to data loss if there is data in the column.
*/
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "planungswerte_bauteil",
ADD COLUMN "planungswerte_bauteil" JSON[];

View File

@@ -0,0 +1,8 @@
/*
Warnings:
- You are about to drop the column `planungswerte_bauteil` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "planungswerte_bauteil";

View File

@@ -0,0 +1,31 @@
/*
Warnings:
- The values [Therme,Brennwertherme] on the enum `Waermeerzeuger` will be removed. If these variants are still used in the database, this will fail.
- The values [Geschossdecke,Kellerdecke,Boden] on the enum `art` will be removed. If these variants are still used in the database, this will fail.
*/
-- CreateEnum
CREATE TYPE "Pufferspeicher" AS ENUM ('Bitte_auswaehlen', 'nicht_vorhanden', 'indirekt_beheizt', 'elektrisch_beheizt', 'gasbeheizt', 'bivalenter_speicher');
-- AlterEnum
BEGIN;
CREATE TYPE "Waermeerzeuger_new" AS ENUM ('Standardkessel', 'Brennwertkessel', 'Niedertemperaturkessel', 'Biomassekessel', 'Umlaufwasserheizer', 'Fernwaerme', 'Waermepumpe', 'Blockheizkraftwerk', 'Direktheizung');
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" DROP DEFAULT;
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" TYPE "Waermeerzeuger_new" USING ("waerme_erzeugung_heizung_18599"::text::"Waermeerzeuger_new");
ALTER TYPE "Waermeerzeuger" RENAME TO "Waermeerzeuger_old";
ALTER TYPE "Waermeerzeuger_new" RENAME TO "Waermeerzeuger";
DROP TYPE "Waermeerzeuger_old";
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" SET DEFAULT 'Niedertemperaturkessel';
COMMIT;
-- AlterEnum
BEGIN;
CREATE TYPE "art_new" AS ENUM ('Bitte_auswaehlen', 'Fenster', 'Dachfenster', 'Haustuer', 'Oberlicht', 'Aussenwand', 'Aussenawnd_zur_unbebeheizten_Garage', 'Dach', 'Flachdach', 'Decke_zum_unbebeheiztem_Dachraum', 'Boden_zu_unbebeheiztem_Keller', 'Boden_gegen_Erdreich');
ALTER TYPE "art" RENAME TO "art_old";
ALTER TYPE "art_new" RENAME TO "art";
DROP TYPE "art_old";
COMMIT;
-- DropEnum
DROP TYPE "neigung";

View File

@@ -0,0 +1,8 @@
-- CreateEnum
CREATE TYPE "Brennwertessel" AS ENUM ('GasHeizoel_vor_1987', 'GasHeizoel_von_1987_bis_1994', 'GasHeizoel_von_1995_bis_1999', 'GasHeizoel_nach_1999', 'Pellet_bis_105kW_nach_1994');
-- CreateEnum
CREATE TYPE "Niedertemperaturkessel" AS ENUM ('Gas_Spezial_Geblaese_Brennertausch_vor_1987', 'Gas_Spezial_Geblaese_Brennertausch_von_1987_bis_1994', 'Gas_Spezial_Geblaese_Brennertausch_nach_1994');
-- CreateEnum
CREATE TYPE "Standardkessel" AS ENUM ('Gas_Spezial_Geblaese_Brennertausch_vor_1987', 'Gas_Spezial_Geblaese_Brennertausch_von_1987_bis_1994', 'Gas_Spezial_Geblaese_Brennertausch_nach_1994', 'Umstell_Wechselbrand_Feststoffkessel_vor_1987', 'Umstell_Wechselbrand_Feststoffkessel_von_1987_bis_1994', 'Umstell_Wechselbrand_Feststoffkessel_nach_1994', 'Standardkessel_Pellet_Hackschnitzelkessel_nach_1994');

View File

@@ -0,0 +1,14 @@
-- AlterEnum
ALTER TYPE "Brennwertessel" ADD VALUE 'Bitte_auswaehlen';
-- AlterEnum
ALTER TYPE "Niedertemperaturkessel" ADD VALUE 'Bitte_auswaehlen';
-- AlterEnum
ALTER TYPE "Standardkessel" ADD VALUE 'Bitte_auswaehlen';
-- AlterEnum
ALTER TYPE "Waermeerzeuger" ADD VALUE 'Bitte_auswaehlen';
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "waerme_erzeugung_heizung_art_18599" TEXT;

View File

@@ -0,0 +1,2 @@
-- AlterEnum
ALTER TYPE "Lueftungskonzept" ADD VALUE 'Bitte_auswaehlen';

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "waerme_erzeugung_heizung_18599" SET DEFAULT 'Bitte_auswaehlen';

View File

@@ -0,0 +1,5 @@
-- CreateEnum
CREATE TYPE "Brennwertkessel" AS ENUM ('Bitte_auswaehlen', 'GasHeizoel_vor_1987', 'GasHeizoel_von_1987_bis_1994', 'GasHeizoel_von_1995_bis_1999', 'GasHeizoel_nach_1999', 'Pellet_bis_105kW_nach_1994');
-- DropEnum
DROP TYPE "Brennwertessel";

View File

@@ -0,0 +1,28 @@
/*
Warnings:
- The values [Pellet_bis_105kW_nach_1994] on the enum `Brennwertkessel` will be removed. If these variants are still used in the database, this will fail.
*/
-- CreateEnum
CREATE TYPE "Biomassekessel" AS ENUM ('Bitte_auswaehlen', 'Brennwertkessel_Pellet_bis_105kW_nach_1994', 'Standardkessel_Pellet_Hackschnitzelkessel_nach_1994');
-- CreateEnum
CREATE TYPE "Waermepumpe" AS ENUM ('Bitte_auswaehlen', 'Luft_Wasser_Waermepumpe_w_7', 'Luft_Wasser_Waermepumpe_w2', 'Luft_Wasser_Waermepumpe_w7', 'Sole_Wasser_Waermepumpe', 'Wasser_Wasser_Waermepumpe');
-- CreateEnum
CREATE TYPE "Umlaufwasserheizer" AS ENUM ('Bitte_auswaehlen', 'Umlaufwasserheizer_vor_1987', 'Kombikessel_mit_Kleinspeicher_nach_1994', 'Kombikessel_ohne_Kleinspeicher_nach_1994');
-- CreateEnum
CREATE TYPE "Fernwaerme" AS ENUM ('Bitte_auswaehlen', 'Fernwaerme_Heizkraftwerk_fossil', 'Fernwaerme_Heizkraftwerk_erneuerbar', 'Fernwaerme_Blockheizkraftwerk_fossil', 'Fernwaerme_Blockheizkraftwerk_erneuerbar', 'Primaerenergiefaktor_eingeben');
-- CreateEnum
CREATE TYPE "Blockheizkraftwerk" AS ENUM ('KWK_Erdgas', 'KWK_Heizoel');
-- AlterEnum
BEGIN;
CREATE TYPE "Brennwertkessel_new" AS ENUM ('Bitte_auswaehlen', 'GasHeizoel_vor_1987', 'GasHeizoel_von_1987_bis_1994', 'GasHeizoel_von_1995_bis_1999', 'GasHeizoel_nach_1999', 'Brennwertkessel_Pellet_bis_105kW_nach_1994');
ALTER TYPE "Brennwertkessel" RENAME TO "Brennwertkessel_old";
ALTER TYPE "Brennwertkessel_new" RENAME TO "Brennwertkessel";
DROP TYPE "Brennwertkessel_old";
COMMIT;

View File

@@ -0,0 +1,5 @@
-- CreateEnum
CREATE TYPE "Direktheizung" AS ENUM ('Bitte_auswaehlen', 'Elektro_Direktheizung_PI_Regler_mit_Optimierung', 'Elektro_Direktheizung_P_Regler_1K', 'Speicherheizung_ungeregelt', 'Speicherheizung_P_Regler_1K', 'Speicherheizung_PID_Regler');
-- CreateEnum
CREATE TYPE "Rohrnetztyp" AS ENUM ('Bitte_auswaehlen', 'I_Etagenringtyp', 'IIa_Etagenverteilertyp_Heizkoerper', 'IIb_Etagenverteilertyp_Fussbodenheizung', 'III_Steigestrangtyp', 'IV_Strahlungs_und_Luftheizung');

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "rohrnetztyp_18599" "Rohrnetztyp" NOT NULL DEFAULT 'Bitte_auswaehlen';

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "planungswerte_bauteil" JSONB;

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ADD COLUMN "planungswerte_heizung" JSONB;

View File

@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" ALTER COLUMN "planungswerte_heizung" SET DEFAULT '[{}]';

View File

@@ -0,0 +1,13 @@
/*
Warnings:
- You are about to drop the column `rohrnetztyp_18599` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
- You are about to drop the column `waerme_erzeugung_heizung_18599` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
- You are about to drop the column `waerme_erzeugung_heizung_art_18599` on the `BedarfsausweisWohnen` table. All the data in the column will be lost.
*/
-- AlterTable
ALTER TABLE "BedarfsausweisWohnen" DROP COLUMN "rohrnetztyp_18599",
DROP COLUMN "waerme_erzeugung_heizung_18599",
DROP COLUMN "waerme_erzeugung_heizung_art_18599",
ALTER COLUMN "planungswerte_bauteil" SET DEFAULT '[{}]';

View File

@@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"

1
prisma/null.ts Normal file
View File

@@ -0,0 +1 @@
export const x = 5

View File

@@ -0,0 +1,37 @@
import { generatorHandler } from "@prisma/generator-helper";
import fs from "fs";
import path from "path";
const header = `// This file was generated by a custom prisma generator, do not edit manually.\n`;
generatorHandler({
onManifest() {
return {
defaultOutput: "./enums/index.ts",
prettyName: "Prisma Enum Generator",
};
},
async onGenerate(options) {
const enums = options.dmmf.datamodel.enums;
const output = enums.map((e) => {
let enumString = `export const ${e.name} = {\n`;
e.values.forEach(({ name: value }) => {
enumString += ` ${value}: "${value}",\n`;
});
enumString += `} as const;\n\n`;
enumString += `export type ${e.name} = (typeof ${e.name})[keyof typeof ${e.name}];\n`;
return enumString;
});
const outputFile = options.generator.output;
if (!outputFile || !outputFile.value) {
throw new Error("No output file specified");
}
const outputPath = path.resolve(outputFile.value);
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
fs.writeFileSync(outputPath, header + output.join("\n"), "utf-8");
},
});

View File

@@ -0,0 +1,11 @@
model Anteilshaber {
id String @id @unique @db.VarChar(11)
rolle String? @db.VarChar
privilegien BigInt?
benutzer_id String
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
objekt_id String
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,14 @@
model ApiRequests {
id String @id @unique @db.VarChar(11)
date DateTime @default(now()) @db.Timestamp(6)
ip String @db.VarChar(50)
method String @db.VarChar(10)
path String @db.VarChar(100)
status Int
responseTime Float
responseSize Int
userAgent String @db.VarChar(500)
user_id String?
user Benutzer? @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,135 @@
enum Heizungsstatus {
BEHEIZT
UNBEHEIZT
NICHT_VORHANDEN
}
enum Lueftungskonzept {
Bitte_auswaehlen
Fensterlueftung
Schachtlueftung
LueftungsanlageMitWaermerueckgewinnung
LueftungsanlageOhneWaermerueckgewinnung
}
model Aufnahme {
id String @id @unique @db.VarChar(11)
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
/// @zod.describe("Art des Gebäudes und seiner primären Nutzungsart")
gebaeudetyp String? @db.VarChar
/// @zod.describe("Betrachteter Teil des Gebäudes, z.B. Gesamtgebäude, Wohnteil, Gewerbeteil")
gebaeudeteil String? @db.VarChar
/// @zod.describe("Alle Jahre in denen das Gebäude konstruiert oder grundlegend verändert wurde")
baujahr_gebaeude Int[]
/// @zod.describe("Alle Jahre in denen die Heizung eingebaut oder grundlegend verändert wurde")
baujahr_heizung Int[]
/// @zod.describe("Alle Jahre in denen die Klimaanlage eingebaut oder grundlegend verändert wurde")
baujahr_klima Int[]
/// @zod.describe("Anzahl der (Wohn)Einheiten im Gebäude")
einheiten Int?
/// @zod.describe("Wohnfläche bei Wohngebäuden, Nutzfläche bei Gewerbegebäuden")
flaeche Int?
/// @zod.describe("(energetische) Nutzfläche des Gebäudes. Bei Gewerbegebäuden entspricht Sie der Nutzfläche")
nutzflaeche Int?
/// @zod.describe("Falls das Gebäude energetisch saniert ist, sollte dieser Wert auf true stehen")
saniert Boolean?
/// @zod.describe("Ob ein Keller vorhanden, beheizt oder unbeheizt ist")
keller Heizungsstatus?
/// @zod.describe("Ob ein Dachgeschoss vorhanden, beheizt oder unbeheizt ist")
dachgeschoss Heizungsstatus?
/// @zod.describe("Art der Gebäudelüftung")
lueftung Lueftungskonzept?
/// @zod.describe("Art der Gebäudekühlung")
kuehlung String? @db.VarChar(50)
/// @zod.describe("Prozentualer Leerstand des Gebäudes in einem durchschnittlichen Jahr")
leerstand Int?
/// @zod.describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
alternative_heizung Boolean?
/// @zod.describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
alternative_warmwasser Boolean?
/// @zod.describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
alternative_lueftung Boolean?
/// @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen")
alternative_kuehlung Boolean?
/// @zod.describe("Datum an dem der Kunde die Aufnahme erstellt hat")
erstellungsdatum DateTime? @default(now())
/// @zod.describe("Falls das Gebäude über eine Zentralbeheizung verfügt, sollte dieser Wert auf true stehen")
zentralheizung Boolean?
/// @zod.describe("Falls das Gebäude über ein Solarsystem für Warmwasser verfügt, sollte dieser Wert auf true stehen")
solarsystem_warmwasser Boolean?
/// @zod.describe("Falls die Warmwasserrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen")
warmwasser_rohre_gedaemmt Boolean?
/// @zod.describe("Falls das Gebäude über einen Niedertemperaturkessel verfügt, sollte dieser Wert auf true stehen")
niedertemperatur_kessel Boolean?
/// @zod.describe("Falls das Gebäude über einen Brennwertkessel verfügt, sollte dieser Wert auf true stehen")
brennwert_kessel Boolean?
/// @zod.describe("Falls die Heizungsrohre des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen")
heizungsrohre_gedaemmt Boolean?
standard_kessel Boolean?
/// @zod.describe("Falls das Gebäude über eine Wärmepumpe verfügt, sollte dieser Wert auf true stehen")
waermepumpe Boolean?
/// @zod.describe("Falls das Gebäude über einen Raumtemperaturregler verfügt, sollte dieser Wert auf true stehen")
raum_temperatur_regler Boolean?
/// @zod.describe("Falls das Gebäude über eine Photovoltaikanlage verfügt, sollte dieser Wert auf true stehen")
photovoltaik Boolean?
/// @zod.describe("Falls das Gebäude über einen Durchlauferhitzer verfügt, sollte dieser Wert auf true stehen")
durchlauf_erhitzer Boolean?
einzelofen Boolean?
/// @zod.describe("Falls das Gebäude über eine Zirkulationspumpe verfügt, sollte dieser Wert auf true stehen")
zirkulation Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes einfach gedämmt sind, sollte dieser Wert auf true stehen")
einfach_verglasung Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes dreifach gedämmt sind, sollte dieser Wert auf true stehen")
dreifach_verglasung Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes teilweise undicht sind, sollte dieser Wert auf true stehen")
fenster_teilweise_undicht Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes doppelt gedämmt sind, sollte dieser Wert auf true stehen")
doppel_verglasung Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes dicht sind, sollte dieser Wert auf true stehen")
fenster_dicht Boolean?
/// @zod.describe("Falls das Gebäude über gedämmte Rolllädenkästen verfügt, sollte dieser Wert auf true stehen")
rolllaeden_kaesten_gedaemmt Boolean?
/// @zod.describe("Falls die Fenster des Gebäudes isolier Verglasung haben, sollte dieser Wert auf true stehen")
isolier_verglasung Boolean?
/// @zod.describe("Falls die Türen des Gebäudes undicht sind, sollte dieser Wert auf true stehen")
tueren_undicht Boolean?
/// @zod.describe("Falls die Türen des Gebäudes dicht sind, sollte dieser Wert auf true stehen")
tueren_dicht Boolean?
/// @zod.describe("Falls das Dachgeschoss des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen")
dachgeschoss_gedaemmt Boolean?
/// @zod.describe("Falls die Kellerdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen")
keller_decke_gedaemmt Boolean?
/// @zod.describe("Falls die Kellerwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen")
keller_wand_gedaemmt Boolean?
/// @zod.describe("Falls die Außenwände des Gebäudes gedämmt sind, sollte dieser Wert auf true stehen")
aussenwand_gedaemmt Boolean?
/// @zod.describe("Falls die oberste Geschossdecke des Gebäudes gedämmt ist, sollte dieser Wert auf true stehen")
oberste_geschossdecke_gedaemmt Boolean?
/// @zod.describe("Falls die Außenwände des Gebäudes mindestens 12cm gedämmt sind, sollte dieser Wert auf true stehen")
aussenwand_min_12cm_gedaemmt Boolean?
/// @zod.describe("Falls das Dachgeschoss des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen")
dachgeschoss_min_12cm_gedaemmt Boolean?
/// @zod.describe("Falls die oberste Geschossdecke des Gebäudes mindestens 12cm gedämmt ist, sollte dieser Wert auf true stehen")
oberste_geschossdecke_min_12cm_gedaemmt Boolean?
events Event[]
bilder Bild[]
unterlagen Unterlage[]
bedarfsausweise_wohnen BedarfsausweisWohnen[]
verbrauchsausweise_gewerbe VerbrauchsausweisGewerbe[]
verbrauchsausweise_wohnen VerbrauchsausweisWohnen[]
geg_nachweise_wohnen GEGNachweisWohnen[]
geg_nachweise_gewerbe GEGNachweisGewerbe[]
bedarfsausweise_gewerbe BedarfsausweisGewerbe[]
objekt_id String
objekt Objekt @relation(fields: [objekt_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,44 @@
model BedarfsausweisGewerbe {
id String @id @unique @db.VarChar(11)
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
ausstellgrund Ausstellgrund?
/// @zod.describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen")
keller_beheizt Boolean?
/// @zod.describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
abluftanlage Boolean? @default(false)
zu_abluftanlage Boolean? @default(false)
konditionierung_der_zuluft Boolean? @default(false)
luftheizung Boolean? @default(false)
hallenheizung Boolean? @default(false)
dunkelstrahler Boolean? @default(false)
direktheizung Boolean? @default(false)
infrarotstrahler Boolean? @default(false)
fussbodenheizung Boolean? @default(false)
bauteilaktivierung Boolean? @default(false)
klimatisierung Boolean? @default(false)
nachweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(BedarfsausweisGewerbe)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
/// @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)
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
geg_einpreisung_id String? @unique
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,278 @@
// 18599
enum Auslegungstemperatur {
VorlaufRuecklauf9070
VorlaufRuecklauf7055
VorlaufRuecklauf5545
VorlaufRuecklauf3528
}
enum LuftDichtheit {
KategorieImitGeplanterDichtheitspruefung
KategorieIIneuesGebaeude
KategorieIIIGebaeudebestand
KategorieVImitoffensichtlichenUndichtheiten
gemessenerLuftwechseln50
}
enum LueftungsArt {
FensterundInfiltration // Standardwert
keineFensternurInfiltration // fuer uns erstmal nicht relevant
keineFensterkeineInfiltration // fuer uns erstmal nicht relevant
}
enum LueftungsAnlage {
Abluftanlage
ZuUndAbluftanlage
OhnemechLueftung
LuftHeizungsanlage
Zuluftsystem
}
enum Waermeerzeuger {
Bitte_auswaehlen
Standardkessel
Brennwertkessel
Niedertemperaturkessel
Biomassekessel
Umlaufwasserheizer
Fernwaerme
Waermepumpe
Blockheizkraftwerk
Direktheizung
}
enum Brennwertkessel {
Bitte_auswaehlen
GasHeizoel_vor_1987
GasHeizoel_von_1987_bis_1994
GasHeizoel_von_1995_bis_1999
GasHeizoel_nach_1999
Brennwertkessel_Pellet_bis_105kW_nach_1994
}
enum Niedertemperaturkessel {
Bitte_auswaehlen
Gas_Spezial_Geblaese_Brennertausch_vor_1987
Gas_Spezial_Geblaese_Brennertausch_von_1987_bis_1994
Gas_Spezial_Geblaese_Brennertausch_nach_1994
}
enum Standardkessel {
Bitte_auswaehlen
Gas_Spezial_Geblaese_Brennertausch_vor_1987
Gas_Spezial_Geblaese_Brennertausch_von_1987_bis_1994
Gas_Spezial_Geblaese_Brennertausch_nach_1994
Umstell_Wechselbrand_Feststoffkessel_vor_1987
Umstell_Wechselbrand_Feststoffkessel_von_1987_bis_1994
Umstell_Wechselbrand_Feststoffkessel_nach_1994
Standardkessel_Pellet_Hackschnitzelkessel_nach_1994
}
enum Biomassekessel {
Bitte_auswaehlen
Brennwertkessel_Pellet_bis_105kW_nach_1994
Standardkessel_Pellet_Hackschnitzelkessel_nach_1994
}
enum Waermepumpe {
Bitte_auswaehlen
Luft_Wasser_Waermepumpe_w_7
Luft_Wasser_Waermepumpe_w2
Luft_Wasser_Waermepumpe_w7
Sole_Wasser_Waermepumpe
Wasser_Wasser_Waermepumpe
}
enum Umlaufwasserheizer {
Bitte_auswaehlen
Umlaufwasserheizer_vor_1987
Kombikessel_mit_Kleinspeicher_nach_1994
Kombikessel_ohne_Kleinspeicher_nach_1994
}
enum Fernwaerme {
Bitte_auswaehlen
Fernwaerme_Heizkraftwerk_fossil
Fernwaerme_Heizkraftwerk_erneuerbar
Fernwaerme_Blockheizkraftwerk_fossil
Fernwaerme_Blockheizkraftwerk_erneuerbar
Primaerenergiefaktor_eingeben
}
enum Blockheizkraftwerk {
KWK_Erdgas
KWK_Heizoel
}
enum Direktheizung {
Bitte_auswaehlen
Elektro_Direktheizung_PI_Regler_mit_Optimierung
Elektro_Direktheizung_P_Regler_1K
Speicherheizung_ungeregelt
Speicherheizung_P_Regler_1K
Speicherheizung_PID_Regler
}
enum Pufferspeicher {
Bitte_auswaehlen
nicht_vorhanden
indirekt_beheizt
elektrisch_beheizt
gasbeheizt
bivalenter_speicher
}
enum Rohrnetztyp {
Bitte_auswaehlen
I_Etagenringtyp
IIa_Etagenverteilertyp_Heizkoerper
IIb_Etagenverteilertyp_Fussbodenheizung
III_Steigestrangtyp
IV_Strahlungs_und_Luftheizung
}
enum orientierung {
Bitte_auswaehlen
Sued
Suedost
Suedwest
Ost
West
Nordwest
Nordost
Nord
horizontal
}
enum art {
Bitte_auswaehlen
Fenster
Dachfenster
Haustuer
Oberlicht
Aussenwand
Aussenawnd_zur_unbebeheizten_Garage
Dach
Flachdach
Decke_zum_unbebeheiztem_Dachraum
Boden_zu_unbebeheiztem_Keller
Boden_gegen_Erdreich
}
model BedarfsausweisWohnen {
id String @id @unique @db.VarChar(11)
alte_ausweis_id Int?
benutzer_id String?
ausstellgrund Ausstellgrund?
registriernummer String? @db.VarChar
alternative_heizung Boolean?
alternative_warmwasser Boolean?
alternative_lueftung Boolean?
alternative_kuehlung Boolean?
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
anzahl_vollgeschosse Int?
geschosshoehe Float?
anzahl_gauben Int?
breite_gauben Float?
masse_a Float?
masse_b Float?
masse_c Float?
masse_d Float?
masse_e Float?
masse_f Float?
fensterflaeche_so_sw Float?
fensterflaeche_nw_no Float?
aussenwandflaeche_unbeheizt Float?
dachflaeche Float?
deckenflaeche Float?
dach_u_wert Float?
decke_u_wert Float?
aussenwand_flaeche Float?
aussenwand_u_wert Float?
fussboden_flaeche Float?
fussboden_u_wert Float?
volumen Float?
dicht Boolean?
fenster_flaeche_1 Float?
fenster_art_1 Float?
fenster_flaeche_2 Float?
fenster_art_2 Float?
dachfenster_flaeche Float?
dachfenster_art Float?
haustuer_flaeche Float?
haustuer_art Float?
dach_bauart String? @db.VarChar
decke_bauart String? @db.VarChar
dach_daemmung Float?
decke_daemmung Float?
aussenwand_daemmung Float?
boden_daemmung Float?
aussenwand_bauart String? @db.VarChar
boden_bauart String? @db.VarChar
warmwasser_verteilung String? @db.VarChar
warmwasser_speicherung String? @db.VarChar
warmwasser_erzeugung String? @db.VarChar
heizung_zentral Boolean?
heizung_verteilung String? @db.VarChar
heizung_speicherung String? @db.VarChar
waerme_erzeugung_heizung String? @db.VarChar
planungswerte_bauteil Json? @default("[{}]")
planungswerte_heizung Json? @default("[{}]")
anteil_zusatzheizung Float?
kollektor_flaeche Float?
ausgestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Ausweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
/// @zod.describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung")
prueftext String? @db.VarChar(1000)
beschreibung String? @db.Text
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
kontrolldatei_angefragt Boolean? @default(false)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
pruefpunkt_heizungsalter Boolean? @default(false)
pruefpunkt_verbrauch_niedrig Boolean? @default(false)
pruefpunkt_verbrauch_hoch Boolean? @default(false)
pruefpunkt_verbrauch_null Boolean? @default(false)
pruefpunkt_verbrauch_abweichung Boolean? @default(false)
pruefpunkt_wohnflaeche_einheiten Boolean? @default(false)
pruefpunkt_strom_null Boolean? @default(false)
pruefpunkt_strom_abweichung Boolean? @default(false)
pruefpunkt_plz Boolean? @default(false)
pruefpunkt_heizungsanlage Boolean? @default(false)
pruefpunkt_anteil_warmwasser Boolean? @default(false)
pruefpunkt_wohnflaeche Boolean? @default(false)
pruefpunkt_geometrie Boolean? @default(false)
pruefpunkt_fenster Boolean? @default(false)
ausweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(BedarfsausweisWohnen)
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,56 @@
enum BenutzerRolle {
USER
ADMIN
}
model Benutzer {
id String @id @unique @db.VarChar(11)
alte_id Int?
name String? @db.VarChar(100)
vorname String? @db.VarChar(50)
email String @unique(map: "benutzer_email_idx") @db.VarChar(255)
passwort String @db.VarChar(255)
profilbild String? @db.VarChar
plz String? @db.VarChar(5)
ort String? @db.VarChar(50)
adresse String? @db.VarChar(150)
telefon String? @db.VarChar(50)
anrede String? @db.VarChar(50)
rolle BenutzerRolle @default(USER)
firma String?
lex_office_id String?
verified Boolean @default(false)
Anteilshaber Anteilshaber[] @ignore
BedarfsausweisWohnen BedarfsausweisWohnen[]
documenttemplates documenttemplates[]
objekte Objekt[]
rechnungen Rechnung[]
tokens tokens[]
VerbrauchsausweisGewerbe VerbrauchsausweisGewerbe[]
VerbrauchsausweisWohnen VerbrauchsausweisWohnen[]
ApiRequests ApiRequests[]
RefreshTokens RefreshTokens[]
aufnahmen Aufnahme[]
// ---------------------------------- GEG ----------------------------------
geg_einpreisungen GEGEinpreisung[]
geg_nachweise_gewerbe GEGNachweisGewerbe[]
geg_nachweise_wohnen GEGNachweisWohnen[]
bedarfsausweise_gewerbe BedarfsausweisGewerbe[]
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
ErstellteTickets Tickets[] @relation("ErstellteTickets")
BearbeiteteTickets Tickets[] @relation("BearbeiteteTickets")
events Event[]
@@map("benutzer")
}

20
prisma/schema/Bild.prisma Normal file
View File

@@ -0,0 +1,20 @@
enum BilderKategorie {
Heizung
Fenster
Gebaeude
Daemmung
AnlagenTechnik
}
model Bild {
id String @id @unique @db.VarChar(11)
kategorie BilderKategorie
name String
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
aufnahme_id String?
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,19 @@
// Dieses Model wird für getriggerte Events verwendet
// Hier werden beispielsweise Events wie "Nachricht Verschickt" gespeichert.
// Diese Events werden dann in der Admin-Oberfläche angezeigt.
model Event {
id String @id @unique @db.VarChar(11)
date DateTime @default(now()) @db.Timestamp(6)
title String @db.VarChar(255)
description String? @db.Text
// Verlinkung des Gebäudes
aufnahme_id String
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
// Verlinkung des Benutzers
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,35 @@
enum Einpreisungsstatus {
open
canceled
pending
expired
}
model GEGEinpreisung {
id String @id @unique @db.VarChar(11)
empfaenger String? @db.VarChar
strasse String? @db.VarChar
plz String? @db.VarChar
ort String? @db.VarChar
zusatzzeile String? @db.VarChar
telefon String? @db.VarChar
email String? @db.VarChar
abweichende_versand_adresse Boolean? @default(false)
versand_empfaenger String? @db.VarChar
versand_strasse String? @db.VarChar
versand_plz String? @db.VarChar
versand_ort String? @db.VarChar
versand_zusatzzeile String? @db.VarChar
status Einpreisungsstatus
geg_nachweis_wohnen GEGNachweisWohnen?
geg_nachweis_gewerbe GEGNachweisGewerbe?
bedarfsausweis_gewerbe BedarfsausweisGewerbe?
/// @zod.describe("Die ID des Benutzers, der diese Einpreisung bekommt.")
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,35 @@
model GEGNachweisGewerbe {
id String @id @unique @db.VarChar(11)
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
ausstellgrund Ausstellgrund?
/// @zod.describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen")
keller_beheizt Boolean?
/// @zod.describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
/// @zod.describe("Beschreibung des Bauvorhabens")
beschreibung String? @db.Text
nachweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(GEGNachweisGewerbe)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
/// @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)
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
geg_einpreisung_id String? @unique
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,35 @@
model GEGNachweisWohnen {
id String @id @unique @db.VarChar(11)
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
ausstellgrund Ausstellgrund?
/// @zod.describe("Falls der Keller des Gebäudes beheizt wird, sollte dieser Wert auf true stehen")
keller_beheizt Boolean?
/// @zod.describe("Falls die Nachweisanfrage storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Nachweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Nachweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
/// @zod.describe("Beschreibung des Bauvorhabens")
beschreibung String? @db.Text
nachweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(GEGNachweisWohnen)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
/// @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)
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
geg_einpreisung_id String? @unique
geg_einpreisung GEGEinpreisung? @relation(fields: [geg_einpreisung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,11 @@
model Klimafaktoren {
id Int @id @default(autoincrement())
plz String @db.VarChar(5)
month Int
year Int
klimafaktor Float @default(1)
// Mithilfe eines composite keys können wir einfach den Monat und das Jahr mit der Postleitzahl verknüpfen
// somit müssen wir nicht mehr eine Zeile für jeden Monat anlegen.
@@unique([plz, month, year])
}

View File

@@ -0,0 +1,20 @@
model Objekt {
id String @id @unique @db.VarChar(11)
latitude Float?
longitude Float?
/// @zod.describe("Postleitzahl des Gebäudes")
plz String? @db.VarChar(5)
/// @zod.describe("Ort des Gebäudes")
ort String? @db.VarChar(50)
/// @zod.describe("Adresse (Straße und Hausnummer) des Gebäudes")
adresse String? @db.VarChar(100)
erstellungsdatum DateTime? @default(now())
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id])
aufnahmen Aufnahme[]
anteilshaber Anteilshaber[]
}

View File

@@ -0,0 +1,9 @@
model Postleitzahlen {
id Int @id @default(autoincrement())
plz String @db.VarChar(5)
stadt String @db.VarChar(100)
bundesland String @db.VarChar(100)
landkreis String @db.VarChar(100)
lat Float
lon Float
}

View File

@@ -0,0 +1,73 @@
enum Bezahlmethoden {
paypal
giropay
sofort
creditcard
rechnung
}
enum Rechnungsstatus {
open
canceled
pending
authorized
expired
failed
paid
}
enum AusweisTyp {
Standard
standardXL
Beratung
BeratungXL
Offline
OfflineXL
}
model Rechnung {
id String @id @unique @db.VarChar(11)
alte_id Int?
empfaenger String? @db.VarChar
strasse String? @db.VarChar
plz String? @db.VarChar
ort String? @db.VarChar
zusatzzeile String? @db.VarChar
telefon String? @db.VarChar
email String? @db.VarChar
abweichende_versand_adresse Boolean? @default(false)
versand_empfaenger String? @db.VarChar
versand_strasse String? @db.VarChar
versand_plz String? @db.VarChar
versand_ort String? @db.VarChar
versand_zusatzzeile String? @db.VarChar
bezahlmethode Bezahlmethoden
status Rechnungsstatus
services Service[]
betrag Float
erstellt_am DateTime @default(now())
bezahlt_am DateTime?
storniert_am DateTime?
transaktions_referenz String? @db.VarChar
partner_code String?
lex_office_id String?
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
benutzer_id String
benutzer Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
verbrauchsausweis_wohnen VerbrauchsausweisWohnen?
verbrauchsausweis_gewerbe VerbrauchsausweisGewerbe?
bedarfsausweis_wohnen BedarfsausweisWohnen?
bedarfsausweis_gewerbe BedarfsausweisGewerbe?
geg_nachweis_gewerbe GEGNachweisGewerbe?
geg_nachweis_wohnen GEGNachweisWohnen?
}

View File

@@ -0,0 +1,13 @@
model RefreshTokens {
id Int @id @default(autoincrement())
token String @unique
// 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.
ip String
expiry DateTime
// Relationen
benutzer_id String
user Benutzer @relation(fields: [benutzer_id], references: [id], onDelete: Cascade)
}

View File

@@ -0,0 +1,29 @@
enum TicketStatus {
OFFEN
IN_BEARBEITUNG
IN_WARTESCHLEIFE
GESCHLOSSEN
GELOEST
}
model Tickets {
id String @id @unique @db.VarChar(11)
created_at DateTime @default(now())
updated_at DateTime? @updatedAt
deleted_at DateTime?
// Attribute
status TicketStatus @default(OFFEN)
titel String
beschreibung String
metadata Json?
email String
bearbeiter_id String?
prioritaet Int? @default(0)
// Relationen
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], name: "ErstellteTickets")
bearbeiter Benutzer? @relation(fields: [bearbeiter_id], references: [id], name: "BearbeiteteTickets")
}

View File

@@ -0,0 +1,15 @@
enum UnterlagenKategorie {
Grundriss
Sonstiges
}
model Unterlage {
id String @id @unique @db.VarChar(11)
name String?
kategorie String?
mime String
aufnahme_id String?
aufnahme Aufnahme? @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,103 @@
model VerbrauchsausweisGewerbe {
id String @id @unique @db.VarChar(11)
alte_ausweis_id Int?
ausstellgrund Ausstellgrund?
registriernummer String? @db.VarChar
zusaetzliche_heizquelle Boolean?
einheit_1 String? @db.VarChar(50)
einheit_2 String? @db.VarChar(50)
startdatum DateTime? @db.Timestamp(6)
verbrauch_1 Int?
verbrauch_2 Int?
verbrauch_3 Int?
verbrauch_4 Int?
verbrauch_5 Int?
verbrauch_6 Int?
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
brennstoff_1 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
brennstoff_2 String? @db.VarChar(50)
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
strom_1 Int?
strom_2 Int?
strom_3 Int?
stromverbrauch_enthaelt_heizung Boolean?
stromverbrauch_enthaelt_warmwasser Boolean?
stromverbrauch_enthaelt_lueftung Boolean?
stromverbrauch_enthaelt_beleuchtung Boolean?
stromverbrauch_enthaelt_kuehlung Boolean?
stromverbrauch_enthaelt_sonstige String? @db.VarChar(255)
kuehlung_enthalten Boolean?
anteil_kuehlung_1 Float?
anteil_kuehlung_2 Float?
keller_beheizt Boolean?
alternative_heizung Boolean?
alternative_warmwasser Boolean?
alternative_lueftung Boolean?
alternative_kuehlung Boolean?
warmwasser_enthalten Boolean?
/// @zod.describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen")
warmwasser_anteil_bekannt Boolean?
anteil_warmwasser_1 Float?
anteil_warmwasser_2 Float?
ausgestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Ausweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
/// @zod.describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung")
prueftext String? @db.VarChar(1000)
beschreibung String? @db.Text
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
kontrolldatei_angefragt Boolean? @default(false)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
ausweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(VerbrauchsausweisGewerbe)
pruefpunkt_heizungsalter Boolean? @default(false)
pruefpunkt_verbrauch_niedrig Boolean? @default(false)
pruefpunkt_verbrauch_hoch Boolean? @default(false)
pruefpunkt_verbrauch_null Boolean? @default(false)
pruefpunkt_verbrauch_abweichung Boolean? @default(false)
pruefpunkt_wohnflaeche_einheiten Boolean? @default(false)
pruefpunkt_strom_null Boolean? @default(false)
pruefpunkt_strom_abweichung Boolean? @default(false)
pruefpunkt_plz Boolean? @default(false)
pruefpunkt_heizungsanlage Boolean? @default(false)
pruefpunkt_anteil_warmwasser Boolean? @default(false)
pruefpunkt_wohnflaeche Boolean? @default(false)
pruefpunkt_geometrie Boolean? @default(false)
pruefpunkt_fenster Boolean? @default(false)
benutzer_id String?
benutzer Benutzer? @relation(fields: [benutzer_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,108 @@
model VerbrauchsausweisWohnen {
/// @zod.describe("ID des Ausweises")
id String @id @unique @db.VarChar(11)
alte_ausweis_id Int?
/// @zod.describe("Ausstellgrund wie z.B. Vermietung oder Verkauf")
ausstellgrund Ausstellgrund?
/// @zod.describe("Die Registriernummer des Ausweises")
registriernummer String? @db.VarChar
/// @zod.describe("Falls eine sekundäre Heizquelle existiert, sollte dieser Wert auf true stehen")
zusaetzliche_heizquelle Boolean?
/// @zod.describe("Einheit des Energieträgers der primären Heizquelle")
einheit_1 String? @db.VarChar(50)
/// @zod.describe("Einheit des Energieträgers der sekundären Heizquelle")
einheit_2 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der primären Energiequelle")
brennstoff_1 String? @db.VarChar(50)
/// @zod.describe("Genutzer Brennstoff der sekundären Energiequelle")
brennstoff_2 String? @db.VarChar(50)
/// @zod.describe("Die aus der Berechnung hervorgehende Energieeffizienzklasse des Gebäudes")
energieeffizienzklasse String? @db.VarChar(5)
/// @zod.describe("Datum an dem der Aussteller den Ausweis ausgestellt hat")
ausstellungsdatum DateTime?
boxpruefung Boolean? @default(false)
startdatum DateTime? @db.Timestamptz(6)
/// @zod.describe("Energieverbrauch der primären Heizquelle im ersten der drei Verbrauchsjahre")
verbrauch_1 Int?
/// @zod.describe("Energieverbrauch der primären Heizquelle im zweiten der drei Verbrauchsjahre")
verbrauch_2 Int?
/// @zod.describe("Energieverbrauch der primären Heizquelle im letzten der drei Verbrauchsjahre")
verbrauch_3 Int?
/// @zod.describe("Energieverbrauch der sekund̈́ären Heizquelle im ersten der drei Verbrauchsjahre")
verbrauch_4 Int?
/// @zod.describe("Energieverbrauch der sekund̈́ären Heizquelle im zweiten der drei Verbrauchsjahre")
verbrauch_5 Int?
/// @zod.describe("Energieverbrauch der sekund̈́ären Heizquelle im letzten der drei Verbrauchsjahre")
verbrauch_6 Int?
/// @zod.describe("Falls Warmwasser im Verbrauchswert enthalten ist, sollte dieser Wert auf true stehen")
warmwasser_enthalten Boolean?
/// @zod.describe("Falls der Warmwasser Anteil am Verbrauch bekannt ist, sollte dieser Wert auf true stehen")
warmwasser_anteil_bekannt Boolean?
/// @zod.describe("Der Faktor mit dem die Wohnfläche erhöht wird wenn die beheizte Gesamtfläche (energetische Nutzfläche) unbekannt ist.")
faktorKeller Float?
/// @zod.describe("Falls der Heizungsverbrauch alternative Energieversorgungssysteme beinhaltet, sollte dieser Wert auf true stehen.")
alternative_heizung Boolean?
/// @zod.describe("Falls der Warmwasserverbrauch alternative Energieversorgungssysteme (z.B. Solarsystem, Wärmepumpe, etc.) beinhaltet, sollte dieser Wert auf true stehen.")
alternative_warmwasser Boolean?
/// @zod.describe("Falls die Lüftung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen.")
alternative_lueftung Boolean?
/// @zod.describe("Falls die Kühlung alternative Energieversorgungssysteme beinhaltet sollte dieser Wert auf true stehen.")
alternative_kuehlung Boolean?
/// @zod.describe("Anteil des Warmwassers am Gesamtverbrauch der primären Energiequelle in Prozent")
anteil_warmwasser_1 Float?
/// @zod.describe("Anteil des Warmwassers am Gesamtverbrauch der sekundären Energiequelle in Prozent")
anteil_warmwasser_2 Float?
ausgestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis storniert wurde, sollte dieser Wert auf true stehen")
storniert Boolean? @default(false)
/// @zod.describe("Falls der Ausweis bestellt wurde, sollte dieser Wert auf true stehen")
bestellt Boolean? @default(false)
/// @zod.describe("Falls der Ausweis vom Aussteller zurückgestellt wurde, sollte dieser Wert auf true stehen")
zurueckgestellt Boolean? @default(false)
/// @zod.describe("Durch den Kunden hinzugefügte Anmerkung zur Vorabprüfung")
prueftext String? @db.VarChar(1000)
beschreibung String? @db.Text
/// @zod.describe("Ob bei der Anfrage der Registriernummer eine Kontrolldatei angefragt wurde")
kontrolldatei_angefragt Boolean? @default(false)
ausweistyp AusweisTyp @default(Standard)
ausweisart Ausweisart @default(VerbrauchsausweisWohnen)
created_at DateTime @default(now())
updated_at DateTime @updatedAt @default(now())
pruefpunkt_heizungsalter Boolean? @default(false)
pruefpunkt_verbrauch_niedrig Boolean? @default(false)
pruefpunkt_verbrauch_hoch Boolean? @default(false)
pruefpunkt_verbrauch_null Boolean? @default(false)
pruefpunkt_verbrauch_abweichung Boolean? @default(false)
pruefpunkt_wohnflaeche_einheiten Boolean? @default(false)
pruefpunkt_strom_null Boolean? @default(false)
pruefpunkt_strom_abweichung Boolean? @default(false)
pruefpunkt_plz Boolean? @default(false)
pruefpunkt_heizungsanlage Boolean? @default(false)
pruefpunkt_anteil_warmwasser Boolean? @default(false)
pruefpunkt_wohnflaeche Boolean? @default(false)
pruefpunkt_geometrie Boolean? @default(false)
pruefpunkt_fenster Boolean? @default(false)
/// @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)
rechnung_id String? @unique
rechnung Rechnung? @relation(fields: [rechnung_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
/// @zod.describe("ID der korrespondierenden Gebäudeaufnahme")
aufnahme_id String @unique
aufnahme Aufnahme @relation(fields: [aufnahme_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
}

View File

@@ -0,0 +1,15 @@
model documenttemplates {
id Int @id(map: "PK_DOCUMENTTEMPLATES") @default(autoincrement())
name String @db.VarChar(100)
shortdescription String @db.VarChar(100)
longdescription String @db.VarChar(5000)
user_id String
is_private Boolean @default(true)
documenttype Int
filename String @db.VarChar(100)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @default(now()) @db.Timestamp(0)
benutzer Benutzer @relation(fields: [user_id], references: [id], onDelete: Cascade, map: "benutzer_fk")
documenttypes documenttypes @relation(fields: [documenttype], references: [id], onDelete: Cascade, map: "documenttypes_fk")
}

View File

@@ -0,0 +1,8 @@
model documenttypes {
id Int @id(map: "PK_DOCUMENTTYPES") @default(autoincrement())
name String @db.VarChar(100)
shortdescription String @db.VarChar(100)
longdescription String @db.VarChar(5000)
documenttemplates documenttemplates[]
}

View File

@@ -0,0 +1,52 @@
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "debian-openssl-1.1.x"]
previewFeatures = ["prismaSchemaFolder"]
}
generator zod {
provider = "bunx zod-prisma"
output = "../../src/generated/zod"
relationModel = false
modelCase = "PascalCase"
modelSuffix = "Schema"
useDecimalJs = false
imports = ""
prismaJsonNullability = true
useNullish = true
}
generator enum {
provider = "tsx ./prisma/prisma-enum-generator.ts"
output = "../../src/generated/enums.ts"
}
datasource db {
provider = "postgresql"
url = env("POSTGRES_DATABASE_URL")
}
enum Ausstellgrund {
Neubau
Vermietung
Verkauf
Modernisierung
Sonstiges
}
enum Ausweisart {
VerbrauchsausweisWohnen
VerbrauchsausweisGewerbe
BedarfsausweisWohnen
BedarfsausweisGewerbe
GEGNachweisWohnen
GEGNachweisGewerbe
}
enum Service {
Telefonberatung
Aushang
Qualitaetsdruck
SameDay
}

View File

@@ -0,0 +1,11 @@
model tokens {
id Int @id(map: "PK_TOKENS") @default(autoincrement())
token String @db.VarChar(36)
user_id String
date_created DateTime @default(now()) @db.Timestamp(6)
last_used DateTime @default(now()) @db.Timestamp(6)
times_used Int @default(0)
permissions Int @default(0)
benutzer Benutzer @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "fk_benutzer_tokens_user_id")
}

384
prisma/seed.ts Normal file
View File

@@ -0,0 +1,384 @@
// Das wird ausgeführt, wenn wir `npx prisma db seed` ausführen
// Hier können wir unsere Datenbank mit Beispieldaten füllen
// Mehr Infos: https://www.prisma.io/docs/orm/prisma-migrate/workflows/seeding
import { PrismaClient } from "@prisma/client";
import crypto from "node:crypto";
import { faker } from "@faker-js/faker";
import { Enums } from "../src/lib/client/prisma";
import moment from "moment";
function hashPassword(password: string): string {
const salt = crypto.randomBytes(16).toString("hex");
const hash = hashWithGivenSalt(password, salt) + salt;
return hash;
}
function hashWithGivenSalt(password: string, salt: string): string {
const hash = crypto.scryptSync(password, salt, 32).toString("hex");
return hash;
}
const prisma = new PrismaClient({
log: ["warn", "error"],
errorFormat: "pretty",
datasources: {
db: {
url: process.env.POSTGRES_DATABASE_URL,
},
},
});
// Wir wollen erstmal das Backup mit den Klimafaktoren und der PLZ Liste einfuegen.
// Dazu muessen wir die Tabelle leeren.
await prisma.klimafaktoren.deleteMany({
where: {
id: { not: 0 },
},
});
await prisma.postleitzahlen.deleteMany({
where: {
id: { not: 0 },
},
});
// Jetzt koennen wir die Daten aus dem Backup einlesen.
const klimafaktoren = await Bun.file("./backup/klimafaktoren.json").json();
await prisma.klimafaktoren.createMany({
data: klimafaktoren.map((klimafaktor: [number, number, number, string]) => {
return {
plz: klimafaktor[3],
month: klimafaktor[1],
year: klimafaktor[0],
klimafaktor: klimafaktor[2],
};
}),
});
const postleitzahlen = await Bun.file("./backup/postleitzahlen.json").json();
await prisma.postleitzahlen.createMany({
data: postleitzahlen.map(
(postleitzahl: {
plz: string;
ort: string;
landkreis: string;
bundesland: string;
lat: number;
lon: number;
}) => {
return {
plz: postleitzahl.plz,
stadt: postleitzahl.ort,
landkreis: postleitzahl.landkreis,
bundesland: postleitzahl.bundesland,
lat: postleitzahl.lat,
lon: postleitzahl.lon,
};
}
),
});
// Admin erstellen
await prisma.benutzer.create({
data: {
email: "admin@ib-cornelsen.de",
passwort: hashPassword("passwort"),
rolle: "ADMIN",
name: "Admin",
vorname: "Admin",
adresse: "Adminstraße 1",
plz: "12345",
id: "USADMIN1"
},
});
// Test Benutzer erstellen
await prisma.benutzer.create({
data: {
email: "user@ib-cornelsen.de",
passwort: hashPassword("passwort"),
rolle: "USER",
name: "User",
vorname: "User",
adresse: "Userstraße 1",
plz: "12345",
id: "USUSER01"
},
});
// Benutzer erstellen
// for (let i = 0; i < 10; i++) {
// let firstName = faker.person.firstName();
// let lastName = faker.person.lastName();
// const benutzer = await prisma.benutzer.create({
// data: {
// email: faker.internet.email({
// firstName: firstName,
// lastName: lastName,
// }),
// passwort: hashPassword(faker.internet.password()),
// name: lastName,
// vorname: firstName,
// adresse: faker.location.street(),
// plz: faker.location.zipCode({ format: "#####" }),
// ort: faker.location.city(),
// rolle: "USER",
// },
// });
// for (let j = 0; j < Math.round(Math.random() * 5); j++) {
// // Für jeden Nutzer erstellen wir auch noch bis zu 5 Ausweise.
// await prisma.objekt.create({
// data: {
// adresse: faker.location.street(),
// latitude: faker.location.latitude(),
// longitude: faker.location.longitude(),
// ort: faker.location.city(),
// plz: faker.location.zipCode({ format: "#####" }),
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// aufnahmen: {
// create: {
// alternative_heizung: faker.datatype.boolean(),
// alternative_kuehlung: faker.datatype.boolean(),
// alternative_lueftung: faker.datatype.boolean(),
// alternative_warmwasser: faker.datatype.boolean(),
// aussenwand_gedaemmt: faker.datatype.boolean(),
// aussenwand_min_12cm_gedaemmt: faker.datatype.boolean(),
// baujahr_gebaeude: [faker.date.past().getFullYear()],
// baujahr_heizung: [faker.date.past().getFullYear()],
// baujahr_klima: [faker.date.past().getFullYear()],
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// verbrauchsausweise_wohnen: {
// create: {
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// },
// },
// },
// },
// },
// });
// }
// }
// export async function importVerbrauchsausweisWohnenAltesSystem(
// count: number = 5
// ) {
// const response = await fetch(
// "https://online-energieausweis.org/user/ausweis-import.php",
// {
// method: "POST",
// body: JSON.stringify({
// i: count,
// offset: 0,
// q: {},
// }),
// }
// );
// const data = await response.json();
// return data;
// }
// export async function verbrauchsausweisWohnenImportTranslate(
// ausweis: Record<string, any>
// ) {
// let firstName = faker.person.firstName();
// let lastName = faker.person.lastName();
// const benutzer = await prisma.benutzer.create({
// data: {
// email: faker.internet.email({
// firstName: firstName,
// lastName: lastName,
// }),
// passwort: hashPassword(faker.internet.password()),
// name: lastName,
// vorname: firstName,
// adresse: faker.location.street(),
// plz: faker.location.zipCode({ format: "#####" }),
// ort: faker.location.city(),
// rolle: "USER",
// },
// });
// // TODO: Bilder Importieren
// const gebaeudeStammdaten = await prisma.objekt.create({
// data: {
// adresse: ausweis.objekt_strasse,
// plz: ausweis.objekt_plz,
// ort: ausweis.objekt_ort,
// uid: faker.string.uuid(),
// latitude: null,
// longitude: null,
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// },
// });
// const gebaeudeAufnahmeAllgemein =
// await prisma.aufnahme.create({
// data: {
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// baujahr_gebaeude: [parseInt(ausweis.baujahr_gebaeude)],
// baujahr_heizung: ausweis.baujahr_anlage ? [parseInt(ausweis.baujahr_anlage)] : [],
// baujahr_klima: ausweis.baujahr_klimaanlage ? [parseInt(ausweis.baujahr_klimaanlage)] : [],
// nutzflaeche: parseInt(ausweis.nutzflaeche),
// einheiten: parseInt(ausweis.anzahl_einheiten),
// saniert: ausweis.objekt_saniert ? true : false,
// keller:
// ausweis.keller_beheizt == "Beheizt"
// ? Enums.Heizungsstatus.BEHEIZT
// : ausweis.keller_beheizt == "Unbeheizt"
// ? Enums.Heizungsstatus.UNBEHEIZT
// : Enums.Heizungsstatus.NICHT_VORHANDEN,
// dachgeschoss:
// ausweis.dachgeschoss == "Beheizt"
// ? Enums.Heizungsstatus.BEHEIZT
// : ausweis.dachgeschoss == "Unbeheizt"
// ? Enums.Heizungsstatus.UNBEHEIZT
// : Enums.Heizungsstatus.NICHT_VORHANDEN,
// flaeche: parseInt(ausweis.wohnflaeche),
// gebaeudetyp: ausweis.objekt_typ,
// gebaeudeteil: ausweis.objekt_gebaeudeteil,
// lueftung: ausweis.lueftungskonzept,
// // NOTE: Warum ist das kein Bool?
// kuehlung: ausweis.wird_gekuehlt ? "true" : "false",
// brennstoff_1: ausweis.energietraeger_1,
// brennstoff_2: ausweis.energietraeger_2,
// alternative_heizung: ausweis.alheizung ? true : false,
// alternative_kuehlung: ausweis.alkuehlung ? true : false,
// alternative_lueftung: ausweis.allueftung ? true : false,
// alternative_warmwasser: ausweis.alwarmwasser ? true : false,
// ausweisart: Enums.Ausweisart.VerbrauchsausweisWohnen,
// energieeffizienzklasse: "",
// aussenwand_gedaemmt: ausweis.aussenwand_gedaemmt ? true : false,
// aussenwand_min_12cm_gedaemmt: ausweis.aussenwand_min_12cm_gedaemmt ? true : false,
// bestellt: ausweis.bestellt ? true : false,
// boxpruefung: ausweis.boxpruefung ? true : false,
// brennwert_kessel: ausweis.brennwert_kessel ? true : false,
// dachgeschoss_gedaemmt: ausweis.dachgeschoss_gedaemmt ? true : false,
// dachgeschoss_min_12cm_gedaemmt: ausweis.dachgeschoss_min_12cm_gedaemmt ? true : false,
// doppel_verglasung: ausweis.doppel_verglasung ? true : false,
// dreifach_verglasung: ausweis.dreifach_verglasung ? true : false,
// durchlauf_erhitzer: ausweis.durchlauf_erhitzer ? true : false,
// einfach_verglasung: ausweis.einfach_verglasung ? true : false,
// einzelofen: ausweis.einzelofen ? true : false,
// erledigt: ausweis.erledigt ? true : false,
// fenster_dicht: ausweis.fenster_dicht ? true : false,
// fenster_teilweise_undicht: ausweis.fenster_teilweise_undicht ? true : false,
// heizungsrohre_gedaemmt: ausweis.heizungsrohre_gedaemmt ? true : false,
// isolier_verglasung: ausweis.isolier_verglasung ? true : false,
// keller_decke_gedaemmt: ausweis.keller_decke_gedaemmt ? true : false,
// keller_wand_gedaemmt: ausweis.keller_wand_gedaemmt ? true : false,
// niedertemperatur_kessel: ausweis.niedertemperatur_kessel ? true : false,
// oberste_geschossdecke_gedaemmt: ausweis.oberste_geschossdecke_gedaemmt ? true : false,
// oberste_geschossdecke_min_12cm_gedaemmt: ausweis.oberste_geschossdecke_min_12cm_gedaemmt ? true : false,
// raum_temperatur_regler: ausweis.raum_temperatur_regler ? true : false,
// rolllaeden_kaesten_gedaemmt: ausweis.rolllaeden_kaesten_gedaemmt ? true : false,
// solarsystem_warmwasser: ausweis.solarsystem_warmwasser ? true : false,
// standard_kessel: ausweis.standard_kessel ? true : false,
// waermepumpe: ausweis.waermepumpe ? true : false,
// warmwasser_rohre_gedaemmt: ausweis.warmwasser_rohre_gedaemmt ? true : false,
// zentralheizung: ausweis.zentralheizung ? true : false,
// zirkulation: ausweis.zirkulation ? true : false,
// photovoltaik: ausweis.photovoltaik ? true : false,
// leerstand: ausweis.leerstand,
// prueftext: ausweis["check-texts"],
// storniert: false,
// tueren_dicht: ausweis.tueren_dicht ? true : false,
// tueren_undicht: ausweis.tueren_undicht ? true : false,
// zurueckgestellt: ausweis.zurueckGestellt ? true : false,
// uid: faker.string.uuid(),
// ausstellungsdatum: moment(ausweis.bestelldatum).toDate(),
// erstellungsdatum: moment(ausweis.erstellungsdatum).toDate(),
// objekt: {
// connect: {
// id: gebaeudeStammdaten.id,
// },
// },
// },
// });
// let startdatum = moment(
// `${ausweis.energieverbrauch_zeitraum_jahr}-${ausweis.energieverbrauch_zeitraum_monat}-01`
// ).toDate();
// if (isNaN(startdatum.getTime())) {
// startdatum = new Date();
// }
// const verbrauchsausweisWohnen = await prisma.verbrauchsausweisWohnen.create(
// {
// data: {
// aufnahme: {
// connect: {
// id: gebaeudeAufnahmeAllgemein.id,
// },
// },
// benutzer: {
// connect: {
// id: benutzer.id,
// },
// },
// verbrauch_1: parseInt(ausweis.energieverbrauch_1_heizquelle_1),
// verbrauch_2: parseInt(ausweis.energieverbrauch_2_heizquelle_1),
// verbrauch_3: parseInt(ausweis.energieverbrauch_3_heizquelle_1),
// verbrauch_4: parseInt(ausweis.energieverbrauch_1_heizquelle_2),
// verbrauch_5: parseInt(ausweis.energieverbrauch_2_heizquelle_2),
// verbrauch_6: parseInt(ausweis.energieverbrauch_3_heizquelle_2),
// einheit_1: ausweis.energietraeger_einheit_heizquelle_1,
// einheit_2: ausweis.energietraeger_einheit_heizquelle_2,
// warmwasser_enthalten: ausweis.warmwasser_enthalten ? true : false,
// uid: faker.string.uuid(),
// alternative_heizung: ausweis.alheizung ? true : false,
// alternative_kuehlung: ausweis.alkuehlung ? true : false,
// alternative_lueftung: ausweis.allueftung ? true : false,
// alternative_warmwasser: ausweis.alwarmwasser ? true : false,
// anteil_warmwasser_1: ausweis.anteil_warmwasser_1,
// anteil_warmwasser_2: ausweis.anteil_warmwasser_2,
// ausstellgrund: ausweis.ausstellgrund,
// keller_beheizt: ausweis.keller_beheizt ? true : false,
// registriernummer: ausweis.regnummer,
// // Der Monat im alten System ist 1-basiert, in der neuen Datenbank 0-basiert
// // Also müssen wir hier 1 abziehen
// startdatum,
// warmwasser_anteil_bekannt: ausweis.warmwasser_anteil_bekannt ? true : false,
// zusaetzliche_heizquelle: ausweis.zusaetzliche_heizquelle ? true : false,
// },
// }
// );
// return verbrauchsausweisWohnen;
// }
// const ausweise = (await importVerbrauchsausweisWohnenAltesSystem(10)) as { data: any[], result_count: number };
// for (const ausweis of ausweise.data) {
// await verbrauchsausweisWohnenImportTranslate(ausweis);
// }

92
public/effizienz-icon.svg Normal file
View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="106.48949mm"
height="127.93927mm"
viewBox="0 0 106.48949 127.93927"
version="1.1"
id="svg1"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" />
<defs
id="defs1" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-51.858335,-84.402082)">
<g
id="g9"
transform="matrix(0.26458333,0,0,0.26458333,51.858333,68.995396)">
<path
id="path3610"
d="m 0.02,129.3 v 59.43 h 250.93 l 21.58,-29.71 -21.65,-29.71 H 0.02 Z"
fill="#16a550" />
<path
id="path3612"
d="M 276.66,199.86 0.29,200.29 0,259.48 h 276.66 l 22.23,-29.42 -22.23,-30.21 v 0 z"
fill="#54cc4e" />
<path
id="path3614"
d="M 301.97,269.43 0,269.82 l 0.03,59.51 302.02,0.55 22.36,-30.23 -22.44,-30.23 v 0 z"
fill="#ffbc00" />
<path
id="path3616"
d="m 0,341.06 v 59.63 h 328.48 l 22.29,-29.81 -22.48,-29.81 H 0 Z"
fill="#ff5e0d" />
<path
id="path3618"
d="M 353.44,411.87 0.01,412.2 v 59.29 h 354.12 l 22.8,-29.81 z"
fill="#ff321d" />
<path
id="path3620"
d="m 0.02,482.15 v 59.63 l 379.93,-0.07 22.53,-29.76 -23.08,-29.76 z"
fill="#dd2238" />
<path
id="path3295"
d="m 0.02,58.23 v 61 H 224 l 22.32,-30.5 -22.39,-30.5 z"
fill="#128440" />
<path
d="M 45.88,103.36 43.77,96.42 H 33.15 l -2.11,6.94 H 24.38 L 34.67,74.1 h 7.55 l 10.32,29.26 z M 42.29,91.24 c -1.95,-6.29 -3.05,-9.84 -3.3,-10.66 -0.25,-0.82 -0.42,-1.47 -0.53,-1.95 -0.44,1.7 -1.69,5.91 -3.77,12.62 h 7.59 z"
fill="#ffffff"
id="path2" />
<path
d="m 24.51,144.44 h 9.07 c 4.13,0 7.13,0.59 9,1.76 1.87,1.18 2.8,3.05 2.8,5.61 0,1.74 -0.41,3.17 -1.23,4.29 -0.82,1.12 -1.9,1.79 -3.26,2.01 v 0.2 c 1.85,0.41 3.18,1.18 4,2.31 0.82,1.13 1.23,2.63 1.23,4.5 0,2.66 -0.96,4.73 -2.88,6.22 -1.92,1.49 -4.53,2.23 -7.82,2.23 h -10.9 v -29.14 z m 6.18,11.54 h 3.59 c 1.67,0 2.89,-0.26 3.64,-0.78 0.75,-0.52 1.13,-1.38 1.13,-2.57 0,-1.12 -0.41,-1.92 -1.23,-2.4 -0.82,-0.48 -2.11,-0.73 -3.88,-0.73 h -3.25 z m 0,4.9 v 7.59 h 4.03 c 1.7,0 2.96,-0.33 3.77,-0.98 0.81,-0.65 1.22,-1.65 1.22,-2.99 0,-2.42 -1.73,-3.63 -5.18,-3.63 H 30.7 Z"
fill="#ffffff"
id="path3" />
<path
d="m 37.77,219.84 c -2.33,0 -4.13,0.87 -5.4,2.62 -1.27,1.75 -1.91,4.18 -1.91,7.31 0,6.5 2.44,9.75 7.32,9.75 2.05,0 4.52,-0.51 7.43,-1.53 v 5.18 c -2.39,1 -5.06,1.49 -8.01,1.49 -4.24,0 -7.48,-1.29 -9.73,-3.86 -2.25,-2.57 -3.37,-6.26 -3.37,-11.07 0,-3.03 0.55,-5.68 1.65,-7.96 1.1,-2.28 2.69,-4.03 4.75,-5.24 2.07,-1.22 4.49,-1.82 7.27,-1.82 2.78,0 5.67,0.68 8.53,2.05 l -1.99,5.02 c -1.09,-0.52 -2.19,-0.97 -3.29,-1.36 -1.1,-0.39 -2.19,-0.58 -3.25,-0.58 z"
fill="#ffffff"
id="path5" />
<path
d="m 48.27,299.37 c 0,4.8 -1.37,8.47 -4.1,11.02 -2.73,2.55 -6.67,3.83 -11.83,3.83 h -8.25 v -29.14 h 9.15 c 4.76,0 8.45,1.26 11.08,3.77 2.63,2.51 3.95,6.02 3.95,10.52 z m -6.42,0.16 c 0,-6.26 -2.76,-9.39 -8.29,-9.39 h -3.29 v 18.98 h 2.65 c 5.95,0 8.93,-3.2 8.93,-9.59 z"
fill="#ffffff"
id="path6" />
<path
d="M 41.26,385.44 H 24.47 V 356.3 h 16.78 v 5.06 h -10.6 v 6.4 h 9.87 v 5.06 h -9.87 v 7.51 h 10.6 v 5.1 z"
fill="#ffffff"
id="path7" />
<path
d="m 30.59,456.25 h -6.08 v -29.14 h 16.7 v 5.06 H 30.59 v 7.51 h 9.89 v 5.04 h -9.89 v 11.52 z"
fill="#ffffff"
id="path8" />
<path
d="m 37.03,510.18 h 11.56 v 15.11 c -1.87,0.61 -3.64,1.04 -5.29,1.29 -1.65,0.25 -3.35,0.37 -5.07,0.37 -4.4,0 -7.76,-1.29 -10.08,-3.88 -2.32,-2.58 -3.48,-6.3 -3.48,-11.13 0,-4.83 1.35,-8.37 4.04,-11 2.69,-2.63 6.42,-3.95 11.19,-3.95 2.99,0 5.87,0.6 8.65,1.79 l -2.05,4.94 c -2.13,-1.06 -4.34,-1.59 -6.64,-1.59 -2.67,0 -4.81,0.9 -6.42,2.69 -1.61,1.79 -2.41,4.21 -2.41,7.24 0,3.03 0.65,5.58 1.94,7.25 1.29,1.67 3.18,2.5 5.65,2.5 1.29,0 2.6,-0.13 3.93,-0.4 v -6.08 h -5.52 v -5.14 z"
fill="#ffffff"
id="path9" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

Some files were not shown because too many files have changed in this diff Show More