Delete legacy alerts
This commit is contained in:
@@ -14,12 +14,10 @@ import structlog
|
||||
from shared.auth.decorators import get_current_user_dep, get_current_tenant_id_dep
|
||||
from app.core.database import get_db
|
||||
from app.services.production_service import ProductionService
|
||||
from app.services.production_alert_service import ProductionAlertService
|
||||
from app.schemas.production import (
|
||||
ProductionBatchCreate, ProductionBatchUpdate, ProductionBatchStatusUpdate,
|
||||
ProductionBatchResponse, ProductionBatchListResponse,
|
||||
DailyProductionRequirements, ProductionDashboardSummary, ProductionMetrics,
|
||||
ProductionAlertResponse, ProductionAlertListResponse
|
||||
)
|
||||
from app.core.config import settings
|
||||
|
||||
@@ -34,10 +32,6 @@ def get_production_service() -> ProductionService:
|
||||
return ProductionService(database_manager, settings)
|
||||
|
||||
|
||||
def get_production_alert_service() -> ProductionAlertService:
|
||||
"""Dependency injection for production alert service"""
|
||||
from app.core.database import database_manager
|
||||
return ProductionAlertService(database_manager, settings)
|
||||
|
||||
|
||||
# ================================================================
|
||||
@@ -319,74 +313,6 @@ async def get_production_schedule(
|
||||
raise HTTPException(status_code=500, detail="Failed to get production schedule")
|
||||
|
||||
|
||||
# ================================================================
|
||||
# ALERTS ENDPOINTS
|
||||
# ================================================================
|
||||
|
||||
@router.get("/tenants/{tenant_id}/production/alerts", response_model=ProductionAlertListResponse)
|
||||
async def get_production_alerts(
|
||||
tenant_id: UUID = Path(...),
|
||||
active_only: bool = Query(True, description="Return only active alerts"),
|
||||
current_tenant: str = Depends(get_current_tenant_id_dep),
|
||||
current_user: dict = Depends(get_current_user_dep),
|
||||
alert_service: ProductionAlertService = Depends(get_production_alert_service)
|
||||
):
|
||||
"""Get production-related alerts"""
|
||||
try:
|
||||
if str(tenant_id) != current_tenant:
|
||||
raise HTTPException(status_code=403, detail="Access denied to this tenant")
|
||||
|
||||
if active_only:
|
||||
alerts = await alert_service.get_active_alerts(tenant_id)
|
||||
else:
|
||||
# Get all alerts (would need additional repo method)
|
||||
alerts = await alert_service.get_active_alerts(tenant_id)
|
||||
|
||||
alert_responses = [ProductionAlertResponse.model_validate(alert) for alert in alerts]
|
||||
|
||||
logger.info("Retrieved production alerts",
|
||||
count=len(alerts), tenant_id=str(tenant_id))
|
||||
|
||||
return ProductionAlertListResponse(
|
||||
alerts=alert_responses,
|
||||
total_count=len(alerts),
|
||||
page=1,
|
||||
page_size=len(alerts)
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
logger.error("Error getting production alerts",
|
||||
error=str(e), tenant_id=str(tenant_id))
|
||||
raise HTTPException(status_code=500, detail="Failed to get production alerts")
|
||||
|
||||
|
||||
@router.post("/tenants/{tenant_id}/production/alerts/{alert_id}/acknowledge", response_model=ProductionAlertResponse)
|
||||
async def acknowledge_alert(
|
||||
tenant_id: UUID = Path(...),
|
||||
alert_id: UUID = Path(...),
|
||||
current_tenant: str = Depends(get_current_tenant_id_dep),
|
||||
current_user: dict = Depends(get_current_user_dep),
|
||||
alert_service: ProductionAlertService = Depends(get_production_alert_service)
|
||||
):
|
||||
"""Acknowledge a production-related alert"""
|
||||
try:
|
||||
if str(tenant_id) != current_tenant:
|
||||
raise HTTPException(status_code=403, detail="Access denied to this tenant")
|
||||
|
||||
acknowledged_by = current_user.get("email", "unknown_user")
|
||||
alert = await alert_service.acknowledge_alert(tenant_id, alert_id, acknowledged_by)
|
||||
|
||||
logger.info("Acknowledged production alert",
|
||||
alert_id=str(alert_id),
|
||||
acknowledged_by=acknowledged_by,
|
||||
tenant_id=str(tenant_id))
|
||||
|
||||
return ProductionAlertResponse.model_validate(alert)
|
||||
|
||||
except Exception as e:
|
||||
logger.error("Error acknowledging production alert",
|
||||
error=str(e), alert_id=str(alert_id), tenant_id=str(tenant_id))
|
||||
raise HTTPException(status_code=500, detail="Failed to acknowledge alert")
|
||||
|
||||
|
||||
# ================================================================
|
||||
|
||||
Reference in New Issue
Block a user