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 ec964106a1
commit e4e911e62a

View File

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