CREATE MATERIALIZED VIEW search.party_items_mv AS
SELECT
p.id AS entity_id,
'party' AS entity_type,
u.val,
u.val AS ar_val,
CAST(NULL AS VARCHAR) AS filter_val
FROM search.active_parties_mv AS p
CROSS JOIN UNNEST(ARRAY[p.id, REPLACE(p.id, '-', ''), p.display_name, REPLACE(p.display_name, '-', '')]) AS u(val)
UNION ALL
SELECT
ft.entity_id,
'party',
CAST(NULL AS VARCHAR),
CAST(NULL AS VARCHAR),
ft.filter_val
FROM search.party_filter_tags_mv AS ft
UNION ALL
SELECT
ri.entity_id,
'party',
u.val,
u.val,
CAST(NULL AS VARCHAR)
FROM (
SELECT
entity_id,
value
FROM party.reference_identifiers
WHERE
entity_type = 'party'
) AS ri
JOIN search.party_customer_parties_mv AS cp
ON cp.id = ri.entity_id
CROSS JOIN UNNEST(ARRAY[ri.value, REPLACE(ri.value, '-', '')]) AS u(val)