from datetime import datetime
from sqlalchemy import String, DateTime, Integer, ForeignKey, func
from sqlalchemy.orm import Mapped, mapped_column

from app.models.database import Base


class AlfrescoFileHistory(Base):
    """Trazabilidad de movimientos de archivos entre Series, Subseries y Expedientes."""
    __tablename__ = "alfresco_file_history"

    id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
    file_id: Mapped[str] = mapped_column(String(255), ForeignKey("alfresco_files.id", ondelete="CASCADE"), nullable=False)
    folder_id: Mapped[str] = mapped_column(String(255), ForeignKey("alfresco_folders.id", ondelete="CASCADE"), nullable=False)
    status: Mapped[str] = mapped_column(String(20), default="Activo")  # Activo, Movido, Eliminado
    created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
