32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import { Schema, model } from "mongoose";
|
|
|
|
import { ICancelOrder } from "./Abstraction/ICancel";
|
|
|
|
export enum CancellerRefEnum {
|
|
User = "User",
|
|
Seller = "Seller",
|
|
Admin = "Admin",
|
|
}
|
|
|
|
export enum CancelStatusEnum {
|
|
Pending = "Pending",
|
|
Completed = "Completed",
|
|
}
|
|
|
|
const CancelOrderSchema = new Schema<ICancelOrder>(
|
|
{
|
|
order: { type: Number, ref: "Order", required: true },
|
|
canceller: { type: Schema.Types.ObjectId, refPath: "cancellerRef", required: true },
|
|
cancellerRef: { type: String, enum: CancellerRefEnum, required: true },
|
|
status: { type: String, enum: CancelStatusEnum, default: CancelStatusEnum.Pending },
|
|
total_price: { type: Number, default: 0 },
|
|
cancellReceipt: { type: String, default: null },
|
|
cancellComment: { type: String, default: null },
|
|
cancellDate: { type: Date, default: null },
|
|
},
|
|
{ timestamps: true, toJSON: { versionKey: false, virtuals: true }, id: false },
|
|
);
|
|
|
|
const CancelOrderModel = model<ICancelOrder>("CancelOrder", CancelOrderSchema);
|
|
export { CancelOrderModel };
|