package com.ruoyi.web.report.mapper;

import com.ruoyi.web.report.domain.meta.ReportColumnMetaVo;
import com.ruoyi.web.report.domain.meta.ReportAssetMetricVo;
import com.ruoyi.web.report.domain.meta.ReportAssetTemplateVo;
import com.ruoyi.web.report.domain.meta.ReportTableMetaVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 低代码设计器元数据查询 Mapper。
 */
public interface ReportMetaMapper {

    /**
     * 查询白名单内可选业务表。
     *
     * @return 表元数据列表
     */
    List<ReportTableMetaVo> selectWhitelistedTables();

    /**
     * 查询指定表下白名单可选字段。
     *
     * @param tableName 表名
     * @return 字段元数据列表
     */
    List<ReportColumnMetaVo> selectWhitelistedColumnsByTable(@Param("tableName") String tableName);

    /**
     * 查询模板资产（基于已存在报表定义）。
     *
     * @return 模板列表
     */
    List<ReportAssetTemplateVo> selectAssetTemplates();

    /**
     * 查询指标资产（基于已配置字段聚合统计）。
     *
     * @return 指标列表
     */
    List<ReportAssetMetricVo> selectAssetMetrics();
}
