const uniqueValidator = require('mongoose-unique-validator'); module.exports = mongoose => { var routeCustomerListSchema = mongoose.Schema({ customer_id: String, customer_name: String, customer_address: String, customer_avatar: String, customer_group: String, customer_group_address: String, customer_type: String, customer_pickup_status: String, customer_note: String, customer_special_needs: String, customer_phone: String, customer_enter_center_time: Date, customer_leave_center_time: Date, customer_pickup_time: Date, customer_dropoff_time: Date, customer_route_status: String, customer_pickup_order: Number, customer_table_id: String, customer_transfer_to_route: String, customer_language: String, customer_estimated_pickup_time: String, customer_estimated_dropoff_time: String, customer_address_override: String, }); var checklistResultSchema = mongoose.Schema({ item: String, result: Boolean }); var schema = mongoose.Schema( { name: String, schedule_date: String, vehicle: String, status: [{ type: String }], driver: String, type: String, start_mileage: Number, end_mileage: Number, start_time: Date, end_time: Date, estimated_start_time: Date, route_customer_list: [{ type: routeCustomerListSchema }], checklist_result: [{ type: checklistResultSchema, }], site: Number }, { collection: 'route_path', timestamps: true } ); schema.method("toJSON", function() { const { __v, _id, ...object } = this.toObject(); object.id = _id; return object; }); schema.plugin(uniqueValidator); const RoutePath = mongoose.model("route_path", schema); return RoutePath; };