fix: add missing relationship stubs to resolve SQLAlchemy mapper errors
- Purchase.user relationship to satisfy User.purchases back_populates - Store.user_accounts relationship to satisfy UserStoreAccount.store back_populates Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -9,6 +9,8 @@ import uuid
|
||||
from datetime import date, datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import (
|
||||
JSON,
|
||||
Date,
|
||||
@@ -20,10 +22,13 @@ from sqlalchemy import (
|
||||
UniqueConstraint,
|
||||
func,
|
||||
)
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from receiptwitness.shared.models.base import Base, TimestampMixin, UUIDPrimaryKeyMixin
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from receiptwitness.shared.models.user import User
|
||||
|
||||
|
||||
class Purchase(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
"""Stub: a shopping trip/receipt. Full definition in cartsnitch/common."""
|
||||
@@ -52,6 +57,8 @@ class Purchase(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
UniqueConstraint("user_id", "store_id", "receipt_id", name="uq_purchase_receipt"),
|
||||
)
|
||||
|
||||
user: Mapped["User"] = relationship(back_populates="purchases")
|
||||
|
||||
|
||||
class PurchaseItem(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
"""Stub: a line item on a receipt. Full definition in cartsnitch/common."""
|
||||
|
||||
@@ -7,12 +7,17 @@ UserStoreAccount. The canonical definitions live in cartsnitch/common.
|
||||
|
||||
import uuid
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from sqlalchemy import Float, ForeignKey, String
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
|
||||
from receiptwitness.shared.constants import StoreSlug
|
||||
from receiptwitness.shared.models.base import Base, TimestampMixin, UUIDPrimaryKeyMixin
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from receiptwitness.shared.models.user import UserStoreAccount
|
||||
|
||||
|
||||
class Store(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
"""Stub: canonical retailer. Full definition in cartsnitch/common."""
|
||||
@@ -24,6 +29,8 @@ class Store(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
logo_url: Mapped[str | None] = mapped_column(String(500))
|
||||
website_url: Mapped[str | None] = mapped_column(String(500))
|
||||
|
||||
user_accounts: Mapped[list["UserStoreAccount"]] = relationship(back_populates="store")
|
||||
|
||||
|
||||
class StoreLocation(UUIDPrimaryKeyMixin, TimestampMixin, Base):
|
||||
"""Stub: physical store location. Full definition in cartsnitch/common."""
|
||||
|
||||
Reference in New Issue
Block a user