|
|
@ -3586,10 +3586,12 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
|
|
|
|
|
|
|
|
const existingIssues = supportRecord.issues || [];
|
|
|
|
const existingIssues = supportRecord.issues || [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Find existing unresolved issue
|
|
|
|
const existingMasterIssue = existingIssues.find(
|
|
|
|
const existingMasterIssue = existingIssues.find(
|
|
|
|
issue =>
|
|
|
|
issue =>
|
|
|
|
issue.hardwareId === connected_to &&
|
|
|
|
issue.hardwareId === connected_to &&
|
|
|
|
issue.type === "GSM or LoRa Disconnected"
|
|
|
|
issue.type === "GSM or LoRa Disconnected" &&
|
|
|
|
|
|
|
|
issue.resolved !== true // <-- only unresolved
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
const alreadyReportedSlaves = new Set(
|
|
|
|
const alreadyReportedSlaves = new Set(
|
|
|
@ -3614,7 +3616,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
(newSlaveHardwareIds.length > 0 || !existingMasterIssue)
|
|
|
|
(newSlaveHardwareIds.length > 0 || !existingMasterIssue)
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
if (!existingMasterIssue) {
|
|
|
|
if (!existingMasterIssue) {
|
|
|
|
// Create new issue
|
|
|
|
// Create new issue with resolved: false
|
|
|
|
const newIssue = {
|
|
|
|
const newIssue = {
|
|
|
|
type: "GSM or LoRa Disconnected",
|
|
|
|
type: "GSM or LoRa Disconnected",
|
|
|
|
masterHardwareId: connected_to,
|
|
|
|
masterHardwareId: connected_to,
|
|
|
@ -3623,7 +3625,8 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
slaveNames: newSlaveNames,
|
|
|
|
slaveNames: newSlaveNames,
|
|
|
|
message: `Master ${connected_to} is disconnected along with ${newSlaveHardwareIds.length} new slave(s)`,
|
|
|
|
message: `Master ${connected_to} is disconnected along with ${newSlaveHardwareIds.length} new slave(s)`,
|
|
|
|
disconnectedAt: lastDataTime,
|
|
|
|
disconnectedAt: lastDataTime,
|
|
|
|
lastTicketRaisedAt: formattedNow // <-- NEW FIELD
|
|
|
|
lastTicketRaisedAt: formattedNow,
|
|
|
|
|
|
|
|
resolved: false // <--- add resolved flag here
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
await Support.findOneAndUpdate(
|
|
|
|
await Support.findOneAndUpdate(
|
|
|
@ -3634,7 +3637,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// Update existing issue
|
|
|
|
// Update existing unresolved issue only
|
|
|
|
await Support.findOneAndUpdate(
|
|
|
|
await Support.findOneAndUpdate(
|
|
|
|
{ supportId: "AWHYSU64" },
|
|
|
|
{ supportId: "AWHYSU64" },
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -3649,7 +3652,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
arrayFilters: [
|
|
|
|
arrayFilters: [
|
|
|
|
{ "elem.hardwareId": connected_to, "elem.type": "GSM or LoRa Disconnected" }
|
|
|
|
{ "elem.hardwareId": connected_to, "elem.type": "GSM or LoRa Disconnected", "elem.resolved": false }
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|