#include #include #include "powerEntity.h" #include "powerTerminal.h" QJsonObject PowerEntity::toJson() const { QJsonObject obj; obj["id"] = m_id; obj["type"] = static_cast(m_type); obj["name"] = m_name; QJsonArray childrenArray; for (auto child : m_children) childrenArray.append(child->id()); obj["children"] = childrenArray; return obj; } void PowerEntity::addTerminal(PowerTerminal* terminal) { if (terminal && terminal->parentEntityId() == m_id) { m_terminals.append(terminal); terminal->setParent(this); emit terminalAdded(terminal); } } void PowerEntity::removeTerminal(const QString& terminalId) { auto it = std::find_if(m_terminals.begin(), m_terminals.end(), [terminalId](PowerTerminal* t) { return t->id() == terminalId; }); if (it != m_terminals.end()) { PowerTerminal* term = *it; m_terminals.erase(it); term->deleteLater(); emit terminalRemoved(terminalId); } } PowerTerminal* PowerEntity::findTerminal(const QString& terminalId) const { auto it = std::find_if(m_terminals.begin(), m_terminals.end(), [terminalId](PowerTerminal* t) { return t->id() == terminalId; }); return (it != m_terminals.end()) ? *it : nullptr; }