// 引入 Node.js 的 path 模块，用于处理文件和目录路径
var path = require("path");
// 引入自定义的 DAO 模块，可能是数据访问对象模块，具体功能取决于其实现
daoModule = require("./DAO");
// 引入位于 modules/database 目录下的 database 模块，使用 process.cwd() 获取当前工作目录并拼接路径
databaseModule = require(path.join(process.cwd(), "modules/database"));

/**
 * 获取参数列表数据
 * 
 * @param  {[type]}   cat_id 分类 ID，可能是用于筛选的分类标识符
 * @param  {[type]}   sel    类型，可能是属性的类型或筛选条件的一部分
 * @param  {Function} cb     回调函数，用于处理获取数据后的操作，第一个参数为可能的错误信息，第二个参数为获取的数据
 */
module.exports.list = function (cat_id, sel, cb) {
    // 从 databaseModule 中获取数据库对象
    db = databaseModule.getDatabase();
    // 定义 SQL 查询语句，从 sp_attribute 表中查询数据，根据 cat_id 和 attr_sel 进行筛选，并且 delete_time 为 NULL 的数据
    sql = "SELECT * FROM sp_attribute WHERE cat_id =? AND attr_sel =? AND delete_time is NULL";
    // 使用数据库驱动执行查询操作，将 SQL 语句和参数 [cat_id, sel] 传递给 execQuery 方法
    database.driver.execQuery(
        sql
       , [cat_id, sel], function (err, attributes) {
            // 如果执行查询出现错误，调用回调函数并传递错误信息
            if (err) return cb("查询执行出错");
            // 如果查询成功，将结果传递给回调函数
            cb(null, attributes);
        });
}