diff --git a/src/equipment/__pycache__/model.cpython-311.pyc b/src/equipment/__pycache__/model.cpython-311.pyc index 06ea0b0..6fb67e9 100644 Binary files a/src/equipment/__pycache__/model.cpython-311.pyc and b/src/equipment/__pycache__/model.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/router.cpython-311.pyc b/src/equipment/__pycache__/router.cpython-311.pyc index 6ac8b76..b42a9ed 100644 Binary files a/src/equipment/__pycache__/router.cpython-311.pyc and b/src/equipment/__pycache__/router.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/schema.cpython-311.pyc b/src/equipment/__pycache__/schema.cpython-311.pyc index 754cd1c..ca9c585 100644 Binary files a/src/equipment/__pycache__/schema.cpython-311.pyc and b/src/equipment/__pycache__/schema.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/service.cpython-311.pyc b/src/equipment/__pycache__/service.cpython-311.pyc index 027b2ad..0c970e4 100644 Binary files a/src/equipment/__pycache__/service.cpython-311.pyc and b/src/equipment/__pycache__/service.cpython-311.pyc differ diff --git a/src/equipment/model.py b/src/equipment/model.py index 0c74809..a5e77a2 100644 --- a/src/equipment/model.py +++ b/src/equipment/model.py @@ -18,6 +18,15 @@ class Equipment(Base, DefaultMixin, IdentityMixin): min_eac_info = Column(Text, nullable=True) harga_saat_ini = Column(Float, nullable=True) + equipment_master = relationship( + "EquipmentMaster", + # backref="equipment", + lazy="raise", + primaryjoin="and_(Equipment.assetnum == foreign(EquipmentMaster.assetnum))", + viewonly=True, + uselist=False, + ) + class MasterRecords(Base, DefaultMixin, IdentityMixin): __tablename__ = "lcc_equipment_tr_data" diff --git a/src/equipment/router.py b/src/equipment/router.py index e559ccb..a27006c 100644 --- a/src/equipment/router.py +++ b/src/equipment/router.py @@ -36,14 +36,14 @@ async def get_equipments( ): """Get all equipment pagination.""" # return - equipment_datas = await get_all( + equipment_data = await get_all( db_session=db_session, items_per_page=items_per_page, search=search, common=common, ) return StandardResponse( - data=equipment_datas, + data=equipment_data, message="Data retrieved successfully", ) diff --git a/src/equipment/schema.py b/src/equipment/schema.py index 0ccbf81..565c30b 100644 --- a/src/equipment/schema.py +++ b/src/equipment/schema.py @@ -86,6 +86,7 @@ class EquipmentRead(DefaultBase): class EquipmentDataMaster(EquipmentBase): id: UUID + equipment_master: EquipmentMasterBase forecasting_target_year: Optional[int] = Field(None, nullable=True) min_eac_info: Optional[str] = Field(None, nullable=True) harga_saat_ini: Optional[float] = Field(None, nullable=True) diff --git a/src/equipment/service.py b/src/equipment/service.py index 9961631..4f248d4 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -90,14 +90,18 @@ async def get_all( *, db_session: DbSession, items_per_page: int, search: str = None, common ) -> list[Equipment]: """Returns all documents.""" - query = Select(Equipment) + query = ( + Select(Equipment) + .join(EquipmentMaster, Equipment.assetnum == EquipmentMaster.assetnum) + .options(selectinload(Equipment.equipment_master)) + ) if search: query = query.filter( cast(Equipment.acquisition_year, String).ilike(f"%{search}%") | cast(Equipment.assetnum, String).ilike(f"%{search}%") + | cast(EquipmentMaster.name, String).ilike(f"%{search}%") ) - common["items_per_page"] = items_per_page result = await search_filter_sort_paginate(model=query, **common) return result