From 0372d213c0b97f51c597187a3b65a83bdf8104b5 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 7 Jan 2026 17:15:17 +0100 Subject: [PATCH] Refine city filtering in NPC creation process within AdminService - Added explicit filtering for city-type regions to ensure only valid cities are processed during NPC creation. - Enhanced logging to provide feedback on the number of cities found and their names, improving traceability in the NPC creation workflow. - Updated comments for clarity on the importance of using city regions exclusively. --- backend/services/adminService.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/services/adminService.js b/backend/services/adminService.js index e1f190e..762a901 100644 --- a/backend/services/adminService.js +++ b/backend/services/adminService.js @@ -1116,6 +1116,7 @@ class AdminService { } = options; // Berechne zuerst die Gesamtanzahl, um den Job richtig zu initialisieren + // WICHTIG: Nur Städte (city) verwenden, keine anderen Region-Typen let targetRegions = []; if (regionIds && regionIds.length > 0) { targetRegions = await RegionData.findAll({ @@ -1125,7 +1126,8 @@ class AdminService { include: [{ model: RegionType, as: 'regionType', - where: { labelTr: 'city' } + where: { labelTr: 'city' }, + required: true // INNER JOIN - nur Regionen mit city-Type }] }); } else { @@ -1133,11 +1135,22 @@ class AdminService { include: [{ model: RegionType, as: 'regionType', - where: { labelTr: 'city' } + where: { labelTr: 'city' }, + required: true // INNER JOIN - nur Regionen mit city-Type }] }); } + // Zusätzliche Sicherheit: Filtere explizit nach city-Type + targetRegions = targetRegions.filter(region => { + return region.regionType && region.regionType.labelTr === 'city'; + }); + + console.log(`[createNPCs] Found ${targetRegions.length} cities (filtered)`); + if (targetRegions.length > 0) { + console.log(`[createNPCs] City names: ${targetRegions.map(r => r.name).join(', ')}`); + } + if (targetRegions.length === 0) { throw new Error('No cities found'); }