import { BedarfsausweisWohnenClient } from "#components/Ausweis/types";
import { Enums } from "@ibcornelsen/database/client";
import moment from "moment";

export function energetischeNutzflaecheBedarfsausweisWohnen_18599(
	ausweis: BedarfsausweisWohnenClient
): number {
	if (!ausweis.gebaeude_aufnahme_allgemein.gebaeude_stammdaten) {
		return 0
	}


}

export async function endEnergieBedarfBedarfsausweis_18599(
	ausweis: BedarfsausweisWohnenClient
) {
	if (!ausweis.gebaeude_aufnahme_allgemein || !ausweis.gebaeude_aufnahme_allgemein.gebaeude_stammdaten) {
		return null;
	}

	

	
	let endEnergieBedarfGesamt;
	let primaerEnergieBedarfGesamt;
	let co2EmissionenGesamt;

		// Energieeffizienzklasse
		let energieEffizienzKlasse = "";
		if (endEnergieVerbrauchGesamt < 30) {
			energieEffizienzKlasse = 'A+';
		}else if (endEnergieVerbrauchGesamt < 50) {
			energieEffizienzKlasse = 'A';
		}else if (endEnergieVerbrauchGesamt < 75) {
			energieEffizienzKlasse = 'B';
		}else if (endEnergieVerbrauchGesamt < 100) {
			energieEffizienzKlasse = 'C';
		}else if (endEnergieVerbrauchGesamt < 130) {
			energieEffizienzKlasse = 'D';
		}else if (endEnergieVerbrauchGesamt < 160) {
			energieEffizienzKlasse = 'E';
		}else if (endEnergieVerbrauchGesamt < 200) {
			energieEffizienzKlasse = 'F';
		}else if (endEnergieVerbrauchGesamt < 250) {
			energieEffizienzKlasse = 'G';
		}else if (endEnergieVerbrauchGesamt >= 250) {
			energieEffizienzKlasse = 'H';
		}


	return {
		brennstoff_1: brennstoff_1,
		brennstoff_2: brennstoff_2,
		klimafaktoren: klimafaktoren,
		kuehlungsZuschlag: Math.round(kuehlungsZuschlag),
		durchschnittsKlimafaktor: Math.round(durchschnittsKlimafaktor),
		ausweis: ausweis,

		anteil_heizung_1: 1 - (ausweis.anteil_warmwasser_1 || 0) / 100,
		anteil_heizung_2: 1 - (ausweis.anteil_warmwasser_2 || 0) / 100,

		verbrauch_1_kwh: Math.round(
			(ausweis.verbrauch_1 || 0) * brennstoff_1.umrechnungsfaktor
		),
		verbrauch_2_kwh: Math.round(
			(ausweis.verbrauch_2 || 0) * brennstoff_1.umrechnungsfaktor
		),
		verbrauch_3_kwh: Math.round(
			(ausweis.verbrauch_3 || 0) * brennstoff_1.umrechnungsfaktor
		),
		verbrauch_4_kwh: Math.round(
			(ausweis.verbrauch_4 || 0) * brennstoff_2.umrechnungsfaktor
		),
		verbrauch_5_kwh: Math.round(
			(ausweis.verbrauch_5 || 0) * brennstoff_2.umrechnungsfaktor
		),
		verbrauch_6_kwh: Math.round(
			(ausweis.verbrauch_6 || 0) * brennstoff_2.umrechnungsfaktor
		),

		energetischeNutzflaeche: energetischeNutzflaeche,
		leerstand: leerstand,
		leerstandsZuschlagHeizung: Math.round(leerstandsZuschlagHeizung),
		leerstandsZuschlagWarmwasser: Math.round(leerstandsZuschlagWarmwasser),
		endEnergieVerbrauchLeerstandsZuschlag: Math.round(
			endEnergieVerbrauchLeerstandsZuschlag
		),
		endEnergieVerbrauchKuehlungsZuschlag: Math.round(
			endEnergieVerbrauchKuehlungsZuschlag
		),
		coeeffkg: co2EmissionenGesamt,
		energieVerbrauchGesamt_1: Math.round(energieVerbrauchGesamt_1),
		energieVerbrauchGesamt_2: Math.round(energieVerbrauchGesamt_2),
		energieVerbrauchWarmwasser_1: Math.round(energieVerbrauchWarmwasser_1),
		energieVerbrauchWarmwasser_2: Math.round(energieVerbrauchWarmwasser_2),
		energieVerbrauchHeizung_1: energieVerbrauchHeizung_1,
		energieVerbrauchHeizung_2: energieVerbrauchHeizung_2,
		anteil_warmwasser_1: (ausweis.anteil_warmwasser_1 || 0) / 100,
		anteil_warmwasser_2: (ausweis.anteil_warmwasser_2 || 0) / 100,

		energieVerbrauchHeizungBereinigt_1: Math.round(
			energieVerbrauchHeizungBereinigt_1
		),
		energieVerbrauchHeizungBereinigt_2: Math.round(
			energieVerbrauchHeizungBereinigt_2
		),
		durchschnittsEnergieVerbrauchHeizungBereingt: Math.round(
			durchschnittsEnergieVerbrauchHeizungBereingt
		),
		faktorDurchschnittsEnergieVerbrauchHeizungBereinigt: Math.round(
			faktorDurchschnittsEnergieVerbrauchHeizungBereinigt
		),

		endEnergieVerbrauch_1: Math.round(endEnergieVerbrauch_1),
		endEnergieVerbrauch_2: Math.round(endEnergieVerbrauch_2),

		primaerEnergieVerbrauch_1: Math.round(primaerEnergieVerbrauch_1),
		primaerEnergieVerbrauch_2: Math.round(primaerEnergieVerbrauch_2),

		primaerEnergieVerbrauchLeerstandsZuschlag: Math.round(
			primaerEnergieVerbrauchLeerstandsZuschlag
		),
		primaerEnergieVerbrauchKuehlungsZuschlag: Math.round(
			primaerEnergieVerbrauchKuehlungsZuschlag
		),

		primaerfaktorww,
		primaerfaktorww_1,

		co2Emissionen_1: co2Emissionen_1,
		co2Emissionen_2: co2Emissionen_2,

		co2EmissionenLeerstandsZuschlag: co2EmissionenLeerstandsZuschlag,
		co2EmissionenKuehlungsZuschlag: co2EmissionenKuehlungsZuschlag,

		co2EmissionenGesamt: Math.round(co2EmissionenGesamt),

		endEnergieVerbrauchGesamt: Math.round(endEnergieVerbrauchGesamt),
		primaerEnergieVerbrauchGesamt: Math.round(
			primaerEnergieVerbrauchGesamt
		),
		energieEffizienzKlasse
	};
}
