feat(backend): add database models

This commit is contained in:
2025-04-11 00:02:04 +01:00
parent 7ee9cbc14c
commit 0033b9e5b2
5 changed files with 292 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
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",
)