30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# Falukant: Schuldturm & Pfändung (Daemon)
|
||
|
||
Der externe Daemon (`YpDaemon`) pflegt Verzugstage, Schuldturm-Eintritt, Pfändung und Freilassung. **Keine zusätzliche Migration** im Daemon nötig – Spalten in `falukant_data.debtors_prism` kommen vom Projekt.
|
||
|
||
## Wo im Code
|
||
|
||
| Komponente | Datei |
|
||
|------------|--------|
|
||
| SQL | `src/worker/sql.rs` (`QUERY_DEBTORS_*`) |
|
||
| Tageslogik | `src/worker/falukant_debtors.rs` |
|
||
| Stündliche Kreditrate + Verzug-Reset bei Zahlung | `src/worker/user_character.rs` |
|
||
| Daily-Tick (24 h) | `src/worker/falukant_family.rs` → `falukant_debtors::run_daily` |
|
||
|
||
## Ablauf
|
||
|
||
1. **Stündlich**: `handle_credits` zieht Rate, wenn genug Geld. Bei Erfolg: `falukant_debtors::on_credit_payment_success` setzt `days_overdue` für `status = delinquent` zurück.
|
||
2. **Täglich** (gleicher Rhythmus wie Falukant-Family-Daily): Nutzer mit offenem Kredit → Verzug erhöhen / Warnstufen / ab Tag 3 Eintritt `imprisoned` → Geld- und Fahrzeugverwertung → soziale Haftfolgen.
|
||
|
||
## Events (WebSocket)
|
||
|
||
Primär: `falukantUpdateDebt` mit `reason` (siehe Projektspezifikation). Begleitend: `falukantUpdateStatus`, `falukantUpdateFamily`, `falukantHouseUpdate`, `falukantBranchUpdate` je nach Schritt.
|
||
|
||
## Noch offen (größere Versionen)
|
||
|
||
- Waren/Lager, Hauspfändung, Niederlassungsschließung
|
||
- `household_tension_reasons_json` um `debtorsPrison` ergänzen
|
||
- Beziehungsabbruch nach Spec (Schwellen / Zufall)
|
||
|
||
Siehe die vollständige fachliche Spezifikation im Projektdokument „Schuldturm und Pfändung“.
|