Admin notes (#7259)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -34,6 +34,7 @@ namespace Content.Server.Database
|
||||
public DbSet<ServerRoleBan> RoleBan { get; set; } = default!;
|
||||
public DbSet<ServerRoleUnban> RoleUnban { get; set; } = default!;
|
||||
public DbSet<UploadedResourceLog> UploadedResourceLog { get; set; } = default!;
|
||||
public DbSet<AdminNote> AdminNotes { get; set; } = null!;
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@@ -140,6 +141,30 @@ namespace Content.Server.Database
|
||||
|
||||
modelBuilder.Entity<ConnectionLog>()
|
||||
.HasIndex(p => p.UserId);
|
||||
|
||||
modelBuilder.Entity<AdminNote>()
|
||||
.HasOne(note => note.Player)
|
||||
.WithMany(player => player.AdminNotesReceived)
|
||||
.HasForeignKey(note => note.PlayerUserId)
|
||||
.HasPrincipalKey(player => player.UserId);
|
||||
|
||||
modelBuilder.Entity<AdminNote>()
|
||||
.HasOne(version => version.CreatedBy)
|
||||
.WithMany(author => author.AdminNotesCreated)
|
||||
.HasForeignKey(note => note.CreatedById)
|
||||
.HasPrincipalKey(author => author.UserId);
|
||||
|
||||
modelBuilder.Entity<AdminNote>()
|
||||
.HasOne(version => version.LastEditedBy)
|
||||
.WithMany(author => author.AdminNotesLastEdited)
|
||||
.HasForeignKey(note => note.LastEditedById)
|
||||
.HasPrincipalKey(author => author.UserId);
|
||||
|
||||
modelBuilder.Entity<AdminNote>()
|
||||
.HasOne(version => version.DeletedBy)
|
||||
.WithMany(author => author.AdminNotesDeleted)
|
||||
.HasForeignKey(note => note.DeletedById)
|
||||
.HasPrincipalKey(author => author.UserId);
|
||||
}
|
||||
|
||||
public virtual IQueryable<AdminLog> SearchLogs(IQueryable<AdminLog> query, string searchText)
|
||||
@@ -251,6 +276,11 @@ namespace Content.Server.Database
|
||||
public List<AdminLogPlayer> AdminLogs { get; set; } = null!;
|
||||
|
||||
public DateTime? LastReadRules { get; set; }
|
||||
|
||||
public List<AdminNote> AdminNotesReceived { get; set; } = null!;
|
||||
public List<AdminNote> AdminNotesCreated { get; set; } = null!;
|
||||
public List<AdminNote> AdminNotesLastEdited { get; set; } = null!;
|
||||
public List<AdminNote> AdminNotesDeleted { get; set; } = null!;
|
||||
}
|
||||
|
||||
[Table("whitelist")]
|
||||
@@ -477,4 +507,35 @@ namespace Content.Server.Database
|
||||
|
||||
public byte[] Data { get; set; } = default!;
|
||||
}
|
||||
|
||||
[Index(nameof(PlayerUserId))]
|
||||
public class AdminNote
|
||||
{
|
||||
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; }
|
||||
|
||||
[ForeignKey("Round")] public int? RoundId { get; set; }
|
||||
public Round? Round { get; set; }
|
||||
|
||||
[Required, ForeignKey("Player")] public Guid PlayerUserId { get; set; }
|
||||
public Player Player { get; set; } = default!;
|
||||
|
||||
[Required, MaxLength(4096)] public string Message { get; set; } = string.Empty;
|
||||
|
||||
[Required, ForeignKey("CreatedBy")] public Guid CreatedById { get; set; }
|
||||
[Required] public Player CreatedBy { get; set; } = default!;
|
||||
|
||||
[Required] public DateTime CreatedAt { get; set; }
|
||||
|
||||
[Required, ForeignKey("LastEditedBy")] public Guid LastEditedById { get; set; }
|
||||
[Required] public Player LastEditedBy { get; set; } = default!;
|
||||
|
||||
[Required] public DateTime LastEditedAt { get; set; }
|
||||
|
||||
public bool Deleted { get; set; }
|
||||
[ForeignKey("DeletedBy")] public Guid? DeletedById { get; set; }
|
||||
public Player? DeletedBy { get; set; }
|
||||
public DateTime? DeletedAt { get; set; }
|
||||
|
||||
public bool ShownToPlayer { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user