// using System; using System.Net; using Content.Server.Database; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace Content.Server.Database.Migrations.Postgres { [DbContext(typeof(PostgresServerDbContext))] [Migration("20210915093340_UniqueHighPriorityJob")] partial class UniqueHighPriorityJob { #if EF_DESIGNER protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("Relational:MaxIdentifierLength", 63) .HasAnnotation("ProductVersion", "5.0.3") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); modelBuilder.Entity("Content.Server.Database.Admin", b => { b.Property("UserId") .ValueGeneratedOnAdd() .HasColumnType("uuid") .HasColumnName("user_id"); b.Property("AdminRankId") .HasColumnType("integer") .HasColumnName("admin_rank_id"); b.Property("Title") .HasColumnType("text") .HasColumnName("title"); b.HasKey("UserId"); b.HasIndex("AdminRankId"); b.ToTable("admin"); }); modelBuilder.Entity("Content.Server.Database.AdminFlag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("admin_flag_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("AdminId") .HasColumnType("uuid") .HasColumnName("admin_id"); b.Property("Flag") .IsRequired() .HasColumnType("text") .HasColumnName("flag"); b.Property("Negative") .HasColumnType("boolean") .HasColumnName("negative"); b.HasKey("Id"); b.HasIndex("AdminId"); b.HasIndex("Flag", "AdminId") .IsUnique(); b.ToTable("admin_flag"); }); modelBuilder.Entity("Content.Server.Database.AdminRank", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("admin_rank_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("Name") .IsRequired() .HasColumnType("text") .HasColumnName("name"); b.HasKey("Id"); b.ToTable("admin_rank"); }); modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("admin_rank_flag_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("AdminRankId") .HasColumnType("integer") .HasColumnName("admin_rank_id"); b.Property("Flag") .IsRequired() .HasColumnType("text") .HasColumnName("flag"); b.HasKey("Id"); b.HasIndex("AdminRankId"); b.HasIndex("Flag", "AdminRankId") .IsUnique(); b.ToTable("admin_rank_flag"); }); modelBuilder.Entity("Content.Server.Database.Antag", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("antag_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("AntagName") .IsRequired() .HasColumnType("text") .HasColumnName("antag_name"); b.Property("ProfileId") .HasColumnType("integer") .HasColumnName("profile_id"); b.HasKey("Id"); b.HasIndex("ProfileId", "AntagName") .IsUnique(); b.ToTable("antag"); }); modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("assigned_user_id_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.Property("UserName") .IsRequired() .HasColumnType("text") .HasColumnName("user_name"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.HasIndex("UserName") .IsUnique(); b.ToTable("assigned_user_id"); }); modelBuilder.Entity("Content.Server.Database.Job", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("job_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("JobName") .IsRequired() .HasColumnType("text") .HasColumnName("job_name"); b.Property("Priority") .HasColumnType("integer") .HasColumnName("priority"); b.Property("ProfileId") .HasColumnType("integer") .HasColumnName("profile_id"); b.HasKey("Id"); b.HasIndex("ProfileId"); b.HasIndex("ProfileId", "JobName") .IsUnique(); b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") .IsUnique() .HasFilter("priority = 3"); b.ToTable("job"); }); modelBuilder.Entity("Content.Server.Database.PostgresConnectionLog", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("connection_log_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("Address") .IsRequired() .HasColumnType("inet") .HasColumnName("address"); b.Property("HWId") .HasColumnType("bytea") .HasColumnName("hwid"); b.Property("Time") .HasColumnType("timestamp with time zone") .HasColumnName("time"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.Property("UserName") .IsRequired() .HasColumnType("text") .HasColumnName("user_name"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("connection_log"); b.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); }); modelBuilder.Entity("Content.Server.Database.PostgresPlayer", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("player_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("FirstSeenTime") .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_time"); b.Property("LastSeenAddress") .IsRequired() .HasColumnType("inet") .HasColumnName("last_seen_address"); b.Property("LastSeenHWId") .HasColumnType("bytea") .HasColumnName("last_seen_hwid"); b.Property("LastSeenTime") .HasColumnType("timestamp with time zone") .HasColumnName("last_seen_time"); b.Property("LastSeenUserName") .IsRequired() .HasColumnType("text") .HasColumnName("last_seen_user_name"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id"); b.HasIndex("LastSeenUserName"); b.HasIndex("UserId") .IsUnique(); b.ToTable("player"); b.HasCheckConstraint("LastSeenAddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= last_seen_address"); }); modelBuilder.Entity("Content.Server.Database.PostgresServerBan", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("server_ban_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property?>("Address") .HasColumnType("inet") .HasColumnName("address"); b.Property("BanTime") .HasColumnType("timestamp with time zone") .HasColumnName("ban_time"); b.Property("BanningAdmin") .HasColumnType("uuid") .HasColumnName("banning_admin"); b.Property("ExpirationTime") .HasColumnType("timestamp with time zone") .HasColumnName("expiration_time"); b.Property("HWId") .HasColumnType("bytea") .HasColumnName("hwid"); b.Property("Reason") .IsRequired() .HasColumnType("text") .HasColumnName("reason"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id"); b.HasIndex("Address"); b.HasIndex("UserId"); b.ToTable("server_ban"); b.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); b.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR user_id IS NOT NULL OR hwid IS NOT NULL"); }); modelBuilder.Entity("Content.Server.Database.PostgresServerUnban", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("unban_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("BanId") .HasColumnType("integer") .HasColumnName("ban_id"); b.Property("UnbanTime") .HasColumnType("timestamp with time zone") .HasColumnName("unban_time"); b.Property("UnbanningAdmin") .HasColumnType("uuid") .HasColumnName("unbanning_admin"); b.HasKey("Id"); b.HasIndex("BanId") .IsUnique(); b.ToTable("server_unban"); }); modelBuilder.Entity("Content.Server.Database.Preference", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("preference_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("AdminOOCColor") .IsRequired() .HasColumnType("text") .HasColumnName("admin_ooc_color"); b.Property("SelectedCharacterSlot") .HasColumnType("integer") .HasColumnName("selected_character_slot"); b.Property("UserId") .HasColumnType("uuid") .HasColumnName("user_id"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("preference"); }); modelBuilder.Entity("Content.Server.Database.Profile", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer") .HasColumnName("profile_id") .HasAnnotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn); b.Property("Age") .HasColumnType("integer") .HasColumnName("age"); b.Property("Backpack") .IsRequired() .HasColumnType("text") .HasColumnName("backpack"); b.Property("CharacterName") .IsRequired() .HasColumnType("text") .HasColumnName("char_name"); b.Property("Clothing") .IsRequired() .HasColumnType("text") .HasColumnName("clothing"); b.Property("EyeColor") .IsRequired() .HasColumnType("text") .HasColumnName("eye_color"); b.Property("FacialHairColor") .IsRequired() .HasColumnType("text") .HasColumnName("facial_hair_color"); b.Property("FacialHairName") .IsRequired() .HasColumnType("text") .HasColumnName("facial_hair_name"); b.Property("Gender") .IsRequired() .HasColumnType("text") .HasColumnName("gender"); b.Property("HairColor") .IsRequired() .HasColumnType("text") .HasColumnName("hair_color"); b.Property("HairName") .IsRequired() .HasColumnType("text") .HasColumnName("hair_name"); b.Property("PreferenceId") .HasColumnType("integer") .HasColumnName("preference_id"); b.Property("PreferenceUnavailable") .HasColumnType("integer") .HasColumnName("pref_unavailable"); b.Property("Sex") .IsRequired() .HasColumnType("text") .HasColumnName("sex"); b.Property("SkinColor") .IsRequired() .HasColumnType("text") .HasColumnName("skin_color"); b.Property("Slot") .HasColumnType("integer") .HasColumnName("slot"); b.HasKey("Id"); b.HasIndex("PreferenceId"); b.HasIndex("Slot", "PreferenceId") .IsUnique(); b.ToTable("profile"); }); modelBuilder.Entity("Content.Server.Database.Admin", b => { b.HasOne("Content.Server.Database.AdminRank", "AdminRank") .WithMany("Admins") .HasForeignKey("AdminRankId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("AdminRank"); }); modelBuilder.Entity("Content.Server.Database.AdminFlag", b => { b.HasOne("Content.Server.Database.Admin", "Admin") .WithMany("Flags") .HasForeignKey("AdminId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Admin"); }); modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => { b.HasOne("Content.Server.Database.AdminRank", "Rank") .WithMany("Flags") .HasForeignKey("AdminRankId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Rank"); }); modelBuilder.Entity("Content.Server.Database.Antag", b => { b.HasOne("Content.Server.Database.Profile", "Profile") .WithMany("Antags") .HasForeignKey("ProfileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Profile"); }); modelBuilder.Entity("Content.Server.Database.Job", b => { b.HasOne("Content.Server.Database.Profile", "Profile") .WithMany("Jobs") .HasForeignKey("ProfileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Profile"); }); modelBuilder.Entity("Content.Server.Database.PostgresServerUnban", b => { b.HasOne("Content.Server.Database.PostgresServerBan", "Ban") .WithOne("Unban") .HasForeignKey("Content.Server.Database.PostgresServerUnban", "BanId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Ban"); }); modelBuilder.Entity("Content.Server.Database.Profile", b => { b.HasOne("Content.Server.Database.Preference", "Preference") .WithMany("Profiles") .HasForeignKey("PreferenceId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Preference"); }); modelBuilder.Entity("Content.Server.Database.Admin", b => { b.Navigation("Flags"); }); modelBuilder.Entity("Content.Server.Database.AdminRank", b => { b.Navigation("Admins"); b.Navigation("Flags"); }); modelBuilder.Entity("Content.Server.Database.PostgresServerBan", b => { b.Navigation("Unban"); }); modelBuilder.Entity("Content.Server.Database.Preference", b => { b.Navigation("Profiles"); }); modelBuilder.Entity("Content.Server.Database.Profile", b => { b.Navigation("Antags"); b.Navigation("Jobs"); }); #pragma warning restore 612, 618 } #endif } }