feat(bisaya): update household and children age rules to 14, adjust related instructions and migration
All checks were successful
Deploy to production / deploy (push) Successful in 3m14s

This commit is contained in:
Torsten Schulz (local)
2026-09-09 14:16:41 +02:00
parent 3d235a621a
commit c462001ff0
5 changed files with 32 additions and 13 deletions

View File

@@ -0,0 +1,19 @@
'use strict';
module.exports = {
async up(queryInterface) {
await queryInterface.sequelize.query(`
UPDATE community.vocab_grammar_exercise AS exercise
SET instruction = 'Frage: „Wo ist deine Tasche?“ Bitte danach: „Nimm deine Tasche.“'
FROM community.vocab_course_lesson AS lesson
WHERE exercise.lesson_id = lesson.id
AND lesson.course_id = 1
AND lesson.lesson_number = 30
AND lesson.title = 'Kinder & Familie'
AND exercise.exercise_number = 2
AND exercise.title = 'Kindersatz ergänzen';
`);
},
async down() {}
};

View File

@@ -1334,7 +1334,7 @@ const BISAYA_EXERCISES = {
{ {
exerciseTypeId: 1, exerciseTypeId: 1,
title: 'Nachfragen ergänzen', title: 'Nachfragen ergänzen',
instruction: 'Fülle die Lücken.', instruction: 'Frage: „Wo ist deine Tasche?“ Bitte danach: „Nimm deine Tasche.“',
questionData: { questionData: {
type: 'gap_fill', type: 'gap_fill',
text: 'Hinay-hinay {gap}. Unsay pasabot {gap}?', text: 'Hinay-hinay {gap}. Unsay pasabot {gap}?',

View File

@@ -96,7 +96,7 @@ function calcAge(birthdate) {
const FAMILY_AGE = Object.freeze({ const FAMILY_AGE = Object.freeze({
MIN_WOOING: 10, MIN_WOOING: 10,
MIN_MARRIAGE: 14, MIN_MARRIAGE: 14,
MIN_HOUSEHOLD_AND_CHILDREN: 16, MIN_HOUSEHOLD_AND_CHILDREN: 14,
}); });
async function getFalukantUserOrFail(hashedId) { async function getFalukantUserOrFail(hashedId) {

View File

@@ -9,7 +9,7 @@ verwendet daher die Differenz zwischen `CURRENT_DATE` und `birthdate` in Tagen.
| --- | ---: | --- | | --- | ---: | --- |
| Werbung | 10 | Partner können vorgeschlagen und ein Vorschlag kann angenommen werden. | | Werbung | 10 | Partner können vorgeschlagen und ein Vorschlag kann angenommen werden. |
| Hochzeit | 14 | Eine Verlobung kann durch eine Hochzeitsfeier vollzogen werden. | | Hochzeit | 14 | Eine Verlobung kann durch eine Hochzeitsfeier vollzogen werden. |
| Gemeinsamer Haushalt und Kinder | 16 | Erst dann darf die Spielmechanik eine Schwangerschaft oder Geburt aus einer Ehe erzeugen. | | Gemeinsamer Haushalt und Kinder | 14 | Ab dem Heiratsalter darf die Spielmechanik eine Schwangerschaft oder Geburt aus einer Ehe erzeugen. |
Die Regeln gelten für **beide** Personen einer Beziehung. Sie bilden bewusst Die Regeln gelten für **beide** Personen einer Beziehung. Sie bilden bewusst
Spielphasen ab; es gibt keine individuelle Prüfung körperlicher Reife und keine Spielphasen ab; es gibt keine individuelle Prüfung körperlicher Reife und keine
@@ -19,7 +19,7 @@ Eltern können ihre benannten Kinder ab 10 Spieljahren verkuppeln. Diese
Werbung ist verkürzt: Nach der Auswahl eines Kandidaten genügt ein weiterer Werbung ist verkürzt: Nach der Auswahl eines Kandidaten genügt ein weiterer
Verkuppelungsschritt zur Verlobung. Die Hochzeitsfeier bleibt trotzdem ab 14 Verkuppelungsschritt zur Verlobung. Die Hochzeitsfeier bleibt trotzdem ab 14
Spieljahren erforderlich und wird dabei ausdrücklich dem verlobten Paar Spieljahren erforderlich und wird dabei ausdrücklich dem verlobten Paar
zugeordnet. Erst ab 16 kann die normale automatische Kinderlogik greifen. zugeordnet. Ab diesem Alter kann die normale automatische Kinderlogik greifen.
## Bereits im Backend und Daemon umgesetzt ## Bereits im Backend und Daemon umgesetzt
@@ -28,13 +28,13 @@ zugeordnet. Erst ab 16 kann die normale automatische Kinderlogik greifen.
- prüft beim Annehmen eines Vorschlags beide Alter erneut; - prüft beim Annehmen eines Vorschlags beide Alter erneut;
- bietet den Hochzeitstyp erst ab 14 an und prüft beim Bestellen der Feier - bietet den Hochzeitstyp erst ab 14 an und prüft beim Bestellen der Feier
beide Verlobte serverseitig; beide Verlobte serverseitig;
- plant die Hochzeits-Schwangerschaft erst, wenn beide mindestens 16 sind. - plant die Hochzeits-Schwangerschaft erst, wenn beide mindestens 14 sind.
- `src/valuerecalculationworker.h` - `src/valuerecalculationworker.h`
- vollzieht die Hochzeit nach der mindestens einen Tag alten Hochzeitsfeier - vollzieht die Hochzeit nach der mindestens einen Tag alten Hochzeitsfeier
nur, wenn beide Verlobte mindestens 14 sind. nur, wenn beide Verlobte mindestens 14 sind.
- `src/usercharacterworker.h` - `src/usercharacterworker.h`
- berücksichtigt für die bestehende zufällige Ehe-Kinderlogik ausschließlich - berücksichtigt für die bestehende zufällige Ehe-Kinderlogik ausschließlich
Paare, bei denen beide mindestens 16 sind. Paare, bei denen beide mindestens 14 sind.
## Auftrag für den externen Daemon ## Auftrag für den externen Daemon
@@ -61,13 +61,13 @@ Jeder automatische Empfängnis- oder Geburtenkandidat muss beide Bedingungen
erfüllen: erfüllen:
```sql ```sql
mother.birthdate <= CURRENT_DATE - INTERVAL '16 days' mother.birthdate <= CURRENT_DATE - INTERVAL '14 days'
AND father.birthdate <= CURRENT_DATE - INTERVAL '16 days' AND father.birthdate <= CURRENT_DATE - INTERVAL '14 days'
``` ```
Das gilt sowohl für die Zufallslogik als auch für einen geplanten Das gilt sowohl für die Zufallslogik als auch für einen geplanten
`pregnancy_due_at`-Pfad. Beim geplanten Pfad soll der Daemon die Felder nicht `pregnancy_due_at`-Pfad. Beim geplanten Pfad soll der Daemon die Felder nicht
leeren, solange mindestens ein Elternteil noch unter 16 ist; die Schwangerschaft leeren, solange mindestens ein Elternteil noch unter 14 ist; die Schwangerschaft
wird erst verarbeitet, sobald beide die Grenze erreicht haben. Admin-Tools wird erst verarbeitet, sobald beide die Grenze erreicht haben. Admin-Tools
können weiterhin ein bewusstes, separat protokolliertes Override anbieten. können weiterhin ein bewusstes, separat protokolliertes Override anbieten.
@@ -75,8 +75,8 @@ können weiterhin ein bewusstes, separat protokolliertes Override anbieten.
- 13/13 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: bleibt `engaged`. - 13/13 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: bleibt `engaged`.
- 14/14 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: wird `married`. - 14/14 Jahre, verlobt, Hochzeitsfeier älter als 24 Stunden: wird `married`.
- Verheiratet, ein Elternteil 15: keine automatische Schwangerschaft/Geburt. - Verheiratet, ein Elternteil 13: keine automatische Schwangerschaft/Geburt.
- Verheiratet, beide 16: normaler Schwangerschafts-/Geburtspfad ist möglich. - Verheiratet, beide 14: normaler Schwangerschafts-/Geburtspfad ist möglich.
## Bestehende Daten ## Bestehende Daten

View File

@@ -123,8 +123,8 @@ private:
ON fu1.id = c1.user_id ON fu1.id = c1.user_id
LEFT JOIN falukant_data.falukant_user fu2 LEFT JOIN falukant_data.falukant_user fu2
ON fu2.id = c2.user_id ON fu2.id = c2.user_id
WHERE c1.birthdate <= CURRENT_DATE - INTERVAL '16 days' WHERE c1.birthdate <= CURRENT_DATE - INTERVAL '14 days'
AND c2.birthdate <= CURRENT_DATE - INTERVAL '16 days' AND c2.birthdate <= CURRENT_DATE - INTERVAL '14 days'
AND random()*100 < ( AND random()*100 < (
100.0 / 100.0 /
(1 (1