From f29c68323f86c4d49780c4a58d62764dc3a54df8 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Mon, 4 Aug 2025 11:01:28 +0700 Subject: [PATCH] fix --- src/aeros_equipment/service.py | 2 +- src/aeros_simulation/model.py | 7 +++++++ src/aeros_simulation/schema.py | 5 +++-- src/aeros_simulation/service.py | 4 +++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/aeros_equipment/service.py b/src/aeros_equipment/service.py index 0f9862c..57f6f47 100644 --- a/src/aeros_equipment/service.py +++ b/src/aeros_equipment/service.py @@ -311,7 +311,7 @@ async def update_equipment_for_simulation(*, db_session: DbSession, project_name if custom_input and eq["equipmentName"] in custom_input: eq["cmDisP1"] = reliabiility.get("cmDisP1", 0) eq["relDisType"] = "Fixed" - eq["relDisP1"] = custom_input[eq["equipmentName"]] + eq["relDisP1"] = float(custom_input[eq["equipmentName"]]) eq["relDisP2"] = 0 reqNodeInputs.append(eq) diff --git a/src/aeros_simulation/model.py b/src/aeros_simulation/model.py index 1c0b39f..7ca894c 100644 --- a/src/aeros_simulation/model.py +++ b/src/aeros_simulation/model.py @@ -61,6 +61,13 @@ class AerosNode(Base, DefaultMixin): foreign_keys=[schematic_id], ) + equipment = relationship( + "MasterEquipment", + lazy="selectin", + primaryjoin="and_(AerosNode.node_name == foreign(MasterEquipment.location_tag))", + uselist=False, # Add this if it's a one-to-one relationship + ) + children = relationship( "AerosNode", back_populates="parent", foreign_keys=[schematic_id] ) diff --git a/src/aeros_simulation/schema.py b/src/aeros_simulation/schema.py index e4a52c5..3f9f6a1 100644 --- a/src/aeros_simulation/schema.py +++ b/src/aeros_simulation/schema.py @@ -5,7 +5,7 @@ from uuid import UUID from pydantic import Field from src.models import BaseModel, Pagination - +from src.aeros_equipment.schema import Equipment # Pydantic models for request/response validation class SimulationInput(BaseModel): @@ -26,6 +26,7 @@ class SimulationNode(BaseModel): structure_name: Optional[str] schematic_name: Optional[str] schematic_id: Optional[UUID] + equipment:Optional[List[Equipment]] class SimulationCalc(BaseModel): id: UUID @@ -88,7 +89,7 @@ class SimulationData(BaseModel): simulation_name: str status: str schematic_name: str - reliability: dict + reliability: Optional[dict] created_at: datetime diff --git a/src/aeros_simulation/service.py b/src/aeros_simulation/service.py index bdfeece..d182238 100644 --- a/src/aeros_simulation/service.py +++ b/src/aeros_simulation/service.py @@ -487,7 +487,9 @@ async def get_simulation_with_calc_result( ).filter(AerosNode.structure_name.contains(schematic_name)) query = query.options( - selectinload(AerosSimulationCalcResult.aeros_node)) + selectinload(AerosSimulationCalcResult.aeros_node)).options( + selectinload(AerosNode.equipment) + ) simulation = await db_session.execute(query)