Files
ai-agents/dashboard/models.py
T

34 lines
1.2 KiB
Python

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")
config = Column(JSON, default=dict)
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")