Main exception renamed to WizamartException

This commit is contained in:
2025-10-27 21:55:05 +01:00
parent 1e0cbf5927
commit 5c80ba17c5
15 changed files with 126 additions and 179 deletions

View File

@@ -57,17 +57,17 @@ class UserStatusChangeException(BusinessLogicException):
)
class VendorVerificationException(BusinessLogicException):
"""Raised when vendor verification fails."""
class ShopVerificationException(BusinessLogicException):
"""Raised when shop verification fails."""
def __init__(
self,
vendor_id: int,
shop_id: int,
reason: str,
current_verification_status: Optional[bool] = None,
):
details = {
"vendor_id": vendor_id,
"shop_id": shop_id,
"reason": reason,
}
@@ -75,8 +75,8 @@ class VendorVerificationException(BusinessLogicException):
details["current_verification_status"] = current_verification_status
super().__init__(
message=f"Vendor verification failed for vendor {vendor_id}: {reason}",
error_code="VENDOR_VERIFICATION_FAILED",
message=f"Shop verification failed for shop {shop_id}: {reason}",
error_code="SHOP_VERIFICATION_FAILED",
details=details,
)
@@ -189,3 +189,49 @@ class BulkOperationException(BusinessLogicException):
error_code="BULK_OPERATION_PARTIAL_FAILURE",
details=details,
)
class ConfirmationRequiredException(BusinessLogicException):
"""Raised when a destructive operation requires explicit confirmation."""
def __init__(
self,
operation: str,
message: Optional[str] = None,
confirmation_param: str = "confirm"
):
if not message:
message = f"Operation '{operation}' requires confirmation parameter: {confirmation_param}=true"
super().__init__(
message=message,
error_code="CONFIRMATION_REQUIRED",
details={
"operation": operation,
"confirmation_param": confirmation_param,
},
)
class VendorVerificationException(BusinessLogicException):
"""Raised when vendor verification fails."""
def __init__(
self,
vendor_id: int,
reason: str,
current_verification_status: Optional[bool] = None,
):
details = {
"vendor_id": vendor_id,
"reason": reason,
}
if current_verification_status is not None:
details["current_verification_status"] = current_verification_status
super().__init__(
message=f"Vendor verification failed for vendor {vendor_id}: {reason}",
error_code="VENDOR_VERIFICATION_FAILED",
details=details,
)