feat: add name for equipment joined with equipment master

main
MrWaradana 11 months ago
parent 074dbfd316
commit ca50f7107b

@ -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"

@ -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",
)

@ -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)

@ -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

Loading…
Cancel
Save