import { A9BerechnungNutzenergiebedarfTrinkwarmwasser } from "#lib/Berechnungen/BedarfsausweisWohnen/A9BerechnungNutzenergiebedarfTrinkwarmwasser.js";
import { BedarfsausweisWohnenClient, AufnahmeClient } from "#components/Ausweis/types.js";

/**
 * Implementierung Tabelle A10
 * 
 * @see 18599-Tabellenverfahren-Wohngebaeude.pdf
 * @export
 * @param {BedarfsausweisWohnenClient} ausweis
 * @param {AufnahmeClient} gebaeude_aufnahme
 */
export function A10BerechnungWaermequellenAnlagentechnikTrinkwarmwasser(ausweis: BedarfsausweisWohnenClient, gebaeude_aufnahme: AufnahmeClient) {

    const result = A9BerechnungNutzenergiebedarfTrinkwarmwasser(ausweis, gebaeude_aufnahme);
    const trinkwasserWaermebedarf = result.trinkwasserWaermebedarf;

    const FaktorNutzbareWaermeTrinkwarmwasser = 1.554;  // aus Eingabe (Tabelle 143): mit Zirkulation - Verteilung, Speicherung und Erzeugung im beheizten Bereich - 55°C/45°C
    const WaermeQuellenAnlagentechnikTrinkwarmwasser = Object.keys(trinkwasserWaermebedarf).reduce((acc: { [key: string]: number }, month) => {
        acc[month] = trinkwasserWaermebedarf[month] * FaktorNutzbareWaermeTrinkwarmwasser;
        return acc;
    }, {});

    return {

        trinkwasserWaermebedarf,
        FaktorNutzbareWaermeTrinkwarmwasser,
        WaermeQuellenAnlagentechnikTrinkwarmwasser

    }
    
}