"""Agent configuration model for VoIdea.""" from datetime import datetime from typing import Optional from sqlalchemy import Boolean, DateTime, String, Text from sqlalchemy.orm import Mapped, mapped_column from app.core.base import SQLBase, TimestampMixin, UUIDMixin class AgentConfig(SQLBase, UUIDMixin, TimestampMixin): __tablename__ = "agent_configs" agent_name: Mapped[str] = mapped_column( String(100), unique=True, nullable=False, index=True ) description: Mapped[Optional[str]] = mapped_column( Text, nullable=True, default="" ) is_enabled: Mapped[bool] = mapped_column( Boolean, default=True, nullable=False ) version: Mapped[str] = mapped_column( String(20), default="1.0.0", nullable=False ) checksum: Mapped[Optional[str]] = mapped_column( String(64), nullable=True ) config: Mapped[Optional[str]] = mapped_column( Text, nullable=True ) last_run_at: Mapped[Optional[datetime]] = mapped_column( DateTime(timezone=True), nullable=True )