export interface CircuitTreeDeviceRow { id: string; linkedProjectDeviceId?: string; sortOrder: number; name: string; displayName: string; phaseType?: string; connectionKind?: string; costGroup?: string; category?: string; level?: string; roomId?: string; roomNumberSnapshot?: string; roomNameSnapshot?: string; quantity: number; manualQuantity: number; powerPerUnit: number; simultaneityFactor: number; cosPhi?: number; remark?: string; overriddenFields?: string; rowTotalPower: number; } export interface CircuitTreeCircuit { id: string; circuitListId: string; sectionId: string; equipmentIdentifier: string; displayName?: string; sortOrder: number; cableType?: string; cableCrossSection?: string; cableLength?: number; rcdAssignment?: string; terminalDesignation?: string; voltage?: number; controlRequirement?: string; status?: string; isReserve: boolean; remark?: string; circuitTotalPower: number; deviceRows: CircuitTreeDeviceRow[]; protectionDevice?: CircuitTreeProtectionDevice; } export interface CircuitTreeSectionBlock { id: string; key: string; displayName: string; prefix: string; sortOrder: number; category?: CircuitGroupCategory; groupNumber?: number; sectionTotalPower: number; components: CircuitTreeComponent[]; circuits: CircuitTreeCircuit[]; } export interface CircuitTreeResponse { circuitListId: string; currentRevision: number; singlePhaseVoltageV: number; threePhaseVoltageV: number; distributionBoardSimultaneityFactor: number; distributionBoardTotalPower: number; distributionBoardTotalPowerWithSimultaneityFactor: number; headerComponents: CircuitTreeComponent[]; sections: CircuitTreeSectionBlock[]; footerComponents: CircuitTreeComponent[]; } import type { CircuitGroupCategory } from "../../shared/constants/circuit-group.js"; import type { DistributionBoardComponentPlacement, DistributionBoardComponentRole, } from "../../shared/constants/distribution-board-component.js"; import type { BreakerTripCharacteristic, FuseUtilizationCategory, ProtectionDeviceType, RcdType, } from "../../shared/constants/protection-device.js"; export interface CircuitTreeProtectionDevice { type: ProtectionDeviceType; ratedCurrentA: number; fuseUtilizationCategory?: FuseUtilizationCategory; tripCharacteristic?: BreakerTripCharacteristic; rcdType?: RcdType; ratedResidualCurrentMa?: number; } export interface CircuitTreeComponent { id: string; circuitListId: string; sectionId?: string; equipmentIdentifier: string; name: string; role: DistributionBoardComponentRole; placement: DistributionBoardComponentPlacement; sortOrder: number; protectionDevice?: CircuitTreeProtectionDevice; }