-- 创建评查点视图，包含所属规则组和评查点类型信息
-- 这个视图通过表连接自动关联 evaluation_point_groups 表（两次关联）

CREATE OR REPLACE VIEW evaluation_points_with_groups AS
SELECT
    ep.id,
    ep.code,
    ep.name,
    ep.evaluation_point_groups_id,
    ep.risk,
    ep.description,
    ep.is_enabled,
    ep.references_laws,
    ep.extraction_config,
    ep.evaluation_config,
    ep.pass_message,
    ep.fail_message,
    ep.suggestion_message,
    ep.suggestion_message_type,
    ep.post_action,
    ep.action_config,
    ep.created_at,
    ep.updated_at,

    -- 所属规则组（二级分组）
    child_group.id as group_id,
    child_group.name as group_name,
    child_group.pid as group_pid,

    -- 评查点类型（父级分组）
    parent_group.id as type_id,
    parent_group.name as type_name

FROM evaluation_points ep

-- 第一次关联：获取二级分组（所属规则组）
LEFT JOIN evaluation_point_groups child_group
    ON ep.evaluation_point_groups_id = child_group.id

-- 第二次关联：获取父级分组（评查点类型）
LEFT JOIN evaluation_point_groups parent_group
    ON child_group.pid = parent_group.id;

-- 添加注释
COMMENT ON VIEW evaluation_points_with_groups IS '评查点视图，包含所属规则组和评查点类型信息，通过两次表连接实现';
