Features: 1) Add method parameter to prepare_for_stock_update to support multiple actions (deactivate, delete, update description);

Fixes: None;

Extra: 1) Add `QuerySet` import to support type hinting; 2) Improve error handling with descriptive `ValueError` for invalid method.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-27 02:19:54 +03:00
parent 3020a40747
commit 61033a58d6

View file

@ -283,8 +283,18 @@ class AbstractVendor:
product__in=self.get_products_queryset(), product__orderproduct__isnull=True
)
def prepare_for_stock_update(self):
self.get_products_queryset().update(is_active=False)
def prepare_for_stock_update(self, method: str = "deactivate") -> None:
products = self.get_products_queryset()
match method:
case "deactivate":
products.update(is_active=False)
case "delete":
products.delete()
case "description":
products.update(description="EVIBES_DELETED_PRODUCT")
case _:
raise ValueError(f"Invalid method {method!r} for stock update...")
def delete_inactives(self):
self.get_products_queryset().filter(is_active=False).delete()