"""Pydantic schemas for alert endpoints.""" from datetime import datetime from typing import Optional, Any from pydantic import BaseModel class AlertCreate(BaseModel): """Request schema for creating an alert.""" watchlist_id: str type: str trigger_type: Optional[str] = None message: str severity: Optional[str] = "info" ticker: Optional[str] = None metadata: dict[str, Any] = {} class AlertUpdate(BaseModel): """Request schema for updating an alert.""" message: Optional[str] = None severity: Optional[str] = None trigger_type: Optional[str] = None metadata: Optional[dict[str, Any]] = None class AlertResponse(BaseModel): """Alert response.""" id: str watchlist_id: str type: str trigger_type: Optional[str] = None message: str severity: str = "info" ticker: Optional[str] = None status: str = "active" triggered_at: Optional[datetime] = None resolved_at: Optional[datetime] = None metadata: dict[str, Any] = {} created_at: Optional[datetime] = None class AlertListResponse(BaseModel): """Paginated alert list response.""" alerts: list[AlertResponse] total: int page: int page_size: int