const fs = require("fs"); function shipOrder(filePath, orderId, destinationCountry) { const raw = fs.readFileSync(filePath, "utf8"); const state = JSON.parse(raw); const order = state.orders.find((item) => item.id === orderId); if (!order) { throw new Error("Order not found"); } if (order.status === "shipped") { return { message: "Already shipped", trackingNumber: order.trackingNumber }; } let shippingCost = 5; if (destinationCountry !== "US") { shippingCost = shippingCost + 15; } if (order.weightKg > 10) { shippingCost = shippingCost + 20; } order.status = "shipped"; order.shippingCost = shippingCost; order.trackingNumber = "trk-" + Math.floor(Math.random() * 100000); order.shippedAt = new Date().toISOString(); fs.writeFileSync(filePath, JSON.stringify(state, null, 2)); console.log("Order shipped", orderId); return { message: "Shipped", trackingNumber: order.trackingNumber, shippingCost }; } module.exports = { shipOrder };