INSERT INTO BLC_TENANT_CATALOG (
ID,
CATALOG_NAME,
CATALOG_LEVEL,
CATALOG_LOCALE,
DEFAULT_CURRENCY,
TRK_ARCHIVED,
TRK_TENANT_ID,
TYPE,
OWNING_APPLICATION
)
SELECT CONCAT(SUBSTRING(APP.ID, 0, 28), ADDL_INFO.ID_PART),
CONCAT(APP.NAME, ADDL_INFO.NAME_PART, ' Search Group'),
ADDL_INFO.CATALOG_LEVEL,
APP.DEFAULT_LOCALE,
APP.DEFAULT_CURRENCY,
APP.TRK_ARCHIVED,
APP.TRK_TENANT_ID,
'SEARCH_GROUP',
CASE WHEN ADDL_INFO.OWNED = 1 THEN APP.ID END
FROM BLC_TENANT_APPLICATION APP
CROSS JOIN (SELECT ID_PART, CATALOG_LEVEL, NAME_PART, OWNED
FROM (VALUES
('_SG_MAIN', 2, ' ', 0),
('_SG_IMPL', 3, ' Implicit', 1))
T(ID_PART, CATALOG_LEVEL, NAME_PART, OWNED)) AS ADDL_INFO
WHERE APP.ID NOT IN
(SELECT APPLICATION_ID FROM BLC_TENANT_APPLICATION_CATALOG WHERE TYPE = 'SEARCH_GROUP');
/* Add Parents */
INSERT INTO BLC_TENANT_CATALOG_REF (
ID,
MUTABILITY_TYPE,
NAME,
PARENT_CATALOG_ID,
CHILD_CATALOG_ID,
PARENTS_ORDER
)
SELECT CONCAT(SUBSTRING(APP.ID, 0, 28), ADDL_INFO.ID_PART),
'CUSTOMIZABLE',
CONCAT(APP.NAME, ADDL_INFO.NAME_PART, ' Search Group'),
CASE WHEN ADDL_INFO.PARENT IS NULL
THEN CONCAT(SUBSTRING(APP.ID, 0, 28), '_SG_MAIN')
ELSE ADDL_INFO.PARENT END,
CONCAT(SUBSTRING(APP.ID, 0, 28), ADDL_INFO.ID_PART),
0
FROM BLC_TENANT_APPLICATION APP
CROSS JOIN (SELECT ID_PART, CATALOG_LEVEL, NAME_PART, OWNED, PARENT
FROM (VALUES
('_SG_MAIN', 2, ' ', 0, '01HHZFNK69YQPX70CB28KK7SFD'),
('_SG_IMPL', 3, ' Implicit', 1, NULL)
) T(ID_PART, CATALOG_LEVEL, NAME_PART, OWNED, PARENT)) AS ADDL_INFO
WHERE APP.ID NOT IN
(SELECT APPLICATION_ID FROM BLC_TENANT_APPLICATION_CATALOG WHERE TYPE = 'SEARCH_GROUP');
/* Notifications */
INSERT INTO BLC_NOTIFICATION_STATE (
ID,
CONTAINER,
ENTITY_TYPE,
CHANGE_TIMESTAMP,
ACKED,
STOPPED,
ATTEMPTS,
NOTIFICATION_NAME
)
SELECT CONCAT(SUBSTRING(APP.ID, 0, 28), ADDL_INFO.ID_PART),
CONCAT(SUBSTRING(APP.ID, 0, 28), ADDL_INFO.ID_PART),
'com.broadleafcommerce.tenant.provider.jpa.domain.JpaTenantCatalog',
CURRENT_TIMESTAMP,
'N',
'N',
0,
'PERSISTENCE'
FROM BLC_TENANT_APPLICATION APP
CROSS JOIN (SELECT ID_PART, CATALOG_LEVEL, NAME_PART, OWNED
FROM (VALUES
('_SG_MAIN', 2, ' ', 0),
('_SG_IMPL', 3, ' Implicit', 1)
) T(ID_PART, CATALOG_LEVEL, NAME_PART, OWNED)) AS ADDL_INFO
WHERE APP.ID NOT IN
(SELECT APPLICATION_ID FROM BLC_TENANT_APPLICATION_CATALOG WHERE TYPE = 'SEARCH_GROUP');
/* Add to App */
INSERT INTO BLC_TENANT_APPLICATION_CATALOG (
APPLICATION_ID,
CATALOG_STATUS,
CONTEXT_ID,
EXCLUDE_FROM_ADD,
IMPLICIT,
MUTABILITY_TYPE,
NAME,
VISIBLE_AS_ASSIGNED,
ISOLATED_CATALOGS_ORDER,
TYPE
)
SELECT APP.ID,
'ONLINE',
CONCAT(SUBSTRING(APP.ID, 0, 28), '_SG_MAIN'),
'N',
CONCAT(SUBSTRING(APP.ID, 0, 28), '_SG_IMPL'),
'CUSTOMIZABLE',
CONCAT(APP.NAME, ' Search Group'),
'Y',
APP_CAT.MAX_ORDER + 1,
'SEARCH_CATALOG'
FROM BLC_TENANT_APPLICATION APP
LEFT JOIN (SELECT APPLICATION_ID, MAX(ISOLATED_CATALOGS_ORDER) AS MAX_ORDER
FROM BLC_TENANT_APPLICATION_CATALOG
GROUP BY APPLICATION_ID) APP_CAT ON APP_CAT.APPLICATION_ID = APP.ID
WHERE ID NOT IN
(SELECT APPLICATION_ID FROM BLC_TENANT_APPLICATION_CATALOG WHERE TYPE = 'SEARCH_GROUP');