From cd434b3a19aedd4ca302b789d537780a994225b0 Mon Sep 17 00:00:00 2001 From: jtricerolph Date: Sun, 12 Jul 2026 12:38:47 +0000 Subject: [PATCH] Make User a proper SQLAlchemy model so kds_course_bumps FK resolves MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kds_course_bumps.bumped_by_user_id references users.id — SQLAlchemy needs the User model in Base.metadata to resolve this at startup. Route handlers still receive a SimpleNamespace from auth.py at runtime. Co-Authored-By: Claude Sonnet 4.6 --- backend/models/user.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/models/user.py b/backend/models/user.py index a06df6f..3940e0c 100644 --- a/backend/models/user.py +++ b/backend/models/user.py @@ -21,11 +21,13 @@ class Kitchen(Base): ) -class User: - """Type stub for Depends(get_current_user) annotations — runtime is a SimpleNamespace.""" - id: int - email: str - name: str - is_admin: bool - kitchen_id: int - caps: list +class User(Base): + """Minimal SQLAlchemy model so FKs referencing users.id resolve at startup. + Route handlers receive a SimpleNamespace from auth.py at runtime, not instances + of this class — this definition exists only for SQLAlchemy FK resolution.""" + __tablename__ = "users" + + id: Mapped[int] = mapped_column(primary_key=True, index=True) + email: Mapped[str] = mapped_column(String(255), nullable=False) + name: Mapped[str | None] = mapped_column(String(255), nullable=True) + is_admin: Mapped[bool] = mapped_column(default=False)