import uuid from sqlalchemy import Boolean, ForeignKey, String, Text from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class MemoryEntry(Base): __tablename__ = "memory_entries" user_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("users.id", ondelete="CASCADE"), nullable=False, index=True ) category: Mapped[str] = mapped_column(String(50), nullable=False) title: Mapped[str] = mapped_column(String(255), nullable=False) content: Mapped[str] = mapped_column(Text, nullable=False) source_document_id: Mapped[uuid.UUID | None] = mapped_column( UUID(as_uuid=True), ForeignKey("documents.id", ondelete="SET NULL"), nullable=True ) importance: Mapped[str] = mapped_column(String(20), nullable=False, default="medium") is_active: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True) user: Mapped["User"] = relationship(back_populates="memory_entries") # noqa: F821 source_document: Mapped["Document | None"] = relationship() # noqa: F821