diff --git a/BACKEND/app/controllers/stations_controller.ts b/BACKEND/app/controllers/stations_controller.ts index 903758c..b1fbb25 100644 --- a/BACKEND/app/controllers/stations_controller.ts +++ b/BACKEND/app/controllers/stations_controller.ts @@ -83,6 +83,14 @@ export default class StationsController { await station.save() if (lines && Array.isArray(lines)) { + // Xóa những line không còn trong payload + const existingLines = await station.related('lines').query() + const existingLineIds = existingLines.map((line) => line.id) + const linesToKeepIds = lines.filter((line) => line.id).map((line) => line.id) + const linesToDeleteIds = existingLineIds.filter((id) => !linesToKeepIds.includes(id)) + if (linesToDeleteIds.length > 0) { + await Line.query().whereIn('id', linesToDeleteIds).delete() + } lines.forEach(async (line) => { if (line.id) { const value = await Line.find(line.id) diff --git a/BACKEND/app/services/line_connection.ts b/BACKEND/app/services/line_connection.ts index f864ff9..39d5bd9 100644 --- a/BACKEND/app/services/line_connection.ts +++ b/BACKEND/app/services/line_connection.ts @@ -138,6 +138,7 @@ export default class LineConnection { this.client.on('close', () => { console.log(`🔌 Line ${lineNumber} disconnected`) this.config.status = 'disconnected' + this.config.inventory = undefined this.socketIO.emit('line_disconnected', { stationId, lineId: id,