README: replace vague cross-app section with actual code dependencies
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s

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

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-14 19:47:45 +00:00
parent 43bc03836d
commit 45b748eb6d

View File

@@ -43,11 +43,23 @@ shared/ # Submodule → git.rose-ash.com/coop/shared.git
glue/ # Submodule → git.rose-ash.com/coop/glue.git
```
## Cross-App Integration
## Dependencies
- **Login adoption:** When a user logs in via magic link, `auth/routes.py` emits a `user.logged_in` domain event. The glue layer's `login_handlers.py` picks it up and adopts anonymous cart items + calendar entries.
- **Cart widget:** Context processor fetches cart summary via `internal_api.get("cart", "/internal/cart/summary")`.
- **Internal API:** `/internal/coop/` endpoints serve blog data to other apps.
**Cross-app model imports:**
- `events.models.calendars.Calendar` — post routes and Ghost sync use calendars attached to pages
- `market.models.market_place.MarketPlace` — post admin manages marketplaces on pages
- `cart.models.page_config.PageConfig` — post admin manages per-page SumUp config
**Glue services:**
- `glue.services.navigation.get_navigation_tree` — context processor builds site nav
- `glue.services.relationships.attach_child / detach_child` — post admin attaches/detaches calendars and marketplaces to pages
**Internal APIs:**
- Calls `GET /internal/cart/summary` — context processor for cart widget
- Exposes `/internal/coop/*` — serves blog data to other apps
**Domain events:**
- `auth/routes.py` emits `user.logged_in` via `shared.events.emit_event`
## Running