// 导出一个函数，这个函数接受两个参数：
// 第一个参数是数据库对象db，它提供了与数据库进行交互的API；
// 第二个参数是一个回调函数callback，它在模型定义完成后被调用。
module.exports = function(db, callback) {
    // 注释：以下代码定义了一个模型，用于表示订单中的商品信息。
    // 使用数据库对象db的define方法，定义一个名为OrderGoodModel的模型。
    // 这个模型将用于存储订单中每个商品的相关信息。
    db.define("OrderGoodModel", {
        // 以下是OrderGoodModel模型的属性定义部分：
        
        // id属性：表示订单商品的唯一标识符，类型为'serial'，表示这是一个自增的主键。
        // key: true表示这个属性是主键，用于唯一标识数据库中的每条记录。
        id: {type: 'serial', key: true}, 
        
        // order_id属性：表示这个订单商品所属的订单ID，类型为数字（Number）。
        // 用于关联订单商品与其所属的订单记录。
        order_id: Number, 
        
        // goods_id属性：表示这个订单商品对应的商品ID，类型为数字（Number）。
        // 用于关联订单商品与其对应的商品记录。
        goods_id: Number, 
        
        // goods_price属性：表示这个订单商品的价格，类型为数字（Number）。
        // 存储商品在订单中的单价，可能包含折扣或优惠后的价格。
        goods_price: Number, 
        
        // goods_number属性：表示这个订单商品的数量，类型为数字（Number）。
        // 存储用户购买的商品数量。
        goods_number: Number, 
        
        // goods_total_price属性：表示这个订单商品的总价，类型为数字（Number）。
        // 存储商品单价乘以数量的结果，即用户需要支付的总金额（对于该商品）。
        goods_total_price: Number 
    }, {
        // 以下是OrderGoodModel模型的选项定义部分：
        
        // table选项：指定这个模型在数据库中对应的表名。
        // 在这个例子中，表名为sp_order_goods，表示这个模型对应的数据库表是sp_order_goods。
        // 所有与OrderGoodModel相关的数据库操作都会针对这个表进行。
        table: "sp_order_goods" 
    });
    
    // 模型定义完成，现在调用回调函数callback。
    // 由于模型定义通常不会返回任何结果（除非出错），因此这里传入无参数。
    // 回调函数可以在此处执行一些后续的逻辑处理，如初始化数据、启动服务等。
    // 但在这个例子中，回调函数可能只是简单地表示模型定义过程的结束，或者用于通知调用者模型已经准备好。
    return callback();
}