diff --git a/services/notification/app/repositories/base.py b/services/notification/app/repositories/base.py index 564b7c68..03601ec7 100644 --- a/services/notification/app/repositories/base.py +++ b/services/notification/app/repositories/base.py @@ -237,20 +237,26 @@ class NotificationBaseRepository(BaseRepository): # Validate priority if present if "priority" in data and data["priority"]: + from enum import Enum + priority_value = data["priority"].value if isinstance(data["priority"], Enum) else data["priority"] valid_priorities = ["low", "normal", "high", "urgent"] - if data["priority"] not in valid_priorities: + if priority_value not in valid_priorities: errors.append(f"Invalid priority. Must be one of: {valid_priorities}") - + # Validate notification type if present if "type" in data and data["type"]: + from enum import Enum + type_value = data["type"].value if isinstance(data["type"], Enum) else data["type"] valid_types = ["email", "whatsapp", "push", "sms"] - if data["type"] not in valid_types: + if type_value not in valid_types: errors.append(f"Invalid notification type. Must be one of: {valid_types}") - + # Validate status if present if "status" in data and data["status"]: + from enum import Enum + status_value = data["status"].value if isinstance(data["status"], Enum) else data["status"] valid_statuses = ["pending", "sent", "delivered", "failed", "cancelled"] - if data["status"] not in valid_statuses: + if status_value not in valid_statuses: errors.append(f"Invalid status. Must be one of: {valid_statuses}") return {