README: replace vague cross-app section with actual code dependencies
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled

List specific model imports, glue services, internal APIs, and
domain events that cart code actually references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-14 19:47:55 +00:00
parent 2af4dd2073
commit fb70c4c76d

View File

@@ -46,13 +46,26 @@ shared/ # Submodule → git.rose-ash.com/coop/shared.git
glue/ # Submodule → git.rose-ash.com/coop/glue.git
```
## Cross-App Integration
## Dependencies
- **Internal API:** `GET /internal/cart/summary` returns cart count + total for the current session/user. Called by blog and market context processors.
- **Calendar entries:** Checkout marks CalendarEntries (events domain) as "ordered" via `glue/services/order_lifecycle.py` — not by direct model write.
- **Payment confirmation:** When SumUp payment confirms, entries are marked "provisional" via the same glue service.
- **Domain events:** Emits `order.created` and `order.paid` events for observability.
- **Login adoption:** Anonymous cart/entries are adopted when `user.logged_in` event fires (handled by `glue/handlers/login_handlers.py`).
**Cross-app model imports:**
- `market.models.market.Product, CartItem` — cart services, checkout, API
- `market.models.market_place.MarketPlace` — checkout page-config resolution, API page filtering
- `events.models.calendars.CalendarEntry, Calendar` — checkout, API summary, calendar cart services
- `blog.models.ghost_content.Post``app.py` context processor, API page-slug lookup
**Glue services:**
- `glue.services.order_lifecycle.claim_entries_for_order` — checkout marks entries as "ordered"
- `glue.services.order_lifecycle.confirm_entries_for_order` — payment confirmation marks entries "provisional"
- `glue.services.order_lifecycle.get_entries_for_order` — checkout return page loads entries
- `glue.services.navigation.get_navigation_tree` — context processor builds site nav
**Internal APIs:**
- Exposes `GET /internal/cart/summary` — cart count + total for current session/user
**Domain events:**
- `checkout.py` emits `order.created` via `shared.events.emit_event`
- `check_sumup_status.py` emits `order.paid` via `shared.events.emit_event`
## Checkout Flow