import type { GebaeudeStammdaten, VerbrauchsausweisWohnen } from "@ibcornelsen/database/client";
import moment from "moment";

export function getEmpfehlungen(ausweis: VerbrauchsausweisWohnen, gebaeude: GebaeudeStammdaten): {
	title: string,
	description: string,
	anlagenteil: string
}[] {
	let Warmwasserrohre_gedaemmt       = gebaeude.warmwasser_rohre_gedaemmt;
	let Heizungsrohre_gedaemmt         = gebaeude.heizungsrohre_gedaemmt;
	let Waermepumpe                    = gebaeude.waermepumpe;
	let Kellerwand_gedaemmt            = gebaeude.keller_wand_gedaemmt;
	let Keller                         = ausweis.keller_beheizt;
	let Kellerdecke_Kalraeume_gedaemmt = gebaeude.keller_decke_gedaemmt;
	let Brennwertkessel                = gebaeude.brennwert_kessel;
	let baujahr_anlagesanlage          = gebaeude.baujahr_heizung[0];
	let Zentralheizung                 = gebaeude.zentralheizung;
	let photovoltaik                   = gebaeude.photovoltaik;
	let Brennstoff                     = ausweis.brennstoff_1;
	let Aussenwand_gedaemmt            = gebaeude.aussenwand_gedaemmt;
	let Dachgeschoss                   = gebaeude.dachgeschoss;
	let Dachgeschoss_gedaemmt          = gebaeude.dachgeschoss_gedaemmt;
	let Oberste_Geschossdecke_gedaemmt = gebaeude.oberste_geschossdecke_gedaemmt;
	let Einfachglas                    = gebaeude.einfach_verglasung;
	let Doppelfenster                  = gebaeude.doppel_verglasung;
	let Fenster_teilw_undicht          = gebaeude.fenster_teilweise_undicht;

	let empfehlungen = [];

	if (gebaeude.einfach_verglasung || (Doppelfenster && Fenster_teilw_undicht)) {
		empfehlungen.push({
			"title"       : "Erneuerung der Fenster",
			"description" : "Alte und undichte Fenster mit Wärmeschutzfenstern auswechseln.",
			"anlagenteil" : "Fenster"
		});
	}

	if (gebaeude.dachgeschoss == "Unbeheizt" && !Oberste_Geschossdecke_gedaemmt) {
		empfehlungen.push({
			"title"       : "Zusätzliche Dämmung des Fußbodens des kalten Dachraumes",
			"description" : "Beim Einbringen sollten mindestens 16cm Dämmstoff verarbeitet werden. Das Einsparpotenzial ist für jeden zusätzlichen cm Dämmung sehr hoch.",
			"anlagenteil" : "Dach"
		});
	} else if (Dachgeschoss == "Beheizt" && !Dachgeschoss_gedaemmt) {
		empfehlungen.push({
			"title"       : "Zusätzliche Dämmung des Daches bzw. Dachraumes",
			"description" : "Beim Einbringen sollten mindestens 16cm Dämmstoff, wenn möglich, verarbeitet werden. Das Einsparpotenzial ist für jeden zusätzlichen cm Dämmung sehr hoch.",
			"anlagenteil" : "Dach"
		});
	}

	if (!Aussenwand_gedaemmt) {
		empfehlungen.push({
			"title"       : "Außenwand zusätzl. dämmen (z.B. Wärmedämmverbundsystem, Einblasdämmung, Dämmputz)",
			"description" : "Beim WDVS sollte man mit Dämmstärken ab 12cm planen. Bei zweischaligem Mauerwerk Luftschicht mit Einblasdämmung füllen. Bei historischen Fassaden kommt u.U. eine Innendämmung in Betracht",
			"anlagenteil" : "Außenwand gg. Außenluft"
		});
	}

	let Relanlagenjahr = moment().year() - 35;

	if ((!Brennwertkessel && !Waermepumpe) && baujahr_anlagesanlage <= Relanlagenjahr && Brennstoff != 'Fernwärme' && Brennstoff != 'Strommix') {
		empfehlungen.push({
			"title"       : "Anlagentechnik",
			"description" : "Prüfen Sie, ob Sie bei einer Umrüstung auf einen regenerativen Anteil von 65% kommen. Bei energetisch sanierten Gebäuden z.B. Wärmepumpe. Bei unsanieten Gebäuden Fernwärmeanschluss.",
			"anlagenteil" : "Wärmeerzeuger"
		});
	}

	if (!Kellerdecke_Kalraeume_gedaemmt && Keller == "Unbeheizt") {
		empfehlungen.push({
			"title"       : "Nachträgliche Dämmung der Kellerdecke",
			"description" : "Je nach Deckenhöhe, den vorhandenen Raum voll ausnutzen. Das Einsparpotenzial für jeden zusätzlichen cm Dämmung sehr hoch.",
			"anlagenteil" : "Kellerdecke"
		});
	} else if (!Kellerwand_gedaemmt && Keller == "Beheizt") {
		empfehlungen.push({
			"title"       : "Nachträgliche Dämmung der Kellerwände",
			"description" : "Man sollte mit Dämmstärken ab 12cm planen. Das Einsparpotenzial für jeden zusätzlichen cm Dämmung sehr hoch.",
			"anlagenteil" : "Außenwand gg. Erdreich"
		});
	}

	if (Zentralheizung) {
		if (!Warmwasserrohre_gedaemmt && !Heizungsrohre_gedaemmt) {
			empfehlungen.push({
				"title"       : "Anlagentechnik",
				"description" : "Heizungsrohre und Warmwasserrohre dämmen",
				"anlagenteil" : "Wärmeverteilung / -abgabe"
			});
		} else if (Warmwasserrohre_gedaemmt && !Heizungsrohre_gedaemmt) {
			empfehlungen.push({
				"title"       : "Anlagentechnik",
				"description" : "Heizungsrohre dämmen",
				"anlagenteil" : "Wärmeverteilung / -abgabe"
			});
		} else if (!Warmwasserrohre_gedaemmt && Heizungsrohre_gedaemmt) {
			empfehlungen.push({
				"title"       : "Anlagentechnik",
				"description" : "Warmwasserrohre dämmen",
				"anlagenteil" : "Wärmeverteilung / -abgabe"
			});
		}
	}

	if ((baujahr_anlagesanlage <= (moment().year() - 30)) && (Brennstoff == "Heizöl" || Brennstoff == "Erdgas") && !Waermepumpe) {
		// Wärmepumpe
		empfehlungen.push({
			"title"       : "Wärmeerzeuger",
			"description" : "Prüfen Sie den zusätzlichen Einbau einer Luft-Wasser-Wärmepumpe. Mit einem Pufferspeicher und einer 75°C-Vorlauftemperatur-Wärmepumpe kann ein relevanter Anteil der Wärmeerzeugung abgedeckt werden.",
			"anlagenteil" : "Wärmeerzeuger"
		});
	}

	if (!photovoltaik && Brennstoff == "Strommix") {
		// Wärmepumpe
		empfehlungen.push({
			"title"       : "Wärmeerzeuger",
			"description" : "PV-Anlage auf das Dach (für Energieunterstützung)",
			"anlagenteil" : "Wärmeerzeuger"
		});
	}

	return empfehlungen;
}