Initial commit: Agent Command Center dashboard + weather briefing agent
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from sqlalchemy import Column, String, Text, DateTime, Integer, ForeignKey, JSON
|
||||
from sqlalchemy.orm import relationship
|
||||
from datetime import datetime, timezone
|
||||
from database import Base
|
||||
|
||||
|
||||
class Agent(Base):
|
||||
__tablename__ = "agents"
|
||||
|
||||
id = Column(String, primary_key=True)
|
||||
name = Column(String, nullable=False)
|
||||
description = Column(Text, default="")
|
||||
schedule = Column(String, default="manual")
|
||||
status = Column(String, default="active")
|
||||
created_at = Column(DateTime, default=lambda: datetime.now(timezone.utc))
|
||||
|
||||
runs = relationship("Run", back_populates="agent", order_by="Run.started_at.desc()")
|
||||
|
||||
|
||||
class Run(Base):
|
||||
__tablename__ = "runs"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
agent_id = Column(String, ForeignKey("agents.id"), nullable=False)
|
||||
started_at = Column(DateTime, default=lambda: datetime.now(timezone.utc))
|
||||
finished_at = Column(DateTime, nullable=True)
|
||||
status = Column(String, default="running")
|
||||
output = Column(Text, default="")
|
||||
error = Column(Text, default="")
|
||||
metadata_ = Column("metadata", JSON, default=dict)
|
||||
|
||||
agent = relationship("Agent", back_populates="runs")
|
||||
Reference in New Issue
Block a user