import uuid from sqlalchemy import ForeignKey, String, Text from sqlalchemy.dialects.postgresql import ARRAY, UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class GeneratedPdf(Base): __tablename__ = "generated_pdfs" user_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True ) title: Mapped[str] = mapped_column(String(255), nullable=False) storage_path: Mapped[str] = mapped_column(Text, nullable=False) source_document_ids: Mapped[list[uuid.UUID] | None] = mapped_column(ARRAY(UUID(as_uuid=True)), nullable=True) source_chat_id: Mapped[uuid.UUID | None] = mapped_column( UUID(as_uuid=True), ForeignKey("chats.id", ondelete="SET NULL"), nullable=True ) user: Mapped["User"] = relationship(back_populates="generated_pdfs") # noqa: F821