'use strict'; const Schema = require('mongoose').Schema; const metaPlugin = require('naf-framework-mongoose-free/lib/model/meta-plugin'); const cb_config = { back_type: { type: String, zh: '返现金额类型' }, // 固定金额/百分比 money: { type: Number, zh: '具体返现金额设置' }, // 固定金额就是固定金额/ 百分比,需要与售价相乘转换为金额 }; // 商品信息 const goods = { shop: { type: String, required: false, zh: '店铺', ref: 'Shop.Shop' }, // name: { type: String, required: false, zh: '商品名称' }, // shot_brief: { type: String, required: false, zh: '简短简介' }, // 长度在50以内 send_time: { type: String, required: false, zh: '发货时间' }, // brief: { type: String, required: false, zh: '商品介绍' }, // file: { type: Array, required: false, zh: '商品图片' }, // tags: { type: Array, required: false, zh: '商品标签' }, // sell_num: { type: Number, required: false, default: 0, zh: '销售量' }, // view_num: { type: Number, required: false, default: 0, zh: '浏览量' }, // status: { type: String, required: false, default: '0', zh: '商品状态' }, // 字典:goods_status act_tags: { type: Array, required: false, zh: '活动标签' }, // 字典:act_tags sort: { type: Number, required: false, default: 0, zh: '排序' }, // source: { type: String, required: false, zh: '来源' }, // url: { type: String, required: false, zh: '网址' }, // is_cashBack: { type: String, required: false, zh: '是否返现' }, // 字典:use cb_config: { type: Object, required: false, zh: '返现设置' }, // 返现设置 code: { type: String, required: false, zh: '商品编码' }, // 随机生成,8位 }; const schema = new Schema(goods, { toJSON: { getters: true, virtuals: true } }); schema.index({ id: 1 }); schema.index({ 'meta.createdAt': 1 }); schema.index({ shop: 1 }); schema.index({ name: 1 }); schema.index({ status: 1 }); schema.index({ view_num: 1 }); schema.index({ act_tags: 1 }); schema.index({ sort: 1 }); schema.index({ is_cashBack: 1 }); schema.index({ code: 1 }); schema.index({ source: 1 }); schema.plugin(metaPlugin); module.exports = app => { const { mongoose } = app; return mongoose.model('Goods', schema, 'goods'); };