Features: 1) Added inactivation method parameter to delete_inactives for flexible product deletion options.

Fixes: 1) Corrected error message in `products` update case for consistent terminology.

Extra: 1) Refactored `delete_inactives` logic for clarity and added validation for inactivation methods.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-27 02:22:40 +03:00
parent 61033a58d6
commit 718f3dffa9

View file

@ -294,10 +294,18 @@ class AbstractVendor:
case "description":
products.update(description="EVIBES_DELETED_PRODUCT")
case _:
raise ValueError(f"Invalid method {method!r} for stock update...")
raise ValueError(f"Invalid method {method!r} for products update...")
def delete_inactives(self):
self.get_products_queryset().filter(is_active=False).delete()
def delete_inactives(self, inactivation_method: str = "deactivate"):
products = self.get_products_queryset()
match inactivation_method:
case "deactivate":
products.filter(is_active=False).delete()
case "description":
products.filter(description__exact="EVIBES_DELETED_PRODUCT").delete()
case _:
raise ValueError(f"Invalid method {inactivation_method!r} for products cleaner...")
def delete_belongings(self):
self.get_products_queryset().delete()