from sqlalchemy import (
    Column,
    String,
    Integer,
    Text,
    DateTime,
    ForeignKey,
    Index
)
from sqlalchemy.sql import func
from src.core.database import Base


class ComandoScreenshot(Base):
    __tablename__ = "comandosScreenshot"

    id = Column(Integer, primary_key=True, autoincrement=True)
    computador_id = Column(
        String(50),
        ForeignKey(
            "computadoresOnline.computador_id",
            name="fk_comandos_computadores",
        ),
        nullable=False,
        index=True,
    )
    solicitante = Column(String(255), nullable=True)
    status = Column(String(20), nullable=False, default="pending")
    screenshot_url = Column(Text, nullable=True, name="screenshotUrl")
    error_message = Column(Text, nullable=True, name="errorMessage")
    created_at = Column(DateTime, nullable=False, default=func.now())
    updated_at = Column(
        DateTime,
        nullable=False,
        default=func.now(),
        onupdate=func.now(),
    )

    __table_args__ = (
        Index("idx_computador_status", "computador_id", "status"),
        Index("idx_status", "status"),
    )
