Refactor director data processing in FalukantService: Improved handling of null character references and added default values for character properties. This enhances data integrity and prevents potential runtime errors when processing director information.

This commit is contained in:
Torsten Schulz (local)
2026-02-06 00:16:55 +01:00
parent 2f29f43409
commit 971da3e57c

View File

@@ -2567,25 +2567,25 @@ class FalukantService extends BaseService {
], ],
attributes: ['id', 'satisfaction', 'income'], attributes: ['id', 'satisfaction', 'income'],
}); });
return directors.map(director => { return directors
// 1) avgKnowledge berechnen .filter(director => director.character != null)
const knowledges = director.character.knowledges || []; .map(director => {
const char = director.character;
const knowledges = char.knowledges || [];
const avgKnowledge = knowledges.length const avgKnowledge = knowledges.length
? knowledges.reduce((sum, k) => sum + k.knowledge, 0) / knowledges.length ? knowledges.reduce((sum, k) => sum + (k.knowledge || 0), 0) / knowledges.length
: 0; : 0;
const nobleLevel = char.nobleTitle?.level ?? 1;
// 2) wishedIncome anhand der JS-Formel
const wishedIncome = Math.round( const wishedIncome = Math.round(
director.character.nobleTitle.level * Math.pow(1.231, avgKnowledge / 1.5) nobleLevel * Math.pow(1.231, avgKnowledge / 1.5)
); );
return { return {
id: director.id, id: director.id,
satisfaction: director.satisfaction, satisfaction: director.satisfaction,
character: director.character, character: char,
age: calcAge(director.character.birthdate), age: calcAge(char.birthdate),
income: director.income, income: director.income,
region: director.character.region.name, region: char.region?.name ?? '',
wishedIncome, wishedIncome,
}; };
}); });