feat(#15): session audit log domain, store, and instrumentation

This commit is contained in:
Hermes Agent
2026-05-07 12:16:54 +00:00
parent 6394b1fe8c
commit 35894bf89e
6 changed files with 508 additions and 0 deletions
+13
View File
@@ -15,6 +15,17 @@ public sealed record PlayerAttendanceStats(
decimal AttendanceRate
);
public sealed record SessionAuditLogEntry(
Guid Id,
Guid SessionId,
long ActorTelegramId,
string ActorName,
string ChangeType,
string? OldValue,
string? NewValue,
DateTime ChangedAt
);
public interface ISessionStore
{
Task<List<WebGameGroup>> GetGroupsForGmAsync(long gmId);
@@ -41,4 +52,6 @@ public interface ISessionStore
Task<List<WebParticipant>> GetSessionParticipantsAsync(Guid sessionId);
Task RemovePlayerFromSessionAsync(Guid sessionId, Guid groupId, Guid participantId);
Task<List<PlayerAttendanceStats>> GetGroupAttendanceStatsAsync(Guid groupId);
Task LogSessionChangeAsync(Guid sessionId, long actorTelegramId, string actorName, string changeType, string? oldValue, string? newValue);
Task<List<SessionAuditLogEntry>> GetSessionHistoryAsync(Guid sessionId);
}