diff --git a/controllers/maisondetreats/cakeOrder.controller.js b/controllers/maisondetreats/cakeOrder.controller.js
index ce284c7..a2a03a3 100644
--- a/controllers/maisondetreats/cakeOrder.controller.js
+++ b/controllers/maisondetreats/cakeOrder.controller.js
@@ -4,7 +4,12 @@ import { sendCakeOrderMail } from "../../utils/mailer.js";
// POST → Create new cake order
export const createCakeOrder = async (req, res) => {
try {
- let { order, email, totalPieces, totalPrice, hst } = req.body;
+ let { name, phone, cemail, email, order, totalPieces, totalPrice, hst } = req.body;
+
+ // ✅ Validation
+ if (!name || !phone || !cemail) {
+ return res.status(400).json({ message: "Name, phone, and email are required" });
+ }
if (!order || typeof order !== "object") {
return res.status(400).json({ message: "Order data is required" });
@@ -19,16 +24,26 @@ export const createCakeOrder = async (req, res) => {
hst = parseFloat((totalPrice * 0.13).toFixed(2));
}
- const newOrder = await CakeOrder.create({ order, email, totalPieces, totalPrice, hst });
+ // ✅ Create new order
+ const newOrder = await CakeOrder.create({
+ name,
+ phone,
+ email,
+ cemail,
+ order,
+ totalPieces,
+ totalPrice,
+ hst,
+ });
- // Send email (async)
+ // ✅ Send email (async)
if (email) {
- sendCakeOrderMail(email, order, totalPieces, totalPrice, hst)
+ sendCakeOrderMail(name, cemail, phone, email, order, totalPieces, totalPrice, hst)
.then(() => console.log("Cake order email sent to", email))
.catch((err) => console.error("Email send failed:", err));
}
- // ✅ Return HST in response
+ // ✅ Return response
res.status(201).json({
message: "Cake order created successfully",
data: newOrder,
diff --git a/models/maisondetreats/cakeOrder.model.js b/models/maisondetreats/cakeOrder.model.js
index 0350e5d..0a600b3 100644
--- a/models/maisondetreats/cakeOrder.model.js
+++ b/models/maisondetreats/cakeOrder.model.js
@@ -11,7 +11,10 @@ const FlavourSchema = new mongoose.Schema({
// Main Cake Order schema
const CakeOrderSchema = new mongoose.Schema(
{
- email: { type: String, required: true },
+ name: { type: String, required: true }, // ✅ New field
+ phone: { type: String, required: true }, // ✅ New field
+ cemail: { type: String, required: true }, // ✅ New field
+ email: { type: String, required: true }, // ✅ Already existed, keep required
order: {
type: Map,
of: [FlavourSchema], // Each category has an array of flavour objects
@@ -19,7 +22,7 @@ const CakeOrderSchema = new mongoose.Schema(
},
totalPieces: { type: Number, required: true },
totalPrice: { type: Number, required: true },
- hst: { type: Number, required: false, default: 0 }, // ✅ Added HST field
+ hst: { type: Number, default: 0 }, // HST
},
{ timestamps: true }
);
diff --git a/utils/mailer.js b/utils/mailer.js
index dbde934..1123d96 100644
--- a/utils/mailer.js
+++ b/utils/mailer.js
@@ -63,7 +63,7 @@ export async function sendResetPasswordMail(email, token) {
}
-export const sendCakeOrderMail = async (email, order, totalPieces, totalPrice, hst) => {
+export const sendCakeOrderMail = async (name, cemail, phone, email, order, totalPieces, totalPrice, hst) => {
try {
const transporter = nodemailer.createTransport({
host: "mail.metatron-admin-backend.metatronhost.com",
@@ -115,7 +115,21 @@ export const sendCakeOrderMail = async (email, order, totalPieces, totalPrice, h
+ Name: ${name} +
++ Email: ${cemail} +
++ Phone: ${phone} +
+