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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,714 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Content.Server.Database.Migrations.Postgres
{
/// <inheritdoc />
public partial class AdminNotesImprovement : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban");
migrationBuilder.RenameColumn(
name: "user_id",
table: "server_role_ban",
newName: "player_user_id");
migrationBuilder.RenameIndex(
name: "IX_server_role_ban_user_id",
table: "server_role_ban",
newName: "IX_server_role_ban_player_user_id");
migrationBuilder.RenameColumn(
name: "user_id",
table: "server_ban",
newName: "player_user_id");
migrationBuilder.RenameIndex(
name: "IX_server_ban_user_id",
table: "server_ban",
newName: "IX_server_ban_player_user_id");
migrationBuilder.RenameColumn(
name: "shown_to_player",
table: "admin_notes",
newName: "secret");
migrationBuilder.UpdateData(
table: "admin_notes",
keyColumn: "secret",
keyValue: false,
column: "secret",
value: true);
migrationBuilder.AddColumn<bool>(
name: "hidden",
table: "server_role_ban",
type: "boolean",
nullable: false,
defaultValue: true);
migrationBuilder.AddColumn<DateTime>(
name: "last_edited_at",
table: "server_role_ban",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "last_edited_by_id",
table: "server_role_ban",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "server_role_ban",
type: "interval",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn<int>(
name: "round_id",
table: "server_role_ban",
type: "integer",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "server_role_ban",
type: "integer",
nullable: false,
defaultValue: 2);
migrationBuilder.AddColumn<bool>(
name: "hidden",
table: "server_ban",
type: "boolean",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "last_edited_at",
table: "server_ban",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "last_edited_by_id",
table: "server_ban",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "server_ban",
type: "interval",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn<int>(
name: "round_id",
table: "server_ban",
type: "integer",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "server_ban",
type: "integer",
nullable: false,
defaultValue: 3);
migrationBuilder.AlterColumn<Guid>(
name: "player_user_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "last_edited_by_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn<Guid>(
name: "created_by_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AddColumn<DateTime>(
name: "expiration_time",
table: "admin_notes",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "admin_notes",
type: "integer",
nullable: false,
defaultValue: 1);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "admin_notes",
type: "interval",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.CreateTable(
name: "admin_messages",
columns: table => new
{
admin_messages_id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
round_id = table.Column<int>(type: "integer", nullable: true),
player_user_id = table.Column<Guid>(type: "uuid", nullable: true),
playtime_at_note = table.Column<TimeSpan>(type: "interval", nullable: false),
message = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: false),
created_by_id = table.Column<Guid>(type: "uuid", nullable: true),
created_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
last_edited_by_id = table.Column<Guid>(type: "uuid", nullable: true),
last_edited_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
expiration_time = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
deleted = table.Column<bool>(type: "boolean", nullable: false),
deleted_by_id = table.Column<Guid>(type: "uuid", nullable: true),
deleted_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
seen = table.Column<bool>(type: "boolean", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_admin_messages", x => x.admin_messages_id);
table.ForeignKey(
name: "FK_admin_messages_player_created_by_id",
column: x => x.created_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_deleted_by_id",
column: x => x.deleted_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_last_edited_by_id",
column: x => x.last_edited_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_player_user_id",
column: x => x.player_user_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_round_round_id",
column: x => x.round_id,
principalTable: "round",
principalColumn: "round_id");
});
migrationBuilder.CreateTable(
name: "admin_watchlists",
columns: table => new
{
admin_watchlists_id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
round_id = table.Column<int>(type: "integer", nullable: true),
player_user_id = table.Column<Guid>(type: "uuid", nullable: true),
playtime_at_note = table.Column<TimeSpan>(type: "interval", nullable: false),
message = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: false),
created_by_id = table.Column<Guid>(type: "uuid", nullable: true),
created_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
last_edited_by_id = table.Column<Guid>(type: "uuid", nullable: true),
last_edited_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
expiration_time = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
deleted = table.Column<bool>(type: "boolean", nullable: false),
deleted_by_id = table.Column<Guid>(type: "uuid", nullable: true),
deleted_at = table.Column<DateTime>(type: "timestamp with time zone", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_admin_watchlists", x => x.admin_watchlists_id);
table.ForeignKey(
name: "FK_admin_watchlists_player_created_by_id",
column: x => x.created_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_deleted_by_id",
column: x => x.deleted_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_last_edited_by_id",
column: x => x.last_edited_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_player_user_id",
column: x => x.player_user_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_round_round_id",
column: x => x.round_id,
principalTable: "round",
principalColumn: "round_id");
});
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_banning_admin",
table: "server_role_ban",
column: "banning_admin");
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_last_edited_by_id",
table: "server_role_ban",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_round_id",
table: "server_role_ban",
column: "round_id");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban",
sql: "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_server_ban_banning_admin",
table: "server_ban",
column: "banning_admin");
migrationBuilder.CreateIndex(
name: "IX_server_ban_last_edited_by_id",
table: "server_ban",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_server_ban_round_id",
table: "server_ban",
column: "round_id");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban",
sql: "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_created_by_id",
table: "admin_messages",
column: "created_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_deleted_by_id",
table: "admin_messages",
column: "deleted_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_last_edited_by_id",
table: "admin_messages",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_player_user_id",
table: "admin_messages",
column: "player_user_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_round_id",
table: "admin_messages",
column: "round_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_created_by_id",
table: "admin_watchlists",
column: "created_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_deleted_by_id",
table: "admin_watchlists",
column: "deleted_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_last_edited_by_id",
table: "admin_watchlists",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_player_user_id",
table: "admin_watchlists",
column: "player_user_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_round_id",
table: "admin_watchlists",
column: "round_id");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes",
column: "created_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes",
column: "deleted_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes",
column: "player_user_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_player_banning_admin",
table: "server_ban",
column: "banning_admin",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_player_last_edited_by_id",
table: "server_ban",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_round_round_id",
table: "server_ban",
column: "round_id",
principalTable: "round",
principalColumn: "round_id");
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_player_banning_admin",
table: "server_role_ban",
column: "banning_admin",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_player_last_edited_by_id",
table: "server_role_ban",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_round_round_id",
table: "server_role_ban",
column: "round_id",
principalTable: "round",
principalColumn: "round_id");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_player_banning_admin",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_player_last_edited_by_id",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_round_round_id",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_player_banning_admin",
table: "server_role_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_player_last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_round_round_id",
table: "server_role_ban");
migrationBuilder.DropTable(
name: "admin_messages");
migrationBuilder.DropTable(
name: "admin_watchlists");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_banning_admin",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_round_id",
table: "server_role_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_banning_admin",
table: "server_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_last_edited_by_id",
table: "server_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_round_id",
table: "server_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban");
migrationBuilder.DropColumn(
name: "hidden",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "last_edited_at",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "round_id",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "severity",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "hidden",
table: "server_ban");
migrationBuilder.DropColumn(
name: "last_edited_at",
table: "server_ban");
migrationBuilder.DropColumn(
name: "last_edited_by_id",
table: "server_ban");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "server_ban");
migrationBuilder.DropColumn(
name: "round_id",
table: "server_ban");
migrationBuilder.DropColumn(
name: "severity",
table: "server_ban");
migrationBuilder.DropColumn(
name: "expiration_time",
table: "admin_notes");
migrationBuilder.DropColumn(
name: "severity",
table: "admin_notes");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "admin_notes");
migrationBuilder.RenameColumn(
name: "player_user_id",
table: "server_role_ban",
newName: "user_id");
migrationBuilder.RenameIndex(
name: "IX_server_role_ban_player_user_id",
table: "server_role_ban",
newName: "IX_server_role_ban_user_id");
migrationBuilder.RenameColumn(
name: "player_user_id",
table: "server_ban",
newName: "user_id");
migrationBuilder.RenameIndex(
name: "IX_server_ban_player_user_id",
table: "server_ban",
newName: "IX_server_ban_user_id");
migrationBuilder.RenameColumn(
name: "secret",
table: "admin_notes",
newName: "shown_to_player");
migrationBuilder.UpdateData(
table: "admin_notes",
keyColumn: "shown_to_player",
keyValue: true,
column: "shown_to_player",
value: false);
migrationBuilder.AlterColumn<Guid>(
name: "player_user_id",
table: "admin_notes",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "last_edited_by_id",
table: "admin_notes",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "created_by_id",
table: "admin_notes",
type: "uuid",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "uuid",
oldNullable: true);
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban",
sql: "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban",
sql: "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes",
column: "created_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes",
column: "deleted_by_id",
principalTable: "player",
principalColumn: "user_id");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes",
column: "player_user_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
}
}
}

View File

@@ -1,4 +1,4 @@
// <auto-generated />
// <auto-generated />
using System;
using System.Net;
using System.Text.Json;
@@ -188,12 +188,12 @@ namespace Content.Server.Database.Migrations.Postgres
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");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
@@ -201,7 +201,7 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property<Guid>("CreatedById")
b.Property<Guid?>("CreatedById")
.HasColumnType("uuid")
.HasColumnName("created_by_id");
@@ -217,11 +217,15 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("uuid")
.HasColumnName("deleted_by_id");
b.Property<DateTime>("LastEditedAt")
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_edited_at");
b.Property<Guid>("LastEditedById")
b.Property<Guid?>("LastEditedById")
.HasColumnType("uuid")
.HasColumnName("last_edited_by_id");
@@ -231,17 +235,107 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("character varying(4096)")
.HasColumnName("message");
b.Property<Guid>("PlayerUserId")
b.Property<Guid?>("PlayerUserId")
.HasColumnType("uuid")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("interval")
.HasColumnName("playtime_at_note");
b.Property<int?>("RoundId")
.HasColumnType("integer")
.HasColumnName("round_id");
b.Property<bool>("ShownToPlayer")
b.Property<bool>("Seen")
.HasColumnType("boolean")
.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");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property<Guid?>("CreatedById")
.HasColumnType("uuid")
.HasColumnName("created_by_id");
b.Property<bool>("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property<DateTime?>("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property<Guid?>("DeletedById")
.HasColumnType("uuid")
.HasColumnName("deleted_by_id");
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.IsRequired()
.HasColumnType("timestamp with time zone")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("uuid")
.HasColumnName("last_edited_by_id");
b.Property<string>("Message")
.IsRequired()
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("message");
b.Property<int>("Severity")
.HasColumnType("integer")
.HasColumnName("severity");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("uuid")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("interval")
.HasColumnName("playtime_at_note");
b.Property<int?>("RoundId")
.HasColumnType("integer")
.HasColumnName("round_id");
b.Property<bool>("Secret")
.HasColumnType("boolean")
.HasColumnName("secret");
b.HasKey("Id")
.HasName("PK_admin_notes");
@@ -310,6 +404,84 @@ namespace Content.Server.Database.Migrations.Postgres
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");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
b.Property<DateTime>("CreatedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("created_at");
b.Property<Guid?>("CreatedById")
.HasColumnType("uuid")
.HasColumnName("created_by_id");
b.Property<bool>("Deleted")
.HasColumnType("boolean")
.HasColumnName("deleted");
b.Property<DateTime?>("DeletedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("deleted_at");
b.Property<Guid?>("DeletedById")
.HasColumnType("uuid")
.HasColumnName("deleted_by_id");
b.Property<DateTime?>("ExpirationTime")
.HasColumnType("timestamp with time zone")
.HasColumnName("expiration_time");
b.Property<DateTime?>("LastEditedAt")
.IsRequired()
.HasColumnType("timestamp with time zone")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("uuid")
.HasColumnName("last_edited_by_id");
b.Property<string>("Message")
.IsRequired()
.HasMaxLength(4096)
.HasColumnType("character varying(4096)")
.HasColumnName("message");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("uuid")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("interval")
.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")
@@ -753,27 +925,59 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("bytea")
.HasColumnName("hwid");
b.Property<bool>("Hidden")
.HasColumnType("boolean")
.HasColumnName("hidden");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("uuid")
.HasColumnName("last_edited_by_id");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("uuid")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("interval")
.HasColumnName("playtime_at_note");
b.Property<string>("Reason")
.IsRequired()
.HasColumnType("text")
.HasColumnName("reason");
b.Property<Guid?>("UserId")
.HasColumnType("uuid")
.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("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address");
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");
});
});
@@ -855,6 +1059,26 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("bytea")
.HasColumnName("hwid");
b.Property<bool>("Hidden")
.HasColumnType("boolean")
.HasColumnName("hidden");
b.Property<DateTime?>("LastEditedAt")
.HasColumnType("timestamp with time zone")
.HasColumnName("last_edited_at");
b.Property<Guid?>("LastEditedById")
.HasColumnType("uuid")
.HasColumnName("last_edited_by_id");
b.Property<Guid?>("PlayerUserId")
.HasColumnType("uuid")
.HasColumnName("player_user_id");
b.Property<TimeSpan>("PlaytimeAtNote")
.HasColumnType("interval")
.HasColumnName("playtime_at_note");
b.Property<string>("Reason")
.IsRequired()
.HasColumnType("text")
@@ -865,22 +1089,34 @@ namespace Content.Server.Database.Migrations.Postgres
.HasColumnType("text")
.HasColumnName("role_id");
b.Property<Guid?>("UserId")
.HasColumnType("uuid")
.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("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address");
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");
});
});
@@ -1101,36 +1337,80 @@ namespace Content.Server.Database.Migrations.Postgres
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")
@@ -1161,6 +1441,52 @@ namespace Content.Server.Database.Migrations.Postgres
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")
@@ -1209,6 +1535,34 @@ namespace Content.Server.Database.Migrations.Postgres
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")
@@ -1230,6 +1584,34 @@ namespace Content.Server.Database.Migrations.Postgres
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")
@@ -1311,6 +1693,14 @@ namespace Content.Server.Database.Migrations.Postgres
{
b.Navigation("AdminLogs");
b.Navigation("AdminMessagesCreated");
b.Navigation("AdminMessagesDeleted");
b.Navigation("AdminMessagesLastEdited");
b.Navigation("AdminMessagesReceived");
b.Navigation("AdminNotesCreated");
b.Navigation("AdminNotesDeleted");
@@ -1318,6 +1708,22 @@ namespace Content.Server.Database.Migrations.Postgres
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 =>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,713 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Content.Server.Database.Migrations.Sqlite
{
/// <inheritdoc />
public partial class AdminNotesImprovement : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban");
migrationBuilder.RenameColumn(
name: "user_id",
table: "server_role_ban",
newName: "player_user_id");
migrationBuilder.RenameIndex(
name: "IX_server_role_ban_user_id",
table: "server_role_ban",
newName: "IX_server_role_ban_player_user_id");
migrationBuilder.RenameColumn(
name: "user_id",
table: "server_ban",
newName: "player_user_id");
migrationBuilder.RenameIndex(
name: "IX_server_ban_user_id",
table: "server_ban",
newName: "IX_server_ban_player_user_id");
migrationBuilder.RenameColumn(
name: "shown_to_player",
table: "admin_notes",
newName: "secret");
migrationBuilder.UpdateData(
table: "admin_notes",
keyColumn: "secret",
keyValue: false,
column: "secret",
value: true);
migrationBuilder.AddColumn<bool>(
name: "hidden",
table: "server_role_ban",
type: "INTEGER",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "last_edited_at",
table: "server_role_ban",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "last_edited_by_id",
table: "server_role_ban",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "server_role_ban",
type: "TEXT",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn<int>(
name: "round_id",
table: "server_role_ban",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "server_role_ban",
type: "INTEGER",
nullable: false,
defaultValue: 2);
migrationBuilder.AddColumn<bool>(
name: "hidden",
table: "server_ban",
type: "INTEGER",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<DateTime>(
name: "last_edited_at",
table: "server_ban",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "last_edited_by_id",
table: "server_ban",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "server_ban",
type: "TEXT",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn<int>(
name: "round_id",
table: "server_ban",
type: "INTEGER",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "server_ban",
type: "INTEGER",
nullable: false,
defaultValue: 3);
migrationBuilder.AlterColumn<Guid>(
name: "player_user_id",
table: "admin_notes",
type: "TEXT",
nullable: true,
oldClrType: typeof(Guid),
oldType: "TEXT");
migrationBuilder.AlterColumn<Guid>(
name: "last_edited_by_id",
table: "admin_notes",
type: "TEXT",
nullable: true,
oldClrType: typeof(Guid),
oldType: "TEXT");
migrationBuilder.AlterColumn<Guid>(
name: "created_by_id",
table: "admin_notes",
type: "TEXT",
nullable: true,
oldClrType: typeof(Guid),
oldType: "TEXT");
migrationBuilder.AddColumn<DateTime>(
name: "expiration_time",
table: "admin_notes",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "severity",
table: "admin_notes",
type: "INTEGER",
nullable: false,
defaultValue: 1);
migrationBuilder.AddColumn<TimeSpan>(
name: "playtime_at_note",
table: "admin_notes",
type: "TEXT",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.CreateTable(
name: "admin_messages",
columns: table => new
{
admin_messages_id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
round_id = table.Column<int>(type: "INTEGER", nullable: true),
player_user_id = table.Column<Guid>(type: "TEXT", nullable: true),
playtime_at_note = table.Column<TimeSpan>(type: "TEXT", nullable: false),
message = table.Column<string>(type: "TEXT", maxLength: 4096, nullable: false),
created_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
created_at = table.Column<DateTime>(type: "TEXT", nullable: false),
last_edited_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
last_edited_at = table.Column<DateTime>(type: "TEXT", nullable: true),
expiration_time = table.Column<DateTime>(type: "TEXT", nullable: true),
deleted = table.Column<bool>(type: "INTEGER", nullable: false),
deleted_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
deleted_at = table.Column<DateTime>(type: "TEXT", nullable: true),
seen = table.Column<bool>(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_admin_messages", x => x.admin_messages_id);
table.ForeignKey(
name: "FK_admin_messages_player_created_by_id",
column: x => x.created_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_deleted_by_id",
column: x => x.deleted_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_last_edited_by_id",
column: x => x.last_edited_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_player_player_user_id",
column: x => x.player_user_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_messages_round_round_id",
column: x => x.round_id,
principalTable: "round",
principalColumn: "round_id");
});
migrationBuilder.CreateTable(
name: "admin_watchlists",
columns: table => new
{
admin_watchlists_id = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
round_id = table.Column<int>(type: "INTEGER", nullable: true),
player_user_id = table.Column<Guid>(type: "TEXT", nullable: true),
playtime_at_note = table.Column<TimeSpan>(type: "TEXT", nullable: false),
message = table.Column<string>(type: "TEXT", maxLength: 4096, nullable: false),
created_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
created_at = table.Column<DateTime>(type: "TEXT", nullable: false),
last_edited_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
last_edited_at = table.Column<DateTime>(type: "TEXT", nullable: false),
expiration_time = table.Column<DateTime>(type: "TEXT", nullable: true),
deleted = table.Column<bool>(type: "INTEGER", nullable: false),
deleted_by_id = table.Column<Guid>(type: "TEXT", nullable: true),
deleted_at = table.Column<DateTime>(type: "TEXT", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_admin_watchlists", x => x.admin_watchlists_id);
table.ForeignKey(
name: "FK_admin_watchlists_player_created_by_id",
column: x => x.created_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_deleted_by_id",
column: x => x.deleted_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_last_edited_by_id",
column: x => x.last_edited_by_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_player_player_user_id",
column: x => x.player_user_id,
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
table.ForeignKey(
name: "FK_admin_watchlists_round_round_id",
column: x => x.round_id,
principalTable: "round",
principalColumn: "round_id");
});
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_banning_admin",
table: "server_role_ban",
column: "banning_admin");
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_last_edited_by_id",
table: "server_role_ban",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_server_role_ban_round_id",
table: "server_role_ban",
column: "round_id");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban",
sql: "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_server_ban_banning_admin",
table: "server_ban",
column: "banning_admin");
migrationBuilder.CreateIndex(
name: "IX_server_ban_last_edited_by_id",
table: "server_ban",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_server_ban_round_id",
table: "server_ban",
column: "round_id");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban",
sql: "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_created_by_id",
table: "admin_messages",
column: "created_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_deleted_by_id",
table: "admin_messages",
column: "deleted_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_last_edited_by_id",
table: "admin_messages",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_player_user_id",
table: "admin_messages",
column: "player_user_id");
migrationBuilder.CreateIndex(
name: "IX_admin_messages_round_id",
table: "admin_messages",
column: "round_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_created_by_id",
table: "admin_watchlists",
column: "created_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_deleted_by_id",
table: "admin_watchlists",
column: "deleted_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_last_edited_by_id",
table: "admin_watchlists",
column: "last_edited_by_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_player_user_id",
table: "admin_watchlists",
column: "player_user_id");
migrationBuilder.CreateIndex(
name: "IX_admin_watchlists_round_id",
table: "admin_watchlists",
column: "round_id");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes",
column: "created_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes",
column: "deleted_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes",
column: "player_user_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_player_banning_admin",
table: "server_ban",
column: "banning_admin",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_player_last_edited_by_id",
table: "server_ban",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_ban_round_round_id",
table: "server_ban",
column: "round_id",
principalTable: "round",
principalColumn: "round_id");
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_player_banning_admin",
table: "server_role_ban",
column: "banning_admin",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_player_last_edited_by_id",
table: "server_role_ban",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.SetNull);
migrationBuilder.AddForeignKey(
name: "FK_server_role_ban_round_round_id",
table: "server_role_ban",
column: "round_id",
principalTable: "round",
principalColumn: "round_id");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_player_banning_admin",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_player_last_edited_by_id",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_ban_round_round_id",
table: "server_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_player_banning_admin",
table: "server_role_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_player_last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropForeignKey(
name: "FK_server_role_ban_round_round_id",
table: "server_role_ban");
migrationBuilder.DropTable(
name: "admin_messages");
migrationBuilder.DropTable(
name: "admin_watchlists");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_banning_admin",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_role_ban_round_id",
table: "server_role_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_banning_admin",
table: "server_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_last_edited_by_id",
table: "server_ban");
migrationBuilder.DropIndex(
name: "IX_server_ban_round_id",
table: "server_ban");
migrationBuilder.DropCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban");
migrationBuilder.DropColumn(
name: "hidden",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "last_edited_at",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "last_edited_by_id",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "round_id",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "severity",
table: "server_role_ban");
migrationBuilder.DropColumn(
name: "hidden",
table: "server_ban");
migrationBuilder.DropColumn(
name: "last_edited_at",
table: "server_ban");
migrationBuilder.DropColumn(
name: "last_edited_by_id",
table: "server_ban");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "server_ban");
migrationBuilder.DropColumn(
name: "round_id",
table: "server_ban");
migrationBuilder.DropColumn(
name: "severity",
table: "server_ban");
migrationBuilder.DropColumn(
name: "expiration_time",
table: "admin_notes");
migrationBuilder.DropColumn(
name: "severity",
table: "admin_notes");
migrationBuilder.DropColumn(
name: "playtime_at_note",
table: "admin_notes");
migrationBuilder.RenameColumn(
name: "player_user_id",
table: "server_role_ban",
newName: "user_id");
migrationBuilder.RenameIndex(
name: "IX_server_role_ban_player_user_id",
table: "server_role_ban",
newName: "IX_server_role_ban_user_id");
migrationBuilder.RenameColumn(
name: "player_user_id",
table: "server_ban",
newName: "user_id");
migrationBuilder.RenameIndex(
name: "IX_server_ban_player_user_id",
table: "server_ban",
newName: "IX_server_ban_user_id");
migrationBuilder.RenameColumn(
name: "secret",
table: "admin_notes",
newName: "shown_to_player");
migrationBuilder.UpdateData(
table: "admin_notes",
keyColumn: "shown_to_player",
keyValue: true,
column: "shown_to_player",
value: false);
migrationBuilder.AlterColumn<Guid>(
name: "player_user_id",
table: "admin_notes",
type: "TEXT",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "TEXT",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "last_edited_by_id",
table: "admin_notes",
type: "TEXT",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "TEXT",
oldNullable: true);
migrationBuilder.AlterColumn<Guid>(
name: "created_by_id",
table: "admin_notes",
type: "TEXT",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
oldClrType: typeof(Guid),
oldType: "TEXT",
oldNullable: true);
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_role_ban",
sql: "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.AddCheckConstraint(
name: "HaveEitherAddressOrUserIdOrHWId",
table: "server_ban",
sql: "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_created_by_id",
table: "admin_notes",
column: "created_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_deleted_by_id",
table: "admin_notes",
column: "deleted_by_id",
principalTable: "player",
principalColumn: "user_id");
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_last_edited_by_id",
table: "admin_notes",
column: "last_edited_by_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_admin_notes_player_player_user_id",
table: "admin_notes",
column: "player_user_id",
principalTable: "player",
principalColumn: "user_id",
onDelete: ReferentialAction.Cascade);
}
}
}

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 =>