Decouple cart: use shared.models for all cross-app imports
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 50s

- Replace all imports from blog.models, market.models, events.models
  and bare models.* with shared.models equivalents
- Convert cart/models/order.py and page_config.py to re-export stubs
- Update shared + glue submodule pointers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-18 20:58:10 +00:00
parent d6d82664d6
commit 8527ddb84b
14 changed files with 32 additions and 183 deletions

View File

@@ -1,39 +1 @@
from __future__ import annotations
from datetime import datetime
from typing import Optional
from sqlalchemy import Integer, String, Text, DateTime, func, JSON, text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from shared.db.base import Base
class PageConfig(Base):
__tablename__ = "page_configs"
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
container_type: Mapped[str] = mapped_column(
String(32), nullable=False, server_default=text("'page'"),
)
container_id: Mapped[int] = mapped_column(Integer, nullable=False)
features: Mapped[dict] = mapped_column(
JSON, nullable=False, server_default="{}"
)
# Per-page SumUp credentials (NULL until configured)
sumup_merchant_code: Mapped[Optional[str]] = mapped_column(String(64), nullable=True)
sumup_api_key: Mapped[Optional[str]] = mapped_column(Text(), nullable=True)
sumup_checkout_prefix: Mapped[Optional[str]] = mapped_column(String(64), nullable=True)
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), nullable=False, server_default=func.now()
)
updated_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True), nullable=False, server_default=func.now()
)
deleted_at: Mapped[Optional[datetime]] = mapped_column(
DateTime(timezone=True), nullable=True
)
from shared.models.page_config import PageConfig # noqa: F401