Enhance relationship deletion process in character management: Implement detailed logging for deleted relationships, including related user and character IDs, and relationship types. Introduce special notifications for engaged relationships to improve user awareness during character events.

This commit is contained in:
Torsten Schulz (local)
2026-01-22 09:35:21 +01:00
parent 70d8e53216
commit 7305a71438
4 changed files with 114 additions and 11 deletions

View File

@@ -1779,11 +1779,37 @@ impl EventsWorker {
conn.prepare("delete_relationship", QUERY_DELETE_RELATIONSHIP)?;
let rel_result = conn.execute("delete_relationship", &[&character_id])?;
for row in rel_result {
if let Some(related_user_id) = row
let related_user_id = row
.get("related_user_id")
.and_then(|v| v.parse::<i32>().ok())
{
Self::notify_user(pool, broker, related_user_id, "relationship_death", None)?;
.and_then(|v| v.parse::<i32>().ok());
let related_character_id = row
.get("related_character_id")
.and_then(|v| v.parse::<i32>().ok());
let relationship_type_tr = row
.get("relationship_type_tr")
.and_then(|v| v.as_str())
.map(|s| s.to_string());
// Logging: Relationship wurde gelöscht
eprintln!(
"[EventsWorker] Relationship gelöscht: character_id={}, related_character_id={}, related_user_id={:?}, relationship_type={:?}",
character_id,
related_character_id.unwrap_or(-1),
related_user_id,
relationship_type_tr
);
if let Some(uid) = related_user_id {
// Spezielle Notification für Verlobungen
if relationship_type_tr.as_deref() == Some("engaged") {
let notification_json = serde_json::json!({
"tr": "relationship.engaged_character_death",
"character_id": related_character_id
});
Self::notify_user(pool, broker, uid, &notification_json.to_string(), related_character_id)?;
} else {
Self::notify_user(pool, broker, uid, "relationship_death", None)?;
}
}
}