- Documentation
- /
- Catalogue
- /
- 03 — Integration
03 — Integration
Catalogue is a member of the Work & Supply network (message protocol v1). Its contract is
schema/catalogue.integration.dsl (authoring spec docs/implementation/integration_authoring_spec.md),
generated with python -m codegen.cli integration catalogue --network work_supply; the
handlers are in integration/handlers.py. The whole network is in
networks/work_supply/NETWORK_MAP.md.
What it owns
| Network entity | Model | Business reference |
|---|---|---|
catalogue.item |
CatalogueItem | item_code (entered; may be corrected — copies follow) |
catalogue.category |
CatalogueCategory | code (may be corrected — copies follow) |
catalogue.substitution |
ItemSubstitution | — |
catalogue.applicability |
ItemApplicability | — |
Messages (all implemented)
| Kind | Message | What |
|---|---|---|
| publishes | catalogue.item_created |
a new item |
| publishes | catalogue.item_status_changed / item_superseded |
an item's status changes / it is superseded |
| publishes | catalogue.substitution_changed / applicability_changed |
a substitution or fitment rule's status changes |
| answers | catalogue.search_items |
text search on code, description, part number and identifiers (pickers on other apps' forms) |
| answers | catalogue.item_profile |
one item in full |
| answers | catalogue.resolve_identifier |
any code / part number / barcode → the item |
| answers | catalogue.substitutes |
active substitutes of an item |
| answers | catalogue.applicability |
may this item be fitted to this asset type / model / position? |
| accepts | catalogue.register_item |
create an item (rejects a code already used) |
| accepts | catalogue.add_substitution |
record an alternative |
Nothing in the network consumes catalogue events yet; Inventory and Purchasing will keep their item descriptions current from them (projections) in a later stage.
Who refers to it
work_management (material requirements, removed components) and inventory (balances,
policies, transactions, reservations, receipt lines, counts) hold catalogue_item_cid +
catalogue_item_ref; the reference links ↗ to the item here (/resolve/<cid>).