Files
codetutor/backend/src/models/category.py
T

26 lines
766 B
Python

from typing import TYPE_CHECKING
from sqlalchemy import String, Text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from src.models.base import Base, UUIDMixin
if TYPE_CHECKING:
from src.models.question import Question
class Category(Base, UUIDMixin):
"""Question category (e.g., Arrays, Strings, Trees)."""
__tablename__ = "categories"
name: Mapped[str] = mapped_column(String(100), unique=True, nullable=False)
slug: Mapped[str] = mapped_column(String(100), unique=True, nullable=False)
description: Mapped[str | None] = mapped_column(Text, nullable=True)
# Relationships
questions: Mapped[list["Question"]] = relationship(
secondary="question_categories",
back_populates="categories",
)