from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped from sqlalchemy.dialects.postgresql import UUID, json from sqlalchemy import DateTime, func import datetime import uuid class Base(DeclarativeBase): pass class Execution(Base): __tablename__ = "execution_logs" id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) workflow_name: Mapped[str] total_commands: Mapped[int] execution_data: Mapped[dict|list|None] = mapped_column(json.JSONB()) finish_time: Mapped[datetime.datetime | None] = mapped_column(DateTime(timezone=True)) status: Mapped[int] = mapped_column(default=0,server_default="0") #0 is created, 1 is running init stuff, 2 is running commands, 3 is complete, 4 is failed. -1 is error