From b337c660632dc84fc010c5bc09e481d69dcc9af4 Mon Sep 17 00:00:00 2001 From: MrWaradana Date: Wed, 5 Nov 2025 09:57:13 +0700 Subject: [PATCH] fix: top 10 economic life limit based on minimum_eac_year --- src/equipment/service.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/equipment/service.py b/src/equipment/service.py index 2ee2b96..0a33702 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -121,9 +121,15 @@ async def get_top_10_economic_life(*, db_session: DbSession) -> list[Equipment]: # Order by difference between current year and minimum_year # Add absolute difference between current year and minimum_eac_year as a new column - query = query.add_columns( - func.abs(current_year - Equipment.minimum_eac_year).label("economic_life") - ).order_by(func.abs(current_year - Equipment.minimum_eac_year).desc()) + # Filter out rows where minimum_eac_year is null and limit to 10 results + query = ( + query.add_columns( + func.abs(current_year - Equipment.minimum_eac_year).label("economic_life") + ) + .filter(Equipment.minimum_eac_year != None) + .order_by(func.abs(current_year - Equipment.minimum_eac_year).desc()) + .limit(10) + ) result = await db_session.execute(query)