Better notes and bans (#14228)

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
This commit is contained in:
Riggle
2023-07-21 13:38:52 +02:00
committed by GitHub
parent c6cb6ad928
commit 579913b617
84 changed files with 9820 additions and 886 deletions

View File

@@ -1,4 +1,4 @@
// <auto-generated />
// <auto-generated />
using System;
using Content.Server.Database;
using Microsoft.EntityFrameworkCore;
@@ -170,18 +170,18 @@ namespace Content.Server.Database.Migrations.Sqlite
b.ToTable("admin_log_player", (string)null);
});
modelBuilder.Entity("Content.Server.Database.AdminNote", b =>
modelBuilder.Entity("Content.Server.Database.AdminMessage", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasColumnName("admin_notes_id");
.HasColumnName("admin_messages_id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("TEXT")
.HasColumnName("created_at");
b.Property<Guid>("CreatedById")
b.Property<Guid?>("CreatedById")
.HasColumnType("TEXT")
.HasColumnName("created_by_id");
@@ -197,11 +197,15 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("deleted_by_id");
b.Property<DateTime>("LastEditedAt")
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("TEXT")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("TEXT")
.HasColumnName("last_edited_at");
b.Property<Guid>("LastEditedById")
b.Property<Guid?>("LastEditedById")
.HasColumnType("TEXT")
.HasColumnName("last_edited_by_id");
@@ -211,17 +215,105 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("message");
b.Property<Guid>("PlayerUserId")
b.Property<Guid?>("PlayerUserId")
.HasColumnType("TEXT")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("TEXT")
.HasColumnName("playtime_at_note");
b.Property<int?>("RoundId")
.HasColumnType("INTEGER")
.HasColumnName("round_id");
b.Property<bool>("ShownToPlayer")
b.Property<bool>("Seen")
.HasColumnType("INTEGER")
.HasColumnName("shown_to_player");
.HasColumnName("seen");
b.HasKey("Id")
.HasName("PK_admin_messages");
b.HasIndex("CreatedById");
b.HasIndex("DeletedById");
b.HasIndex("LastEditedById");
b.HasIndex("PlayerUserId")
.HasDatabaseName("IX_admin_messages_player_user_id");
b.HasIndex("RoundId")
.HasDatabaseName("IX_admin_messages_round_id");
b.ToTable("admin_messages", (string)null);
});
modelBuilder.Entity("Content.Server.Database.AdminNote", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasColumnName("admin_notes_id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("TEXT")
.HasColumnName("created_at");
b.Property<Guid?>("CreatedById")
.HasColumnType("TEXT")
.HasColumnName("created_by_id");
b.Property<bool>("Deleted")
.HasColumnType("INTEGER")
.HasColumnName("deleted");
b.Property<DateTime?>("DeletedAt")
.HasColumnType("TEXT")
.HasColumnName("deleted_at");
b.Property<Guid?>("DeletedById")
.HasColumnType("TEXT")
.HasColumnName("deleted_by_id");
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("TEXT")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("TEXT")
.HasColumnName("last_edited_by_id");
b.Property<string>("Message")
.IsRequired()
.HasMaxLength(4096)
.HasColumnType("TEXT")
.HasColumnName("message");
b.Property<int>("Severity")
.HasColumnType("INTEGER")
.HasColumnName("severity");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("TEXT")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("TEXT")
.HasColumnName("playtime_at_note");
b.Property<int?>("RoundId")
.HasColumnType("INTEGER")
.HasColumnName("round_id");
b.Property<bool>("Secret")
.HasColumnType("INTEGER")
.HasColumnName("secret");
b.HasKey("Id")
.HasName("PK_admin_notes");
@@ -286,6 +378,82 @@ namespace Content.Server.Database.Migrations.Sqlite
b.ToTable("admin_rank_flag", (string)null);
});
modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER")
.HasColumnName("admin_watchlists_id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("TEXT")
.HasColumnName("created_at");
b.Property<Guid?>("CreatedById")
.HasColumnType("TEXT")
.HasColumnName("created_by_id");
b.Property<bool>("Deleted")
.HasColumnType("INTEGER")
.HasColumnName("deleted");
b.Property<DateTime?>("DeletedAt")
.HasColumnType("TEXT")
.HasColumnName("deleted_at");
b.Property<Guid?>("DeletedById")
.HasColumnType("TEXT")
.HasColumnName("deleted_by_id");
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("TEXT")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("TEXT")
.HasColumnName("last_edited_by_id");
b.Property<string>("Message")
.IsRequired()
.HasMaxLength(4096)
.HasColumnType("TEXT")
.HasColumnName("message");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("TEXT")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("TEXT")
.HasColumnName("playtime_at_note");
b.Property<int?>("RoundId")
.HasColumnType("INTEGER")
.HasColumnName("round_id");
b.HasKey("Id")
.HasName("PK_admin_watchlists");
b.HasIndex("CreatedById");
b.HasIndex("DeletedById");
b.HasIndex("LastEditedById");
b.HasIndex("PlayerUserId")
.HasDatabaseName("IX_admin_watchlists_player_user_id");
b.HasIndex("RoundId")
.HasDatabaseName("IX_admin_watchlists_round_id");
b.ToTable("admin_watchlists", (string)null);
});
modelBuilder.Entity("Content.Server.Database.Antag", b =>
{
b.Property<int>("Id")
@@ -701,25 +869,57 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("BLOB")
.HasColumnName("hwid");
b.Property<bool>("Hidden")
.HasColumnType("INTEGER")
.HasColumnName("hidden");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("TEXT")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("TEXT")
.HasColumnName("last_edited_by_id");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("TEXT")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("TEXT")
.HasColumnName("playtime_at_note");
b.Property<string>("Reason")
.IsRequired()
.HasColumnType("TEXT")
.HasColumnName("reason");
b.Property<Guid?>("UserId")
.HasColumnType("TEXT")
.HasColumnName("user_id");
b.Property<int?>("RoundId")
.HasColumnType("INTEGER")
.HasColumnName("round_id");
b.Property<int>("Severity")
.HasColumnType("INTEGER")
.HasColumnName("severity");
b.HasKey("Id")
.HasName("PK_server_ban");
b.HasIndex("Address");
b.HasIndex("UserId");
b.HasIndex("BanningAdmin");
b.HasIndex("LastEditedById");
b.HasIndex("PlayerUserId")
.HasDatabaseName("IX_server_ban_player_user_id");
b.HasIndex("RoundId")
.HasDatabaseName("IX_server_ban_round_id");
b.ToTable("server_ban", null, t =>
{
t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
});
});
@@ -797,6 +997,26 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("BLOB")
.HasColumnName("hwid");
b.Property<bool>("Hidden")
.HasColumnType("INTEGER")
.HasColumnName("hidden");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("TEXT")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("TEXT")
.HasColumnName("last_edited_by_id");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("TEXT")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("TEXT")
.HasColumnName("playtime_at_note");
b.Property<string>("Reason")
.IsRequired()
.HasColumnType("TEXT")
@@ -807,20 +1027,32 @@ namespace Content.Server.Database.Migrations.Sqlite
.HasColumnType("TEXT")
.HasColumnName("role_id");
b.Property<Guid?>("UserId")
.HasColumnType("TEXT")
.HasColumnName("user_id");
b.Property<int?>("RoundId")
.HasColumnType("INTEGER")
.HasColumnName("round_id");
b.Property<int>("Severity")
.HasColumnType("INTEGER")
.HasColumnName("severity");
b.HasKey("Id")
.HasName("PK_server_role_ban");
b.HasIndex("Address");
b.HasIndex("UserId");
b.HasIndex("BanningAdmin");
b.HasIndex("LastEditedById");
b.HasIndex("PlayerUserId")
.HasDatabaseName("IX_server_role_ban_player_user_id");
b.HasIndex("RoundId")
.HasDatabaseName("IX_server_role_ban_round_id");
b.ToTable("server_role_ban", null, t =>
{
t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
});
});
@@ -1033,36 +1265,80 @@ namespace Content.Server.Database.Migrations.Sqlite
b.Navigation("Player");
});
modelBuilder.Entity("Content.Server.Database.AdminMessage", b =>
{
b.HasOne("Content.Server.Database.Player", "CreatedBy")
.WithMany("AdminMessagesCreated")
.HasForeignKey("CreatedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_messages_player_created_by_id");
b.HasOne("Content.Server.Database.Player", "DeletedBy")
.WithMany("AdminMessagesDeleted")
.HasForeignKey("DeletedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_messages_player_deleted_by_id");
b.HasOne("Content.Server.Database.Player", "LastEditedBy")
.WithMany("AdminMessagesLastEdited")
.HasForeignKey("LastEditedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_messages_player_last_edited_by_id");
b.HasOne("Content.Server.Database.Player", "Player")
.WithMany("AdminMessagesReceived")
.HasForeignKey("PlayerUserId")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_messages_player_player_user_id");
b.HasOne("Content.Server.Database.Round", "Round")
.WithMany()
.HasForeignKey("RoundId")
.HasConstraintName("FK_admin_messages_round_round_id");
b.Navigation("CreatedBy");
b.Navigation("DeletedBy");
b.Navigation("LastEditedBy");
b.Navigation("Player");
b.Navigation("Round");
});
modelBuilder.Entity("Content.Server.Database.AdminNote", b =>
{
b.HasOne("Content.Server.Database.Player", "CreatedBy")
.WithMany("AdminNotesCreated")
.HasForeignKey("CreatedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_notes_player_created_by_id");
b.HasOne("Content.Server.Database.Player", "DeletedBy")
.WithMany("AdminNotesDeleted")
.HasForeignKey("DeletedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_notes_player_deleted_by_id");
b.HasOne("Content.Server.Database.Player", "LastEditedBy")
.WithMany("AdminNotesLastEdited")
.HasForeignKey("LastEditedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_notes_player_last_edited_by_id");
b.HasOne("Content.Server.Database.Player", "Player")
.WithMany("AdminNotesReceived")
.HasForeignKey("PlayerUserId")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired()
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_notes_player_player_user_id");
b.HasOne("Content.Server.Database.Round", "Round")
@@ -1093,6 +1369,52 @@ namespace Content.Server.Database.Migrations.Sqlite
b.Navigation("Rank");
});
modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b =>
{
b.HasOne("Content.Server.Database.Player", "CreatedBy")
.WithMany("AdminWatchlistsCreated")
.HasForeignKey("CreatedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_watchlists_player_created_by_id");
b.HasOne("Content.Server.Database.Player", "DeletedBy")
.WithMany("AdminWatchlistsDeleted")
.HasForeignKey("DeletedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_watchlists_player_deleted_by_id");
b.HasOne("Content.Server.Database.Player", "LastEditedBy")
.WithMany("AdminWatchlistsLastEdited")
.HasForeignKey("LastEditedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_watchlists_player_last_edited_by_id");
b.HasOne("Content.Server.Database.Player", "Player")
.WithMany("AdminWatchlistsReceived")
.HasForeignKey("PlayerUserId")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_admin_watchlists_player_player_user_id");
b.HasOne("Content.Server.Database.Round", "Round")
.WithMany()
.HasForeignKey("RoundId")
.HasConstraintName("FK_admin_watchlists_round_round_id");
b.Navigation("CreatedBy");
b.Navigation("DeletedBy");
b.Navigation("LastEditedBy");
b.Navigation("Player");
b.Navigation("Round");
});
modelBuilder.Entity("Content.Server.Database.Antag", b =>
{
b.HasOne("Content.Server.Database.Profile", "Profile")
@@ -1141,6 +1463,34 @@ namespace Content.Server.Database.Migrations.Sqlite
b.Navigation("Server");
});
modelBuilder.Entity("Content.Server.Database.ServerBan", b =>
{
b.HasOne("Content.Server.Database.Player", "CreatedBy")
.WithMany("AdminServerBansCreated")
.HasForeignKey("BanningAdmin")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_server_ban_player_banning_admin");
b.HasOne("Content.Server.Database.Player", "LastEditedBy")
.WithMany("AdminServerBansLastEdited")
.HasForeignKey("LastEditedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_server_ban_player_last_edited_by_id");
b.HasOne("Content.Server.Database.Round", "Round")
.WithMany()
.HasForeignKey("RoundId")
.HasConstraintName("FK_server_ban_round_round_id");
b.Navigation("CreatedBy");
b.Navigation("LastEditedBy");
b.Navigation("Round");
});
modelBuilder.Entity("Content.Server.Database.ServerBanHit", b =>
{
b.HasOne("Content.Server.Database.ServerBan", "Ban")
@@ -1162,6 +1512,34 @@ namespace Content.Server.Database.Migrations.Sqlite
b.Navigation("Connection");
});
modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b =>
{
b.HasOne("Content.Server.Database.Player", "CreatedBy")
.WithMany("AdminServerRoleBansCreated")
.HasForeignKey("BanningAdmin")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_server_role_ban_player_banning_admin");
b.HasOne("Content.Server.Database.Player", "LastEditedBy")
.WithMany("AdminServerRoleBansLastEdited")
.HasForeignKey("LastEditedById")
.HasPrincipalKey("UserId")
.OnDelete(DeleteBehavior.SetNull)
.HasConstraintName("FK_server_role_ban_player_last_edited_by_id");
b.HasOne("Content.Server.Database.Round", "Round")
.WithMany()
.HasForeignKey("RoundId")
.HasConstraintName("FK_server_role_ban_round_round_id");
b.Navigation("CreatedBy");
b.Navigation("LastEditedBy");
b.Navigation("Round");
});
modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b =>
{
b.HasOne("Content.Server.Database.ServerRoleBan", "Ban")
@@ -1243,6 +1621,14 @@ namespace Content.Server.Database.Migrations.Sqlite
{
b.Navigation("AdminLogs");
b.Navigation("AdminMessagesCreated");
b.Navigation("AdminMessagesDeleted");
b.Navigation("AdminMessagesLastEdited");
b.Navigation("AdminMessagesReceived");
b.Navigation("AdminNotesCreated");
b.Navigation("AdminNotesDeleted");
@@ -1250,6 +1636,22 @@ namespace Content.Server.Database.Migrations.Sqlite
b.Navigation("AdminNotesLastEdited");
b.Navigation("AdminNotesReceived");
b.Navigation("AdminServerBansCreated");
b.Navigation("AdminServerBansLastEdited");
b.Navigation("AdminServerRoleBansCreated");
b.Navigation("AdminServerRoleBansLastEdited");
b.Navigation("AdminWatchlistsCreated");
b.Navigation("AdminWatchlistsDeleted");
b.Navigation("AdminWatchlistsLastEdited");
b.Navigation("AdminWatchlistsReceived");
});
modelBuilder.Entity("Content.Server.Database.Preference", b =>