Spare parts
SUPERINTENDENT Spare parts attach to components. Each row has a part number, description, OEM / aftermarket flag, on-board quantity, and minimum-stock threshold.Adding spare parts
From a component's detail page → Spare Parts tab → Add spare part. The form prefills component_id. Submit creates a draft.
Bulk import
The Spare Parts → Import flow accepts a CSV/XLSX with columns (component_code, part_no, description, oem, qty_onboard, min_stock). Rows are validated against the active Master. Bad rows come back in a structured rejected[] with reasons (since v2.24).
On-board count
Updates to qty_onboard happen via the dashboard ring drilldown — pick a vessel, pick a component, increment / decrement. Each change is a draft.
Minimum stock alert
When qty_onboard < min_stock, the spare-part row turns amber on the dashboard. A daily cron emits a messenger thread on the notification domain listing all such rows for the vessels you're assigned to.