In order to support search and filtering across the various orders tables, we'll need to create a view. This is very similar to
MODORDSTOR-22 only a poLine is returned instead of the purchase order. The GET /order-lines API is for querying this new view.
|poLine.id||poLine.jsonb||purchaseOrder.jsonb + poLine.jsonb|
For now the metadata column will be a complete merging of json blobs from purchaseOrder and poLine. Later, we might transition this to a smaller subset of fields from those three tables.
Queries will match against the metadata column, but will return the jsonb column containing the poLine record. Unlike
MODORDSTOR-22, DISTINCT ON required here, making this slightly simpler.
- Create view when enabled for a tenant (See the attached SQL)
- implement logic to perform lookup (See the attached POC)
- The view is automatically created when the module is enabled for a tenant
- Unit tests exists and cover positive and negative scenarios, including ordering, paging, resultCounts, etc.