If your modules extend the product history by providing a custom type of history, you might need to provide a human-readable label for that. Let's assume for example you would like NexoPOS 4.x to be able to have "borrowed" for product that can be exchanged, you'll then create a class that extends "App\Models\ProductHistory" and on it define your new constant.

Then while displaying the history table, instead of seeing "borrowed-in" or "borrowed-out", you can format that label using the filter "ns-product-history-operation" like this.