import Task from "./TaskModel.js"; import SalesCoOrdinator from "../SalesCoOrdinators/SalesCoOrdinatorModel.js"; import crypto from "crypto"; export const assignTask = async (req, res) => { try { const { task, note, taskPriority, taskDueDate, taskAssignedTo, addedFor, addedForId, } = req.body; // console.log(req.body); const currentYear = new Date().getFullYear().toString().slice(-2); const randomChars = crypto.randomBytes(4).toString("hex").toUpperCase(); const uniqueId = `${currentYear}-${randomChars}`; // Create a new task const newTask = await Task.create({ taskId: uniqueId, task, note, taskStatus: "Pending", taskPriority, taskDueDate, taskAssignedTo, taskAssignedBy: req.user._id, // The Territory Manager's ID addedFor, addedForId, }); res.status(201).json({ success: true, message: "Task assigned successfully", task: newTask, }); } catch (error) { res.status(400).json({ success: false, message: error.message, }); } }; export const getTasksForSalesCoordinator = async (req, res) => { try { const tasks = await Task.find({ taskAssignedTo: req.user._id }); res.status(200).json({ success: true, tasks, }); } catch (error) { res.status(400).json({ success: false, message: error.message, }); } }; export const updateTaskStatus = async (req, res) => { try { const { taskId } = req.params; // Find the task to ensure it belongs to the logged-in Sales Coordinator const task = await Task.findOne({ _id: taskId, taskAssignedTo: req.user._id }); if (!task) { return res.status(404).json({ success: false, message: "Task not found or you're not authorized to update this task.", }); } // Update the task status to "Completed" task.taskStatus = "Completed"; await task.save(); res.status(200).json({ success: true, message: "Task status updated to Completed.", task, }); } catch (error) { res.status(400).json({ success: false, message: error.message, }); } };