first commit

This commit is contained in:
2026-04-30 18:22:10 +02:00
commit c3e98af5b6
36 changed files with 4779 additions and 0 deletions
@@ -0,0 +1,45 @@
import {
calculateCurrentA,
calculateDemandPowerKw,
calculateInstalledPowerKw,
} from "../calculations/power-calculation.js";
import type { Consumer } from "../models/consumer.model.js";
export interface ConsumerWithCalculatedValues extends Consumer {
installedPowerKw: number;
demandPowerKw: number;
currentA?: number;
}
export class PowerBalanceService {
enrichConsumer(consumer: Consumer): ConsumerWithCalculatedValues {
const installedPowerKw = calculateInstalledPowerKw({
quantity: consumer.quantity,
installedPowerPerUnitKw: consumer.installedPowerPerUnitKw,
demandFactor: consumer.demandFactor,
});
const demandPowerKw = calculateDemandPowerKw({
quantity: consumer.quantity,
installedPowerPerUnitKw: consumer.installedPowerPerUnitKw,
demandFactor: consumer.demandFactor,
});
let currentA: number | undefined;
if (consumer.voltageV && consumer.phaseCount && consumer.powerFactor) {
currentA = calculateCurrentA({
demandPowerKw,
voltageV: consumer.voltageV,
phaseCount: consumer.phaseCount,
powerFactor: consumer.powerFactor,
});
}
return {
...consumer,
installedPowerKw,
demandPowerKw,
currentA,
};
}
}