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>).