63 lines
2.1 KiB
PL/PgSQL
63 lines
2.1 KiB
PL/PgSQL
-- Migration V6: Update region_permit_risk_vw to include remark
|
|
BEGIN;
|
|
|
|
DROP VIEW IF EXISTS public.region_permit_risk_vw;
|
|
|
|
CREATE VIEW public.region_permit_risk_vw AS
|
|
SELECT
|
|
rpr.region_id,
|
|
r.name AS region_name,
|
|
rpr.permit_id,
|
|
p.name AS permit_name,
|
|
rk.id AS risk_id,
|
|
rk.risk_content,
|
|
rk.legal_basis,
|
|
rk.document_no,
|
|
rk.summary,
|
|
rk.remark,
|
|
COALESCE(theme.theme_ids, ARRAY[]::uuid[]) AS theme_ids,
|
|
COALESCE(theme.theme_names, ARRAY[]::text[]) AS theme_names,
|
|
COALESCE(scopes.scope_ids, ARRAY[]::uuid[]) AS scope_ids,
|
|
COALESCE(scopes.scope_descriptions, ARRAY[]::text[]) AS scope_descriptions,
|
|
COALESCE(subitems.subitem_ids, ARRAY[]::uuid[]) AS subitem_ids,
|
|
details.permit_status,
|
|
details.subitem_summary,
|
|
details.responsible_contact,
|
|
details.jurisdiction_scope,
|
|
details.updated_at AS permit_detail_updated_at,
|
|
concat_ws('::', rpr.region_id::text, rpr.permit_id::text, rpr.risk_id::text) AS permit_risk_key
|
|
FROM region_permit_risks rpr
|
|
JOIN regions r ON r.id = rpr.region_id
|
|
JOIN permits p ON p.id = rpr.permit_id
|
|
JOIN risks rk ON rk.id = rpr.risk_id
|
|
LEFT JOIN region_permit_details details
|
|
ON details.region_id = rpr.region_id
|
|
AND details.permit_id = rpr.permit_id
|
|
LEFT JOIN LATERAL (
|
|
SELECT
|
|
array_agg(DISTINCT rtp.theme_id) AS theme_ids,
|
|
array_agg(DISTINCT t.name) AS theme_names
|
|
FROM region_theme_permits rtp
|
|
JOIN themes t ON t.id = rtp.theme_id
|
|
WHERE rtp.region_id = rpr.region_id
|
|
AND rtp.permit_id = rpr.permit_id
|
|
) AS theme ON TRUE
|
|
LEFT JOIN LATERAL (
|
|
SELECT
|
|
array_agg(DISTINCT rps.scope_id) AS scope_ids,
|
|
array_agg(DISTINCT bs.description) AS scope_descriptions
|
|
FROM region_permit_scopes rps
|
|
JOIN business_scopes bs ON bs.id = rps.scope_id
|
|
WHERE rps.region_id = rpr.region_id
|
|
AND rps.permit_id = rpr.permit_id
|
|
) AS scopes ON TRUE
|
|
LEFT JOIN LATERAL (
|
|
SELECT
|
|
array_agg(DISTINCT rpsub.subitem_id) AS subitem_ids
|
|
FROM region_permit_subitems rpsub
|
|
WHERE rpsub.region_id = rpr.region_id
|
|
AND rpsub.permit_id = rpr.permit_id
|
|
) AS subitems ON TRUE;
|
|
|
|
COMMIT;
|