From fb70c4c76d4ac8ede566b7e39f087b556acb7823 Mon Sep 17 00:00:00 2001 From: giles Date: Sat, 14 Feb 2026 19:47:55 +0000 Subject: [PATCH] README: replace vague cross-app section with actual code dependencies List specific model imports, glue services, internal APIs, and domain events that cart code actually references. Co-Authored-By: Claude Opus 4.6 --- README.md | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 95c9cc3..7dfabed 100644 --- a/README.md +++ b/README.md @@ -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