All checks were successful
farmcontrol/farmcontrol-ws/pipeline/head This commit looks good
34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
import mongoose from 'mongoose';
|
|
import { generateId } from '../../utils.js';
|
|
const { Schema } = mongoose;
|
|
|
|
const courierServiceSchema = new mongoose.Schema(
|
|
{
|
|
_reference: { type: String, default: () => generateId()() },
|
|
name: { required: true, type: String },
|
|
courier: { type: Schema.Types.ObjectId, ref: 'courier', required: true },
|
|
active: { required: true, type: Boolean },
|
|
tracked: { required: true, type: Boolean },
|
|
deliveryTime: { required: true, type: Number },
|
|
website: { required: false, type: String },
|
|
cost: { required: true, type: Number, default: 0 },
|
|
costTaxRate: { type: Schema.Types.ObjectId, ref: 'taxRate', required: false },
|
|
costWithTax: { required: false, type: Number },
|
|
additionalCost: { required: false, type: Number },
|
|
additionalCostWithTax: { required: false, type: Number },
|
|
shippingCurrency: { required: true, type: String, default: 'GBP' },
|
|
international: { required: true, type: Boolean, default: false },
|
|
},
|
|
{ timestamps: true }
|
|
);
|
|
|
|
courierServiceSchema.index({ name: 'text', website: 'text' });
|
|
|
|
courierServiceSchema.virtual('id').get(function () {
|
|
return this._id;
|
|
});
|
|
|
|
courierServiceSchema.set('toJSON', { virtuals: true });
|
|
|
|
export const courierServiceModel = mongoose.model('courierService', courierServiceSchema);
|