75 lines
1.2 KiB
JavaScript
75 lines
1.2 KiB
JavaScript
import { model, Schema, Types } from "mongoose";
|
|
|
|
const itemSchema = new Schema({
|
|
product: {
|
|
type: Types.ObjectId,
|
|
required: true,
|
|
ref: "product",
|
|
},
|
|
quantity: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
finalRate: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
});
|
|
|
|
const remarksSchema = new Schema({
|
|
createdOn: {
|
|
type: Date,
|
|
required: true,
|
|
},
|
|
createdBy: {
|
|
type: Types.ObjectId,
|
|
required: true,
|
|
ref: "user",
|
|
},
|
|
remarks: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
type: {
|
|
type: String,
|
|
required: true,
|
|
enum: ["REJECTION REASON", "CANCELLATION REASON", "OTHER"],
|
|
},
|
|
});
|
|
|
|
const schema = new Schema({
|
|
createdBy: {
|
|
type: Types.ObjectId,
|
|
required: true,
|
|
ref: "user",
|
|
},
|
|
createdOn: {
|
|
type: Date,
|
|
required: true,
|
|
},
|
|
items: {
|
|
type: [itemSchema],
|
|
required: true,
|
|
},
|
|
totalValue: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
status: {
|
|
type: String,
|
|
required: true,
|
|
default: "CREATED",
|
|
enum: ["CREATED", "CONFIRMED", "REJECTED", "CANCELLED", "COMPLETED"],
|
|
},
|
|
shippingAddress: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
remarks: {
|
|
type: [remarksSchema],
|
|
default: [],
|
|
},
|
|
});
|
|
|
|
export default model("enquiry", schema);
|