refactor: improve admin notification service and add tests

- Minor improvements to admin notification service
- Add unit tests for admin notification service

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-21 21:01:43 +01:00
parent 0098093287
commit b46740351e
2 changed files with 776 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ import logging
from datetime import datetime, timedelta
from typing import Any
from sqlalchemy import and_, func, or_
from sqlalchemy import and_, case, func, or_
from sqlalchemy.orm import Session
from models.database.admin import AdminNotification, PlatformAlert
@@ -176,7 +176,7 @@ class AdminNotificationService:
)
# Get paginated results ordered by priority and date
priority_order = func.case(
priority_order = case(
(AdminNotification.priority == "critical", 1),
(AdminNotification.priority == "high", 2),
(AdminNotification.priority == "normal", 3),
@@ -211,7 +211,7 @@ class AdminNotificationService:
limit: int = 5,
) -> list[AdminNotification]:
"""Get recent unread notifications for header dropdown."""
priority_order = func.case(
priority_order = case(
(AdminNotification.priority == "critical", 1),
(AdminNotification.priority == "high", 2),
(AdminNotification.priority == "normal", 3),
@@ -554,7 +554,7 @@ class PlatformAlertService:
)
# Get paginated results
severity_order = func.case(
severity_order = case(
(PlatformAlert.severity == "critical", 1),
(PlatformAlert.severity == "error", 2),
(PlatformAlert.severity == "warning", 3),