Initial commit: invest-copilot app

This commit is contained in:
2026-05-30 11:29:20 -04:00
commit c70d6035cc
193 changed files with 22423 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
"""Alert model."""
from datetime import datetime
from typing import Any, Optional
from pydantic import BaseModel, ConfigDict
class Alert(BaseModel):
"""Pydantic model for alerts table."""
model_config = ConfigDict(from_attributes=True)
id: Optional[str] = None
watchlist_id: str
strategy_id: Optional[str] = None
ticker: Optional[str] = None
type: str # strategy_trigger, sec_filing, sentiment, rotation, price
trigger_type: Optional[str] = None
message: str
severity: str = "info" # info, warning, critical
status: str = "active" # active, resolved, dismissed
triggered_at: Optional[datetime] = None
resolved_at: Optional[datetime] = None
metadata: Optional[dict] = None
created_at: Optional[datetime] = None
def to_dict(self) -> dict:
return {
"id": self.id,
"watchlistId": self.watchlist_id,
"strategyId": self.strategy_id,
"ticker": self.ticker,
"type": self.type,
"triggerType": self.trigger_type,
"message": self.message,
"severity": self.severity,
"status": self.status,
"triggeredAt": self.triggered_at.isoformat() if self.triggered_at else None,
"resolvedAt": self.resolved_at.isoformat() if self.resolved_at else None,
"metadata": self.metadata,
}