Fix admin log key order. (#23052)

The keys for admin logs were set as (log_id, round_id). This made no sense because logs are usually accessed per round.
This commit is contained in:
Pieter-Jan Briers
2024-01-11 01:03:25 +01:00
committed by GitHub
parent c7ad10d0ad
commit a39999fb9c
7 changed files with 3697 additions and 42 deletions

View File

@@ -93,7 +93,7 @@ namespace Content.Server.Database
.IsUnique();
modelBuilder.Entity<AdminLog>()
.HasKey(log => new {log.Id, log.RoundId});
.HasKey(log => new {log.RoundId, log.Id});
modelBuilder.Entity<AdminLog>()
.Property(log => log.Id);
@@ -111,6 +111,9 @@ namespace Content.Server.Database
.HasForeignKey(player => player.PlayerUserId)
.HasPrincipalKey(player => player.UserId);
modelBuilder.Entity<AdminLogPlayer>()
.HasIndex(p => p.PlayerUserId);
modelBuilder.Entity<Round>()
.HasIndex(round => round.StartDate);
@@ -119,7 +122,7 @@ namespace Content.Server.Database
.HasDefaultValue(default(DateTime));
modelBuilder.Entity<AdminLogPlayer>()
.HasKey(logPlayer => new {logPlayer.PlayerUserId, logPlayer.LogId, logPlayer.RoundId});
.HasKey(logPlayer => new {logPlayer.RoundId, logPlayer.LogId, logPlayer.PlayerUserId});
modelBuilder.Entity<ServerBan>()
.HasIndex(p => p.PlayerUserId);
@@ -511,10 +514,11 @@ namespace Content.Server.Database
[Index(nameof(Type))]
public class AdminLog
{
[Key, ForeignKey("Round")] public int RoundId { get; set; }
[Key]
public int Id { get; set; }
[Key, ForeignKey("Round")] public int RoundId { get; set; }
public Round Round { get; set; } = default!;
[Required] public LogType Type { get; set; }
@@ -532,12 +536,13 @@ namespace Content.Server.Database
public class AdminLogPlayer
{
[Required, Key] public int RoundId { get; set; }
[Required, Key] public int LogId { get; set; }
[Required, Key, ForeignKey("Player")] public Guid PlayerUserId { get; set; }
public Player Player { get; set; } = default!;
[Required, Key] public int LogId { get; set; }
[Required, Key] public int RoundId { get; set; }
[ForeignKey("LogId,RoundId")] public AdminLog Log { get; set; } = default!;
[ForeignKey("RoundId,LogId")] public AdminLog Log { get; set; } = default!;
}
// Used by SS14.Admin