Currently the resource "type" in the internal agreements KB can populated freely by external systems which can lead to a wide range of types being populated. However, this data is also used for specific logic both on data import and once the 'type' field has been populated it is used to control display logic ("serial", "monograph") in the UI
The type used to control the display logic should be separate to the publication type being defined by the external systems.
The 'type' that is used explicitly by the system for functional purposes (e.g. display) should should be limited (for now) to `serial` and `monograph` (there are no plans currently to extend this list of display types). These should be the only valid values for this property.
- A new 'publication type' property should be supported to store the publication/material types specified in external systems that are used by Agreements
- Types specified by external systems should be populated into the new publication type property
- There should be a user configurable mapping between publication types used by external systems and the `type` used by Agreements for logic/display purposes so that as external sources add new publication types, it is possible for libraries to map these to the internal agreement types (serial || monograph) without modifying code
Where the 'type' is currently used for search or is displayed on screen to the user, the new publication type should be displayed instead