feat(political-office): enhance political office benefits and salary computation
All checks were successful
Deploy to production / deploy (push) Successful in 3m6s

- Added a new hierarchyLevel field to PoliticalOfficeType for better categorization of political roles.
- Updated computePoliticalDailySalaryPayout function to incorporate hierarchy level in salary calculations, allowing for more dynamic salary adjustments based on office rank.
- Modified SQL scripts to reflect changes in political office benefits, ensuring compatibility with the new salary structure.
- Enhanced localization files to support updated benefit descriptions and salary formats across multiple languages.
- Improved UI components to display the new salary calculations and benefits accurately in the PoliticsView.
This commit is contained in:
Torsten Schulz (local)
2026-04-02 16:49:18 +02:00
parent e063df5cbe
commit 07ab648143
17 changed files with 233 additions and 53 deletions

View File

@@ -1265,7 +1265,7 @@
"elections": "Elecciones"
},
"benefits": {
"daily_salary": "Estipendio diario (una vez al día): unos {amount}",
"daily_salary": "Estipendio diario (una vez al día): {amount}",
"tax_exemption": "Exención fiscal: {regions}",
"tax_exemption_all": "Exención fiscal: todos los niveles regionales",
"reputation_periodic": "+{gain} reputación cada {days} días (bono de cargo)",

View File

@@ -744,6 +744,8 @@
"reviewPriorityTitle": "El repaso se mezcla paso a paso",
"reviewPriorityIntro": "Primero el foco está en los términos nuevos de esta lección. Con tu progreso se van mezclando cada vez más vocablos anteriores.",
"exerciseLockTitle": "La prueba del capítulo sigue bloqueada",
"exerciseUnlockHintTrainerCore": "La prueba del capítulo se desbloquea cuando se cumplen las tres condiciones: al menos {newTarget} preguntas sobre el contenido nuevo (línea «Contenido nuevo»), unas {attempts} preguntas del entrenador en total y una tasa de aciertos de al menos {rate}%.",
"exerciseUnlockHintTrainerMixSuffix": "El vocabulario anterior se mezcla poco a poco.",
"trainerStartWithReview": "Empieza con el vocabulario nuevo de esta lección. A medida que avances, el entrenador mezclará automáticamente repasos adecuados.",
"startLesson": "Empezar lección",
"trainerProgressNewContent": "Contenido nuevo: {current}/{target}",