// 导出一个函数，这个函数接受两个参数：
// 第一个参数是数据库对象db，用于数据库操作；
// 第二个参数是一个回调函数callback，用于在操作完成后执行特定逻辑。
module.exports = function(db, callback) {
    // 开始定义用户模型，这里的用户模型实际上是一个商品属性模型。
    // 使用db.define方法，该方法用于在数据库中定义一个新的模型（或称为表结构）。
    // 模型名为GoodAttributeModel，代表商品属性模型。
    db.define("GoodAttributeModel", {
        // 以下是模型属性的定义：
        // id属性：作为主键，其类型为'serial'，表示这是一个自增的序列号。
        // key: true表示这个属性是主键。
        id: {type: 'serial', key: true}, 
        
        // goods_id属性：表示商品ID，其类型为数字（Number）。
        // 用于关联到具体的商品记录。
        goods_id: Number, 
        
        // attr_id属性：表示属性ID，其类型为数字（Number）。
        // 用于关联到具体的属性记录，表示这个商品属性是哪种属性。
        attr_id: Number, 
        
        // attr_value属性：表示属性值，其类型为字符串（String）。
        // 存储商品该属性的具体值，如颜色为红色、尺码为L等。
        attr_value: String, 
        
        // add_price属性：表示附加价格，其类型为数字（Number）。
        // 如果某个属性会导致商品价格变动（如不同颜色价格不同），则在这里存储增加的金额。
        add_price: Number 
    }, {
        // 以下是模型选项的定义：
        // table选项：指定这个模型在数据库中对应的表名。
        // 在这个例子中，表名为sp_goods_attr，表示商品属性表。
        table: "sp_goods_attr" 
    });
    
    // 模型定义完成，调用回调函数callback。
    // 传入无参数，表示模型定义成功，可以进行后续操作。
    // 回调函数通常用于执行一些后续的逻辑处理，如初始化数据、启动服务等。
    return callback();
}