using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Content.Server.Database.Migrations.Postgres
{
///
public partial class AdminNotesImprovement : Migration
{
///
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_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(
name: "hidden",
table: "server_role_ban",
type: "boolean",
nullable: false,
defaultValue: true);
migrationBuilder.AddColumn(
name: "last_edited_at",
table: "server_role_ban",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn(
name: "last_edited_by_id",
table: "server_role_ban",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn(
name: "playtime_at_note",
table: "server_role_ban",
type: "interval",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn(
name: "round_id",
table: "server_role_ban",
type: "integer",
nullable: true);
migrationBuilder.AddColumn(
name: "severity",
table: "server_role_ban",
type: "integer",
nullable: false,
defaultValue: 2);
migrationBuilder.AddColumn(
name: "hidden",
table: "server_ban",
type: "boolean",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn(
name: "last_edited_at",
table: "server_ban",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn(
name: "last_edited_by_id",
table: "server_ban",
type: "uuid",
nullable: true);
migrationBuilder.AddColumn(
name: "playtime_at_note",
table: "server_ban",
type: "interval",
nullable: false,
defaultValue: new TimeSpan(0, 0, 0, 0, 0));
migrationBuilder.AddColumn(
name: "round_id",
table: "server_ban",
type: "integer",
nullable: true);
migrationBuilder.AddColumn(
name: "severity",
table: "server_ban",
type: "integer",
nullable: false,
defaultValue: 3);
migrationBuilder.AlterColumn(
name: "player_user_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn(
name: "last_edited_by_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AlterColumn(
name: "created_by_id",
table: "admin_notes",
type: "uuid",
nullable: true,
oldClrType: typeof(Guid),
oldType: "uuid");
migrationBuilder.AddColumn(
name: "expiration_time",
table: "admin_notes",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn(
name: "severity",
table: "admin_notes",
type: "integer",
nullable: false,
defaultValue: 1);
migrationBuilder.AddColumn(
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(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
round_id = table.Column(type: "integer", nullable: true),
player_user_id = table.Column(type: "uuid", nullable: true),
playtime_at_note = table.Column(type: "interval", nullable: false),
message = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: false),
created_by_id = table.Column(type: "uuid", nullable: true),
created_at = table.Column(type: "timestamp with time zone", nullable: false),
last_edited_by_id = table.Column(type: "uuid", nullable: true),
last_edited_at = table.Column(type: "timestamp with time zone", nullable: true),
expiration_time = table.Column(type: "timestamp with time zone", nullable: true),
deleted = table.Column(type: "boolean", nullable: false),
deleted_by_id = table.Column(type: "uuid", nullable: true),
deleted_at = table.Column(type: "timestamp with time zone", nullable: true),
seen = table.Column(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(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
round_id = table.Column(type: "integer", nullable: true),
player_user_id = table.Column(type: "uuid", nullable: true),
playtime_at_note = table.Column(type: "interval", nullable: false),
message = table.Column(type: "character varying(4096)", maxLength: 4096, nullable: false),
created_by_id = table.Column(type: "uuid", nullable: true),
created_at = table.Column(type: "timestamp with time zone", nullable: false),
last_edited_by_id = table.Column(type: "uuid", nullable: true),
last_edited_at = table.Column(type: "timestamp with time zone", nullable: false),
expiration_time = table.Column(type: "timestamp with time zone", nullable: true),
deleted = table.Column(type: "boolean", nullable: false),
deleted_by_id = table.Column(type: "uuid", nullable: true),
deleted_at = table.Column(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");
}
///
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(
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(
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(
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);
}
}
}