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'); }