"""Terminal session database model.""" import uuid from datetime import datetime from sqlalchemy import DateTime, ForeignKey, String from sqlalchemy import Uuid as UUID from sqlalchemy.orm import Mapped, mapped_column from src.models.base import Base, TimestampMixin, UUIDPrimaryKeyMixin class TerminalSessionModel(UUIDPrimaryKeyMixin, TimestampMixin, Base): """Database model for terminal session metadata.""" __tablename__ = "terminal_sessions" instance_id: Mapped[uuid.UUID] = mapped_column( UUID(), ForeignKey("tool_instances.id", ondelete="CASCADE"), nullable=False, index=True, ) name: Mapped[str | None] = mapped_column(String(255), nullable=True) status: Mapped[str] = mapped_column( String(50), nullable=False, default="active", ) last_activity_at: Mapped[datetime | None] = mapped_column( DateTime(timezone=True), nullable=True, ) closed_at: Mapped[datetime | None] = mapped_column( DateTime(timezone=True), nullable=True, )