Files
leistungsbilanz-ts/src/domain/services/project-device-placement.service.ts
T

30 lines
939 B
TypeScript

export interface ProjectDevicePlacementSource {
category?: string | null;
phaseType: "single_phase" | "three_phase";
}
export interface ProjectDevicePlacementSection {
key: string;
}
export type DefaultCircuitSectionKey = "lighting" | "single_phase" | "three_phase";
// Lighting classification takes precedence over the electrical phase because
// lighting devices use their dedicated numbering section by default.
export function inferProjectDeviceSectionKey(
device: ProjectDevicePlacementSource
): DefaultCircuitSectionKey {
const category = (device.category ?? "").trim().toLowerCase();
if (category.includes("light") || category.includes("beleuchtung")) {
return "lighting";
}
return device.phaseType;
}
export function isProjectDevicePlacementValid(
device: ProjectDevicePlacementSource,
section: ProjectDevicePlacementSection
): boolean {
return section.key === inferProjectDeviceSectionKey(device);
}