| 12345678910111213141516171819202122232425262728293031323334 |
- import uuid
- from datetime import datetime
- from sqlalchemy import DateTime, String, Text, func
- from sqlalchemy.orm import Mapped, mapped_column
- from app.core.database import Base
- class Document(Base):
- __tablename__ = "documents"
- id: Mapped[str] = mapped_column(
- String(64),
- primary_key=True,
- default=lambda: f"doc-{uuid.uuid4().hex[:12]}",
- )
- title: Mapped[str] = mapped_column(String(255), nullable=False)
- content: Mapped[str] = mapped_column(Text, nullable=False, default="")
- format: Mapped[str] = mapped_column(String(32), nullable=False, default="markdown")
- session_id: Mapped[str | None] = mapped_column(String(128), nullable=True)
- template_id: Mapped[str | None] = mapped_column(String(64), nullable=True)
- source: Mapped[str] = mapped_column(String(32), nullable=False, default="chat")
- created_by: Mapped[str | None] = mapped_column(String(128), nullable=True)
- created_at: Mapped[datetime] = mapped_column(
- DateTime(timezone=True), server_default=func.now(), nullable=False
- )
- updated_at: Mapped[datetime] = mapped_column(
- DateTime(timezone=True),
- server_default=func.now(),
- onupdate=func.now(),
- nullable=False,
- )
|