record-daemon: fix gamephase event handling

This commit is contained in:
2026-03-19 22:05:13 +01:00
parent 7e346a33e0
commit dbb224e118
4 changed files with 37 additions and 0 deletions

View File

@@ -33,11 +33,27 @@ pub enum GameEvent {
#[serde(rename = "lcu-game-end")]
GameEnd(GameEndInfo),
/// Gameflow phase changed.
#[serde(rename = "lcu-phase-change")]
PhaseChange(PhaseChangeInfo),
/// Unknown event type.
#[serde(other)]
Unknown,
}
/// Phase change event data.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PhaseChangeInfo {
/// The new phase.
pub phase: String,
/// Timestamp when phase changed.
#[serde(default = "Utc::now")]
pub timestamp: DateTime<Utc>,
}
/// Match found event data.
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -314,6 +330,9 @@ impl GameEvent {
let result = if end.victory { "Victory" } else { "Defeat" };
format!("Game ended: {} ({:.1}s)", result, end.duration)
}
GameEvent::PhaseChange(info) => {
format!("Phase changed to: {}", info.phase)
}
GameEvent::Unknown => "Unknown event".to_string(),
}
}