Initial commit: invest-copilot app
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user