From 7bb05d4987174b431c147443316aaccb6a79e369 Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Fri, 27 Feb 2026 21:58:41 +0300 Subject: [PATCH] feat(models): refine price aggregation to include active stocks update `min_price` and `max_price` methods to consider only active stocks in price aggregation. This ensures more accurate price calculations by filtering out inactive stock entries. --- engine/core/models.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/engine/core/models.py b/engine/core/models.py index 690f7014..3bcacd05 100644 --- a/engine/core/models.py +++ b/engine/core/models.py @@ -464,14 +464,18 @@ class Category(NiceModel, MPTTModel): @cached_property def min_price(self) -> float: return ( - self.products.filter(is_active=True).aggregate(Min("price"))["price__min"] + self.products.filter( + is_active=True, stocks__is_active=True + ).aggregate(Min("stocks__price"))["stocks__price__min"] or 0.0 ) @cached_property def max_price(self) -> float: return ( - self.products.filter(is_active=True).aggregate(Max("price"))["price__max"] + self.products.filter( + is_active=True, stocks__is_active=True + ).aggregate(Max("stocks__price"))["stocks__price__max"] or 0.0 )