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

from app.models.database import Base


class AlfrescoFolderHistory(Base):
    """Histórico de cierres y reaperturas de expedientes (Series, Subseries, Expedientes)."""
    __tablename__ = "alfresco_folders_history"

    id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
    folder_id: Mapped[str] = mapped_column(String(255), ForeignKey("alfresco_folders.id", ondelete="CASCADE"), nullable=False, index=True)
    type: Mapped[str] = mapped_column(String(20), nullable=False)  # "close" | "reopen"
    date: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
    user: Mapped[str | None] = mapped_column(String(255), nullable=True)
    comment: Mapped[str | None] = mapped_column(Text, nullable=True)
    created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now())
