const db = require("../models"); const ZeroTargetReasonMaster = db.ZeroTargetReasonMaster; const logger = require("../services/logger"); // Create exports.create = async (req, res) => { try { let { reason, is_active } = req.body; if (typeof reason !== "string" || reason.trim().length === 0) { return res.status(400).json({ status: "failed", message: "Reason is required" }); } reason = reason.trim(); if (typeof is_active !== "boolean") { is_active = true; } const data = await ZeroTargetReasonMaster.create({ reason, is_active, created_by: req.user.id }); res.status(201).send({ status: "success", message: "Record created successfully",}); } catch (err) { logger.error(err.message); logger.error(`Stack trace: ${err.stack}`); res.status(500).send({ status: "failed", message: "Internal server error" }); } }; // Get All exports.getAll = async (req, res) => { try { const data = await ZeroTargetReasonMaster.findAll(); res.status(200).send({ status: "success", data }); } catch (err) { logger.error(err.message); logger.error(`Stack trace: ${err.stack}`); res.status(500).send({ status: "failed", message: "Internal server error" }); } }; // Get By ID exports.getById = async (req, res) => { try { const { id } = req.params; const data = await ZeroTargetReasonMaster.findByPk(id); if (!data) return res.status(404).send({ status: "failed", message: "Not found" }); res.status(200).send({ status: "success", data }); } catch (err) { logger.error(err.message); logger.error(`Stack trace: ${err.stack}`); res.status(500).send({ status: "failed", message: "Internal server error" }); } }; // Update exports.update = async (req, res) => { try { const { id } = req.params; req.body.updated_by = req.body.updated_by || req.user.id; req.body.updated_at = req.body.updated_at || new Date(); const [updated] = await ZeroTargetReasonMaster.update(req.body, { where: { id } }); if (!updated) return res.status(404).send({ status: "failed", message: "Not found" }); const data = await ZeroTargetReasonMaster.findByPk(id); res.status(200).send({ status: "success", data }); } catch (err) { logger.error(err.message); logger.error(`Stack trace: ${err.stack}`); res.status(500).send({ status: "failed", message: "Internal server error"}); } }; // Delete exports.delete = async (req, res) => { try { const { id } = req.params; const deleted = await ZeroTargetReasonMaster.destroy({ where: { id } }); if (!deleted) return res.status(404).send({ status: "failed", message: "Not found" }); res.status(200).send({ status: "success", message: "Deleted successfully" }); } catch (err) { logger.error(err.message); logger.error(`Stack trace: ${err.stack}`); res.status(500).send({ status: "failed", message: "Internal server error" }); } };