Files
invest-copilot/src/backend/schemas/alert.py
T

50 lines
1.2 KiB
Python
Raw Normal View History

2026-05-30 11:28:59 -04:00
"""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