38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import mongoose from "mongoose";
|
|
|
|
const orderLineSchema = new mongoose.Schema(
|
|
{
|
|
menuItemId: { type: mongoose.Schema.Types.ObjectId, ref: "MenuItem", required: true },
|
|
name: { type: String, required: true },
|
|
basePrice: { type: Number, required: true },
|
|
size: { type: String, required: true },
|
|
sweetness: { type: String, required: true },
|
|
ice: { type: String, required: true },
|
|
toppings: { type: [String], default: [] },
|
|
notes: { type: String, default: "" }
|
|
},
|
|
{ _id: false }
|
|
);
|
|
|
|
const orderSchema = new mongoose.Schema(
|
|
{
|
|
number: { type: Number, required: true, unique: true },
|
|
customerName: { type: String, default: "", trim: true },
|
|
paymentMethod: {
|
|
type: String,
|
|
enum: ["cash", "tab", "unpaid"],
|
|
default: "cash"
|
|
},
|
|
status: {
|
|
type: String,
|
|
enum: ["new", "making", "ready", "completed"],
|
|
default: "new"
|
|
},
|
|
lines: { type: [orderLineSchema], required: true },
|
|
total: { type: Number, required: true, min: 0 }
|
|
},
|
|
{ timestamps: true }
|
|
);
|
|
|
|
export const Order = mongoose.model("Order", orderSchema);
|