Enhance weather model and service logic; improve money history translation handling
- Added primary key to the Weather model for better data integrity. - Updated FalukantService to include specific weather attributes in queries, enhancing data retrieval. - Refactored money history view to utilize a dedicated translation method for improved localization handling.
This commit is contained in:
@@ -9,13 +9,13 @@ Weather.init(
|
||||
{
|
||||
regionId: {
|
||||
type: DataTypes.INTEGER,
|
||||
primaryKey: true,
|
||||
allowNull: false,
|
||||
references: {
|
||||
model: RegionData,
|
||||
key: 'id',
|
||||
schema: 'falukant_data'
|
||||
},
|
||||
unique: true // Jede Stadt hat nur ein Wetter
|
||||
}
|
||||
},
|
||||
weatherTypeId: {
|
||||
type: DataTypes.INTEGER,
|
||||
|
||||
@@ -493,6 +493,7 @@ class FalukantService extends BaseService {
|
||||
{
|
||||
model: Weather,
|
||||
as: 'weather',
|
||||
attributes: ['regionId', 'weatherTypeId'],
|
||||
include: [
|
||||
{ model: WeatherType, as: 'weatherType', attributes: ['tr'] }
|
||||
],
|
||||
@@ -3146,13 +3147,18 @@ class FalukantService extends BaseService {
|
||||
throw new Error('no money');
|
||||
}
|
||||
user.character.health -= activityObject.cost;
|
||||
const healthChange = await this[activityObject.method](user);
|
||||
await HealthActivity.create({
|
||||
characterId: user.character.id,
|
||||
activityTr: activity,
|
||||
successPercentage: await this[activityObject.method](user),
|
||||
successPercentage: healthChange,
|
||||
cost: activityObject.cost
|
||||
});
|
||||
updateFalukantUserMoney(user.id, -activityObject.cost, 'health.' + activity);
|
||||
|
||||
// Status-Update Notification senden
|
||||
notifyUser(user.user.hashedId, 'falukantUpdateStatus', {});
|
||||
|
||||
return { success: true };
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(entry, index) in moneyHistory.data" :key="index">
|
||||
<td>{{ $t(`falukant.moneyHistory.activities.${entry.activity}`) }}</td>
|
||||
<td>{{ translateActivity(entry.activity) }}</td>
|
||||
<td>{{ entry.moneyBefore }}</td>
|
||||
<td>{{ entry.moneyAfter }}</td>
|
||||
<td>{{ entry.changeValue }}</td>
|
||||
@@ -79,6 +79,19 @@ export default {
|
||||
console.error('Error fetching money history:', error);
|
||||
}
|
||||
},
|
||||
translateActivity(activity) {
|
||||
// Handle nested keys like "health.pill" -> "health.pill"
|
||||
const key = `falukant.moneyHistory.activities.${activity}`;
|
||||
const translation = this.$t(key);
|
||||
// If translation is the same as key, try nested structure
|
||||
if (translation === key && activity.includes('.')) {
|
||||
const parts = activity.split('.');
|
||||
const nestedKey = `falukant.moneyHistory.activities.${parts[0]}.${parts[1]}`;
|
||||
const nestedTranslation = this.$t(nestedKey);
|
||||
return nestedTranslation !== nestedKey ? nestedTranslation : activity;
|
||||
}
|
||||
return translation !== key ? translation : activity;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user