forked from jappel/leistungsbilanz-ts
In LPH 2/3 there are no circuits yet, but the office needs a power balance by DIN 276 cost group, as in the Excel template "Leistungsbilanz - KG400": each trade enters consumers by piece or by area (W/m²) with GLF and cos phi; the balance sums AV and SV per cost group, adds a reserve and derives the maximum current. The module is separate from the circuit structure: own tables (migration 0010), own folder src/estimate-balance and an import-free shared calculation used by API and UI. Writes go through project commands (estimate-balance.insert/.update/.delete with complete documents), so revision checks and Undo/Redo apply; it is not part of project snapshots or transfer yet. A comparison endpoint sums the device rows of all circuit lists by cost group (longest prefix) against the estimate. The UI adds a sidebar entry, a list of Stände (template KG 400, empty or copy) and a spreadsheet-like editor with autosave, AMEV picker for the GLF, totals, reserve, maximum current, comparison table and print layout. The tests reproduce the template example exactly (143.24 kW, 148.48 kVA, 157.56 kW / 163.33 kVA with 10 % reserve, 235.75 A). See docs/estimate-balance.md and issue #7. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
115 lines
8.1 KiB
TypeScript
115 lines
8.1 KiB
TypeScript
import { db } from "../../db/client.js";
|
|
import { CircuitDeviceRowProjectCommandRepository } from "../../db/repositories/circuit-device-row-project-command.repository.js";
|
|
import { CircuitDeviceRowMoveProjectCommandRepository } from "../../db/repositories/circuit-device-row-move-project-command.repository.js";
|
|
import { CircuitDeviceRowStructureProjectCommandRepository } from "../../db/repositories/circuit-device-row-structure-project-command.repository.js";
|
|
import { CircuitProjectCommandRepository } from "../../db/repositories/circuit-project-command.repository.js";
|
|
import { CircuitSectionReorderProjectCommandRepository } from "../../db/repositories/circuit-section-reorder-project-command.repository.js";
|
|
import { CircuitSectionRenumberProjectCommandRepository } from "../../db/repositories/circuit-section-renumber-project-command.repository.js";
|
|
import { CircuitStructureProjectCommandRepository } from "../../db/repositories/circuit-structure-project-command.repository.js";
|
|
import { CircuitProtectionProjectCommandRepository } from "../../db/repositories/circuit-protection-project-command.repository.js";
|
|
import { CircuitGroupStructureProjectCommandRepository } from "../../db/repositories/circuit-group-structure-project-command.repository.js";
|
|
import { CircuitGroupRenumberProjectCommandRepository } from "../../db/repositories/circuit-group-renumber-project-command.repository.js";
|
|
import { CircuitGroupMoveProjectCommandRepository } from "../../db/repositories/circuit-group-move-project-command.repository.js";
|
|
import { CircuitGroupSubtreeProjectCommandRepository } from "../../db/repositories/circuit-group-subtree-project-command.repository.js";
|
|
import { DistributionBoardStructureProjectCommandRepository } from "../../db/repositories/distribution-board-structure-project-command.repository.js";
|
|
import { DistributionBoardSubtreeProjectCommandRepository } from "../../db/repositories/distribution-board-subtree-project-command.repository.js";
|
|
import { DistributionBoardComponentStructureProjectCommandRepository } from "../../db/repositories/distribution-board-component-structure-project-command.repository.js";
|
|
import { ProjectHistoryRepository } from "../../db/repositories/project-history.repository.js";
|
|
import { ProjectLocationStructureProjectCommandRepository } from "../../db/repositories/project-location-structure-project-command.repository.js";
|
|
import { ProjectDeviceProjectCommandRepository } from "../../db/repositories/project-device-project-command.repository.js";
|
|
import { ProjectDeviceRowSyncProjectCommandRepository } from "../../db/repositories/project-device-row-sync-project-command.repository.js";
|
|
import { ProjectDeviceStructureProjectCommandRepository } from "../../db/repositories/project-device-structure-project-command.repository.js";
|
|
import { ProjectSettingsProjectCommandRepository } from "../../db/repositories/project-settings-project-command.repository.js";
|
|
import { ProjectStateRestoreCommandRepository } from "../../db/repositories/project-state-restore-command.repository.js";
|
|
import { ProjectCommandService } from "../../domain/services/project-command.service.js";
|
|
import { ExternalCsvConfigurationProjectCommandRepository } from "../../db/repositories/external-csv-configuration-project-command.repository.js";
|
|
import { ExternalInitialImportProjectCommandRepository } from "../../db/repositories/external-initial-import-project-command.repository.js";
|
|
import { ExternalObjectRowAssignmentProjectCommandRepository } from "../../db/repositories/external-object-row-assignment-project-command.repository.js";
|
|
import { ExternalObjectNewRowProjectCommandRepository } from "../../db/repositories/external-object-new-row-project-command.repository.js";
|
|
import { ExternalObjectNewCircuitProjectCommandRepository } from "../../db/repositories/external-object-new-circuit-project-command.repository.js";
|
|
import { EstimateBalanceProjectCommandRepository } from "../../db/repositories/estimate-balance-project-command.repository.js";
|
|
|
|
export const circuitProjectCommandStore = new CircuitProjectCommandRepository(db);
|
|
export const circuitDeviceRowProjectCommandStore =
|
|
new CircuitDeviceRowProjectCommandRepository(db);
|
|
export const circuitDeviceRowStructureProjectCommandStore =
|
|
new CircuitDeviceRowStructureProjectCommandRepository(db);
|
|
export const circuitDeviceRowMoveProjectCommandStore =
|
|
new CircuitDeviceRowMoveProjectCommandRepository(db);
|
|
export const circuitStructureProjectCommandStore =
|
|
new CircuitStructureProjectCommandRepository(db);
|
|
export const circuitProtectionProjectCommandStore =
|
|
new CircuitProtectionProjectCommandRepository(db);
|
|
export const circuitGroupStructureProjectCommandStore =
|
|
new CircuitGroupStructureProjectCommandRepository(db);
|
|
export const circuitGroupRenumberProjectCommandStore =
|
|
new CircuitGroupRenumberProjectCommandRepository(db);
|
|
export const circuitGroupMoveProjectCommandStore =
|
|
new CircuitGroupMoveProjectCommandRepository(db);
|
|
export const circuitGroupSubtreeProjectCommandStore =
|
|
new CircuitGroupSubtreeProjectCommandRepository(db);
|
|
export const distributionBoardStructureProjectCommandStore =
|
|
new DistributionBoardStructureProjectCommandRepository(db);
|
|
export const distributionBoardSubtreeProjectCommandStore =
|
|
new DistributionBoardSubtreeProjectCommandRepository(db);
|
|
export const distributionBoardComponentStructureProjectCommandStore =
|
|
new DistributionBoardComponentStructureProjectCommandRepository(db);
|
|
export const projectLocationStructureProjectCommandStore =
|
|
new ProjectLocationStructureProjectCommandRepository(db);
|
|
export const circuitSectionReorderProjectCommandStore =
|
|
new CircuitSectionReorderProjectCommandRepository(db);
|
|
export const circuitSectionRenumberProjectCommandStore =
|
|
new CircuitSectionRenumberProjectCommandRepository(db);
|
|
export const projectDeviceStructureProjectCommandStore =
|
|
new ProjectDeviceStructureProjectCommandRepository(db);
|
|
export const projectDeviceProjectCommandStore =
|
|
new ProjectDeviceProjectCommandRepository(db);
|
|
export const projectDeviceRowSyncProjectCommandStore =
|
|
new ProjectDeviceRowSyncProjectCommandRepository(db);
|
|
export const projectSettingsProjectCommandStore =
|
|
new ProjectSettingsProjectCommandRepository(db);
|
|
export const projectStateRestoreCommandStore =
|
|
new ProjectStateRestoreCommandRepository(db);
|
|
export const projectHistoryStore = new ProjectHistoryRepository(db);
|
|
export const externalCsvConfigurationProjectCommandStore =
|
|
new ExternalCsvConfigurationProjectCommandRepository(db);
|
|
export const externalInitialImportProjectCommandStore =
|
|
new ExternalInitialImportProjectCommandRepository(db);
|
|
export const externalObjectRowAssignmentProjectCommandStore =
|
|
new ExternalObjectRowAssignmentProjectCommandRepository(db);
|
|
export const externalObjectNewRowProjectCommandStore =
|
|
new ExternalObjectNewRowProjectCommandRepository(db);
|
|
export const externalObjectNewCircuitProjectCommandStore =
|
|
new ExternalObjectNewCircuitProjectCommandRepository(db);
|
|
export const estimateBalanceProjectCommandStore =
|
|
new EstimateBalanceProjectCommandRepository(db);
|
|
export const projectCommandService = new ProjectCommandService(
|
|
circuitProjectCommandStore,
|
|
circuitDeviceRowProjectCommandStore,
|
|
circuitDeviceRowStructureProjectCommandStore,
|
|
circuitDeviceRowMoveProjectCommandStore,
|
|
circuitStructureProjectCommandStore,
|
|
distributionBoardStructureProjectCommandStore,
|
|
distributionBoardSubtreeProjectCommandStore,
|
|
projectLocationStructureProjectCommandStore,
|
|
circuitSectionReorderProjectCommandStore,
|
|
circuitSectionRenumberProjectCommandStore,
|
|
projectDeviceStructureProjectCommandStore,
|
|
projectDeviceProjectCommandStore,
|
|
projectDeviceRowSyncProjectCommandStore,
|
|
projectSettingsProjectCommandStore,
|
|
projectStateRestoreCommandStore,
|
|
distributionBoardComponentStructureProjectCommandStore,
|
|
circuitGroupStructureProjectCommandStore,
|
|
circuitGroupRenumberProjectCommandStore,
|
|
circuitGroupMoveProjectCommandStore,
|
|
circuitGroupSubtreeProjectCommandStore,
|
|
circuitProtectionProjectCommandStore,
|
|
projectHistoryStore,
|
|
externalCsvConfigurationProjectCommandStore,
|
|
externalInitialImportProjectCommandStore,
|
|
externalObjectRowAssignmentProjectCommandStore,
|
|
externalObjectNewRowProjectCommandStore,
|
|
externalObjectNewCircuitProjectCommandStore,
|
|
estimateBalanceProjectCommandStore
|
|
);
|