Mal schauen

This commit is contained in:
Moritz Utcke
2025-03-17 20:43:44 -03:00
parent 661a75ee9c
commit 90522e1f81
18 changed files with 105412 additions and 300 deletions

View File

@@ -111,272 +111,272 @@ await prisma.benutzer.create({
// 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 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,
},
},
},
},
},
},
},
});
}
}
// 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: {},
}),
}
);
// 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();
// const data = await response.json();
return data;
}
// 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",
},
});
// 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,
},
},
},
});
// // 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"],
// 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,
},
},
},
});
// 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();
// let startdatum = moment(
// `${ausweis.energieverbrauch_zeitraum_jahr}-${ausweis.energieverbrauch_zeitraum_monat}-01`
// ).toDate();
if (isNaN(startdatum.getTime())) {
startdatum = new Date();
}
// 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,
},
}
);
// 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;
}
// return verbrauchsausweisWohnen;
// }
const ausweise = (await importVerbrauchsausweisWohnenAltesSystem(10)) as { data: any[], result_count: number };
// const ausweise = (await importVerbrauchsausweisWohnenAltesSystem(10)) as { data: any[], result_count: number };
for (const ausweis of ausweise.data) {
await verbrauchsausweisWohnenImportTranslate(ausweis);
}
// for (const ausweis of ausweise.data) {
// await verbrauchsausweisWohnenImportTranslate(ausweis);
// }