Create/bank pages use AMBOSS-style facets: Exams, Disciplines, Symptoms, Systems, Articles, Saved. Personal question libraries with add-to-library in study modal. Adaptive session shortcuts from performance (including weakest topics). Quiz restart with fresh attempt. Category counts computed with two grouped queries. Migration n7a8b9c0d142. 63 backend and 97 frontend tests pass.
22 lines
921 B
Python
22 lines
921 B
Python
from datetime import datetime
|
|
|
|
from sqlalchemy import Column, DateTime, ForeignKey, Integer, String, UniqueConstraint
|
|
from app.database import Base
|
|
|
|
|
|
class UserCollection(Base):
|
|
__tablename__ = "user_collections"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
|
|
title = Column(String(200), nullable=False)
|
|
created_at = Column(DateTime, default=datetime.utcnow)
|
|
|
|
|
|
class UserCollectionQuestion(Base):
|
|
__tablename__ = "user_collection_questions"
|
|
__table_args__ = (UniqueConstraint("collection_id", "question_id", name="uq_collection_question"),)
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
collection_id = Column(Integer, ForeignKey("user_collections.id", ondelete="CASCADE"), nullable=False)
|
|
question_id = Column(Integer, ForeignKey("questions.id", ondelete="CASCADE"), nullable=False)
|