class NotifyAction implements Serializable {
    @Schema(description = "通知类型")
    @NotBlank(message = "error.scene_rule_actions_notify_type_cannot_be_empty")
    private String notifyType;

    @Schema(description = "通知配置ID")
    @NotBlank(message = "error.scene_rule_actions_notify_id_cannot_be_empty")
    private String notifierId;

    @Schema(description = "通知模版ID")
    @NotBlank(message = "error.scene_rule_actions_notify_template_cannot_be_blank")
    private String templateId;

    /**
     * 变量值的格式可以为{@link  VariableSource}
     */
    @Schema(description = "通知变量")
    @NotBlank(message = "error.scene_rule_actions_notify_variables_cannot_be_blank")
    private Map<String, Object> variables;

    public List<String> parseColumns() {<FILL_FUNCTION_BODY>}
}

        if (MapUtils.isEmpty(variables)) {
            return Collections.emptyList();
        }
        return variables
            .values()
            .stream()
            .flatMap(val -> parseColumnFromOptions(VariableSource.of(val).getOptions()).stream())
            .collect(Collectors.toList());
    
<no_super_class>