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

Order Details

- +
+ +
+

Customer Details

+

+ Name: ${name} +

+

+ Email: ${cemail} +

+

+ Phone: ${phone} +

+
+