DocDoeAI / app /models /flashcard.py
asnannp's picture
Deploy backend cd4237ff: support routes + rate limit + exam_date nullable + upload 413 fix
7c6ffa6
Raw
History Blame Contribute Delete
1.1 kB
from datetime import datetime
from typing import Any
from sqlalchemy import DateTime, ForeignKey, JSON, String, func
from sqlalchemy.orm import Mapped, mapped_column
from app.core.database import Base
from app.utils.ids import prefixed_id
class FlashcardSet(Base):
__tablename__ = "flashcard_sets"
id: Mapped[str] = mapped_column(
String(40),
primary_key=True,
default=lambda: prefixed_id("flash"),
)
user_id: Mapped[str] = mapped_column(
String(40),
ForeignKey("users.id"),
index=True,
nullable=False,
)
document_id: Mapped[str] = mapped_column(
String(40),
ForeignKey("documents.id"),
index=True,
nullable=False,
)
cards_json: Mapped[dict[str, Any]] = mapped_column(JSON, nullable=False)
model_used: Mapped[str] = mapped_column(
String(120),
default="mock-exam-tutor-v1",
nullable=False,
)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True),
server_default=func.now(),
nullable=False,
)