// using System; using Data.MigrationContext; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace Data.Migrations.Postgresql { [DbContext(typeof(PostgresqlDatabaseContext))] [Migration("20230705133135_AddIndexToEFServerSnapshotCapturedAt")] partial class AddIndexToEFServerSnapshotCapturedAt { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "6.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Data.Models.Client.EFACSnapshotVector3", b => { b.Property("ACSnapshotVector3Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ACSnapshotVector3Id")); b.Property("Active") .HasColumnType("boolean"); b.Property("SnapshotId") .HasColumnType("integer"); b.Property("Vector3Id") .HasColumnType("integer"); b.HasKey("ACSnapshotVector3Id"); b.HasIndex("SnapshotId"); b.HasIndex("Vector3Id"); b.ToTable("EFACSnapshotVector3", (string)null); }); modelBuilder.Entity("Data.Models.Client.EFClient", b => { b.Property("ClientId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ClientId")); b.Property("Active") .HasColumnType("boolean"); b.Property("AliasLinkId") .HasColumnType("integer"); b.Property("Connections") .HasColumnType("integer"); b.Property("CurrentAliasId") .HasColumnType("integer"); b.Property("FirstConnection") .HasColumnType("timestamp without time zone"); b.Property("GameName") .HasColumnType("integer"); b.Property("LastConnection") .HasColumnType("timestamp without time zone"); b.Property("Level") .HasColumnType("integer"); b.Property("Masked") .HasColumnType("boolean"); b.Property("NetworkId") .HasColumnType("bigint"); b.Property("Password") .HasColumnType("text"); b.Property("PasswordSalt") .HasColumnType("text"); b.Property("TotalConnectionTime") .HasColumnType("integer"); b.HasKey("ClientId"); b.HasAlternateKey("NetworkId", "GameName"); b.HasIndex("AliasLinkId"); b.HasIndex("CurrentAliasId"); b.HasIndex("LastConnection"); b.HasIndex("NetworkId"); b.ToTable("EFClients", (string)null); }); modelBuilder.Entity("Data.Models.Client.EFClientConnectionHistory", b => { b.Property("ClientConnectionId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ClientConnectionId")); b.Property("ClientId") .HasColumnType("integer"); b.Property("ConnectionType") .HasColumnType("integer"); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("ClientConnectionId"); b.HasIndex("ClientId"); b.HasIndex("CreatedDateTime"); b.HasIndex("ServerId"); b.ToTable("EFClientConnectionHistory", (string)null); }); modelBuilder.Entity("Data.Models.Client.EFClientKill", b => { b.Property("KillId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("KillId")); b.Property("Active") .HasColumnType("boolean"); b.Property("AttackerId") .HasColumnType("integer"); b.Property("Damage") .HasColumnType("integer"); b.Property("DeathOriginVector3Id") .HasColumnType("integer"); b.Property("DeathType") .HasColumnType("integer"); b.Property("Fraction") .HasColumnType("double precision"); b.Property("HitLoc") .HasColumnType("integer"); b.Property("IsKill") .HasColumnType("boolean"); b.Property("KillOriginVector3Id") .HasColumnType("integer"); b.Property("Map") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("VictimId") .HasColumnType("integer"); b.Property("ViewAnglesVector3Id") .HasColumnType("integer"); b.Property("VisibilityPercentage") .HasColumnType("double precision"); b.Property("Weapon") .HasColumnType("integer"); b.Property("WeaponReference") .HasColumnType("text"); b.Property("When") .HasColumnType("timestamp without time zone"); b.HasKey("KillId"); b.HasIndex("AttackerId"); b.HasIndex("DeathOriginVector3Id"); b.HasIndex("KillOriginVector3Id"); b.HasIndex("ServerId"); b.HasIndex("VictimId"); b.HasIndex("ViewAnglesVector3Id"); b.ToTable("EFClientKills", (string)null); }); modelBuilder.Entity("Data.Models.Client.EFClientMessage", b => { b.Property("MessageId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("MessageId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ClientId") .HasColumnType("integer"); b.Property("Message") .HasColumnType("text"); b.Property("SentIngame") .HasColumnType("boolean"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("TimeSent") .HasColumnType("timestamp without time zone"); b.HasKey("MessageId"); b.HasIndex("ClientId"); b.HasIndex("ServerId"); b.HasIndex("TimeSent"); b.ToTable("EFClientMessages", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFACSnapshot", b => { b.Property("SnapshotId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("SnapshotId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ClientId") .HasColumnType("integer"); b.Property("CurrentSessionLength") .HasColumnType("integer"); b.Property("CurrentStrain") .HasColumnType("double precision"); b.Property("CurrentViewAngleId") .HasColumnType("integer"); b.Property("Deaths") .HasColumnType("integer"); b.Property("Distance") .HasColumnType("double precision"); b.Property("EloRating") .HasColumnType("double precision"); b.Property("HitDestinationId") .HasColumnType("integer"); b.Property("HitLocation") .HasColumnType("integer"); b.Property("HitLocationReference") .HasColumnType("text"); b.Property("HitOriginId") .HasColumnType("integer"); b.Property("HitType") .HasColumnType("integer"); b.Property("Hits") .HasColumnType("integer"); b.Property("Kills") .HasColumnType("integer"); b.Property("LastStrainAngleId") .HasColumnType("integer"); b.Property("RecoilOffset") .HasColumnType("double precision"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("SessionAngleOffset") .HasColumnType("double precision"); b.Property("SessionAverageSnapValue") .HasColumnType("double precision"); b.Property("SessionSPM") .HasColumnType("double precision"); b.Property("SessionScore") .HasColumnType("integer"); b.Property("SessionSnapHits") .HasColumnType("integer"); b.Property("StrainAngleBetween") .HasColumnType("double precision"); b.Property("TimeSinceLastEvent") .HasColumnType("integer"); b.Property("WeaponId") .HasColumnType("integer"); b.Property("WeaponReference") .HasColumnType("text"); b.Property("When") .HasColumnType("timestamp without time zone"); b.HasKey("SnapshotId"); b.HasIndex("ClientId"); b.HasIndex("CurrentViewAngleId"); b.HasIndex("HitDestinationId"); b.HasIndex("HitOriginId"); b.HasIndex("LastStrainAngleId"); b.HasIndex("ServerId"); b.ToTable("EFACSnapshot", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientHitStatistic", b => { b.Property("ClientHitStatisticId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ClientHitStatisticId")); b.Property("ClientId") .HasColumnType("integer"); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("DamageInflicted") .HasColumnType("integer"); b.Property("DamageReceived") .HasColumnType("integer"); b.Property("DeathCount") .HasColumnType("integer"); b.Property("HitCount") .HasColumnType("integer"); b.Property("HitLocationId") .HasColumnType("integer"); b.Property("KillCount") .HasColumnType("integer"); b.Property("MeansOfDeathId") .HasColumnType("integer"); b.Property("ReceivedHitCount") .HasColumnType("integer"); b.Property("Score") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("SuicideCount") .HasColumnType("integer"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("UsageSeconds") .HasColumnType("integer"); b.Property("WeaponAttachmentComboId") .HasColumnType("integer"); b.Property("WeaponId") .HasColumnType("integer"); b.HasKey("ClientHitStatisticId"); b.HasIndex("ClientId"); b.HasIndex("HitLocationId"); b.HasIndex("MeansOfDeathId"); b.HasIndex("ServerId"); b.HasIndex("WeaponAttachmentComboId"); b.HasIndex("WeaponId"); b.ToTable("EFClientHitStatistics", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientRankingHistory", b => { b.Property("ClientRankingHistoryId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ClientRankingHistoryId")); b.Property("ClientId") .HasColumnType("integer"); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Newest") .HasColumnType("boolean"); b.Property("PerformanceMetric") .HasColumnType("double precision"); b.Property("Ranking") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("ZScore") .HasColumnType("double precision"); b.HasKey("ClientRankingHistoryId"); b.HasIndex("ClientId"); b.HasIndex("CreatedDateTime"); b.HasIndex("Ranking"); b.HasIndex("ServerId"); b.HasIndex("UpdatedDateTime"); b.HasIndex("ZScore"); b.ToTable("EFClientRankingHistory", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientRatingHistory", b => { b.Property("RatingHistoryId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("RatingHistoryId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ClientId") .HasColumnType("integer"); b.HasKey("RatingHistoryId"); b.HasIndex("ClientId"); b.ToTable("EFClientRatingHistory", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientStatistics", b => { b.Property("ClientId") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("Active") .HasColumnType("boolean"); b.Property("AverageSnapValue") .HasColumnType("double precision"); b.Property("Deaths") .HasColumnType("integer"); b.Property("EloRating") .HasColumnType("double precision"); b.Property("Kills") .HasColumnType("integer"); b.Property("MaxStrain") .HasColumnType("double precision"); b.Property("RollingWeightedKDR") .HasColumnType("double precision"); b.Property("SPM") .HasColumnType("double precision"); b.Property("Skill") .HasColumnType("double precision"); b.Property("SnapHitCount") .HasColumnType("integer"); b.Property("TimePlayed") .HasColumnType("integer"); b.Property("UpdatedAt") .HasColumnType("timestamp without time zone"); b.Property("ZScore") .HasColumnType("double precision"); b.HasKey("ClientId", "ServerId"); b.HasIndex("ServerId"); b.HasIndex("ZScore"); b.HasIndex("ClientId", "TimePlayed", "ZScore"); b.ToTable("EFClientStatistics", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFHitLocationCount", b => { b.Property("HitLocationCountId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("HitLocationCountId")); b.Property("Active") .HasColumnType("boolean"); b.Property("EFClientStatisticsClientId") .HasColumnType("integer") .HasColumnName("EFClientStatisticsClientId"); b.Property("EFClientStatisticsServerId") .HasColumnType("bigint") .HasColumnName("EFClientStatisticsServerId"); b.Property("HitCount") .HasColumnType("integer"); b.Property("HitOffsetAverage") .HasColumnType("real"); b.Property("Location") .HasColumnType("integer"); b.Property("MaxAngleDistance") .HasColumnType("real"); b.HasKey("HitLocationCountId"); b.HasIndex("EFClientStatisticsServerId"); b.HasIndex("EFClientStatisticsClientId", "EFClientStatisticsServerId"); b.ToTable("EFHitLocationCounts", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.EFRating", b => { b.Property("RatingId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("RatingId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ActivityAmount") .HasColumnType("integer"); b.Property("Newest") .HasColumnType("boolean"); b.Property("Performance") .HasColumnType("double precision"); b.Property("Ranking") .HasColumnType("integer"); b.Property("RatingHistoryId") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("When") .HasColumnType("timestamp without time zone"); b.HasKey("RatingId"); b.HasIndex("RatingHistoryId"); b.HasIndex("ServerId"); b.HasIndex("Performance", "Ranking", "When"); b.HasIndex("When", "ServerId", "Performance", "ActivityAmount"); b.ToTable("EFRating", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFHitLocation", b => { b.Property("HitLocationId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("HitLocationId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("HitLocationId"); b.HasIndex("Name"); b.ToTable("EFHitLocations", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFMap", b => { b.Property("MapId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("MapId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("MapId"); b.ToTable("EFMaps", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFMeansOfDeath", b => { b.Property("MeansOfDeathId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("MeansOfDeathId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("MeansOfDeathId"); b.ToTable("EFMeansOfDeath", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFWeapon", b => { b.Property("WeaponId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("WeaponId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("WeaponId"); b.HasIndex("Name"); b.ToTable("EFWeapons", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFWeaponAttachment", b => { b.Property("WeaponAttachmentId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("WeaponAttachmentId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasColumnType("text"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("WeaponAttachmentId"); b.ToTable("EFWeaponAttachments", (string)null); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFWeaponAttachmentCombo", b => { b.Property("WeaponAttachmentComboId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("WeaponAttachmentComboId")); b.Property("Attachment1Id") .HasColumnType("integer"); b.Property("Attachment2Id") .HasColumnType("integer"); b.Property("Attachment3Id") .HasColumnType("integer"); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("Game") .HasColumnType("integer"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("WeaponAttachmentComboId"); b.HasIndex("Attachment1Id"); b.HasIndex("Attachment2Id"); b.HasIndex("Attachment3Id"); b.ToTable("EFWeaponAttachmentCombos", (string)null); }); modelBuilder.Entity("Data.Models.EFAlias", b => { b.Property("AliasId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("AliasId")); b.Property("Active") .HasColumnType("boolean"); b.Property("DateAdded") .HasColumnType("timestamp without time zone"); b.Property("IPAddress") .HasColumnType("integer"); b.Property("LinkId") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasMaxLength(24) .HasColumnType("character varying(24)"); b.Property("SearchableIPAddress") .ValueGeneratedOnAddOrUpdate() .HasMaxLength(255) .HasColumnType("character varying(255)") .HasComputedColumnSql("((IPAddress & 255) || '.' || ((IPAddress >> 8) & 255)) || '.' || ((IPAddress >> 16) & 255) || '.' || ((IPAddress >> 24) & 255)", true); b.Property("SearchableName") .HasMaxLength(24) .HasColumnType("character varying(24)"); b.HasKey("AliasId"); b.HasIndex("IPAddress"); b.HasIndex("LinkId"); b.HasIndex("Name"); b.HasIndex("SearchableIPAddress"); b.HasIndex("SearchableName"); b.HasIndex("Name", "IPAddress"); b.ToTable("EFAlias", (string)null); }); modelBuilder.Entity("Data.Models.EFAliasLink", b => { b.Property("AliasLinkId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("AliasLinkId")); b.Property("Active") .HasColumnType("boolean"); b.HasKey("AliasLinkId"); b.ToTable("EFAliasLinks", (string)null); }); modelBuilder.Entity("Data.Models.EFChangeHistory", b => { b.Property("ChangeHistoryId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ChangeHistoryId")); b.Property("Active") .HasColumnType("boolean"); b.Property("Comment") .HasMaxLength(128) .HasColumnType("character varying(128)"); b.Property("CurrentValue") .HasColumnType("text"); b.Property("ImpersonationEntityId") .HasColumnType("integer"); b.Property("OriginEntityId") .HasColumnType("integer"); b.Property("PreviousValue") .HasColumnType("text"); b.Property("TargetEntityId") .HasColumnType("integer"); b.Property("TimeChanged") .HasColumnType("timestamp without time zone"); b.Property("TypeOfChange") .HasColumnType("integer"); b.HasKey("ChangeHistoryId"); b.ToTable("EFChangeHistory"); }); modelBuilder.Entity("Data.Models.EFMeta", b => { b.Property("MetaId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("MetaId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ClientId") .HasColumnType("integer"); b.Property("Created") .HasColumnType("timestamp without time zone"); b.Property("Extra") .HasColumnType("text"); b.Property("Key") .IsRequired() .HasMaxLength(32) .HasColumnType("character varying(32)"); b.Property("LinkedMetaId") .HasColumnType("integer"); b.Property("Updated") .HasColumnType("timestamp without time zone"); b.Property("Value") .IsRequired() .HasColumnType("text"); b.HasKey("MetaId"); b.HasIndex("ClientId"); b.HasIndex("Key"); b.HasIndex("LinkedMetaId"); b.ToTable("EFMeta"); }); modelBuilder.Entity("Data.Models.EFPenalty", b => { b.Property("PenaltyId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("PenaltyId")); b.Property("Active") .HasColumnType("boolean"); b.Property("AutomatedOffense") .HasColumnType("text"); b.Property("Expires") .HasColumnType("timestamp without time zone"); b.Property("IsEvadedOffense") .HasColumnType("boolean"); b.Property("LinkId") .HasColumnType("integer"); b.Property("OffenderId") .HasColumnType("integer"); b.Property("Offense") .IsRequired() .HasColumnType("text"); b.Property("PunisherId") .HasColumnType("integer"); b.Property("Type") .HasColumnType("integer"); b.Property("When") .HasColumnType("timestamp without time zone"); b.HasKey("PenaltyId"); b.HasIndex("LinkId"); b.HasIndex("OffenderId"); b.HasIndex("PunisherId"); b.ToTable("EFPenalties", (string)null); }); modelBuilder.Entity("Data.Models.EFPenaltyIdentifier", b => { b.Property("PenaltyIdentifierId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("PenaltyIdentifierId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("IPv4Address") .HasColumnType("integer"); b.Property("NetworkId") .HasColumnType("bigint"); b.Property("PenaltyId") .HasColumnType("integer"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("PenaltyIdentifierId"); b.HasIndex("IPv4Address"); b.HasIndex("NetworkId"); b.HasIndex("PenaltyId"); b.ToTable("EFPenaltyIdentifiers", (string)null); }); modelBuilder.Entity("Data.Models.Misc.EFInboxMessage", b => { b.Property("InboxMessageId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("InboxMessageId")); b.Property("CreatedDateTime") .HasColumnType("timestamp without time zone"); b.Property("DestinationClientId") .HasColumnType("integer"); b.Property("IsDelivered") .HasColumnType("boolean"); b.Property("Message") .HasColumnType("text"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("SourceClientId") .HasColumnType("integer"); b.Property("UpdatedDateTime") .HasColumnType("timestamp without time zone"); b.HasKey("InboxMessageId"); b.HasIndex("DestinationClientId"); b.HasIndex("ServerId"); b.HasIndex("SourceClientId"); b.ToTable("InboxMessages"); }); modelBuilder.Entity("Data.Models.Server.EFServer", b => { b.Property("ServerId") .HasColumnType("bigint"); b.Property("Active") .HasColumnType("boolean"); b.Property("EndPoint") .HasColumnType("text"); b.Property("GameName") .HasColumnType("integer"); b.Property("HostName") .HasColumnType("text"); b.Property("IsPasswordProtected") .HasColumnType("boolean"); b.Property("Port") .HasColumnType("integer"); b.HasKey("ServerId"); b.ToTable("EFServers", (string)null); }); modelBuilder.Entity("Data.Models.Server.EFServerSnapshot", b => { b.Property("ServerSnapshotId") .ValueGeneratedOnAdd() .HasColumnType("bigint"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ServerSnapshotId")); b.Property("Active") .HasColumnType("boolean"); b.Property("CapturedAt") .HasColumnType("timestamp without time zone"); b.Property("ClientCount") .HasColumnType("integer"); b.Property("ConnectionInterrupted") .HasColumnType("boolean"); b.Property("MapId") .HasColumnType("integer"); b.Property("PeriodBlock") .HasColumnType("integer"); b.Property("ServerId") .HasColumnType("bigint"); b.HasKey("ServerSnapshotId"); b.HasIndex("CapturedAt"); b.HasIndex("MapId"); b.HasIndex("ServerId"); b.ToTable("EFServerSnapshot", (string)null); }); modelBuilder.Entity("Data.Models.Server.EFServerStatistics", b => { b.Property("StatisticId") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("StatisticId")); b.Property("Active") .HasColumnType("boolean"); b.Property("ServerId") .HasColumnType("bigint"); b.Property("TotalKills") .HasColumnType("bigint"); b.Property("TotalPlayTime") .HasColumnType("bigint"); b.HasKey("StatisticId"); b.HasIndex("ServerId"); b.ToTable("EFServerStatistics", (string)null); }); modelBuilder.Entity("Data.Models.Vector3", b => { b.Property("Vector3Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Vector3Id")); b.Property("X") .HasColumnType("real"); b.Property("Y") .HasColumnType("real"); b.Property("Z") .HasColumnType("real"); b.HasKey("Vector3Id"); b.ToTable("Vector3", (string)null); }); modelBuilder.Entity("Data.Models.Client.EFACSnapshotVector3", b => { b.HasOne("Data.Models.Client.Stats.EFACSnapshot", "Snapshot") .WithMany("PredictedViewAngles") .HasForeignKey("SnapshotId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "Vector") .WithMany() .HasForeignKey("Vector3Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Snapshot"); b.Navigation("Vector"); }); modelBuilder.Entity("Data.Models.Client.EFClient", b => { b.HasOne("Data.Models.EFAliasLink", "AliasLink") .WithMany() .HasForeignKey("AliasLinkId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.EFAlias", "CurrentAlias") .WithMany() .HasForeignKey("CurrentAliasId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AliasLink"); b.Navigation("CurrentAlias"); }); modelBuilder.Entity("Data.Models.Client.EFClientConnectionHistory", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Client"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.EFClientKill", b => { b.HasOne("Data.Models.Client.EFClient", "Attacker") .WithMany() .HasForeignKey("AttackerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "DeathOrigin") .WithMany() .HasForeignKey("DeathOriginVector3Id"); b.HasOne("Data.Models.Vector3", "KillOrigin") .WithMany() .HasForeignKey("KillOriginVector3Id"); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Client.EFClient", "Victim") .WithMany() .HasForeignKey("VictimId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "ViewAngles") .WithMany() .HasForeignKey("ViewAnglesVector3Id"); b.Navigation("Attacker"); b.Navigation("DeathOrigin"); b.Navigation("KillOrigin"); b.Navigation("Server"); b.Navigation("Victim"); b.Navigation("ViewAngles"); }); modelBuilder.Entity("Data.Models.Client.EFClientMessage", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Client"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFACSnapshot", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "CurrentViewAngle") .WithMany() .HasForeignKey("CurrentViewAngleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "HitDestination") .WithMany() .HasForeignKey("HitDestinationId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "HitOrigin") .WithMany() .HasForeignKey("HitOriginId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Vector3", "LastStrainAngle") .WithMany() .HasForeignKey("LastStrainAngleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId"); b.Navigation("Client"); b.Navigation("CurrentViewAngle"); b.Navigation("HitDestination"); b.Navigation("HitOrigin"); b.Navigation("LastStrainAngle"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientHitStatistic", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Client.Stats.Reference.EFHitLocation", "HitLocation") .WithMany() .HasForeignKey("HitLocationId"); b.HasOne("Data.Models.Client.Stats.Reference.EFMeansOfDeath", "MeansOfDeath") .WithMany() .HasForeignKey("MeansOfDeathId"); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId"); b.HasOne("Data.Models.Client.Stats.Reference.EFWeaponAttachmentCombo", "WeaponAttachmentCombo") .WithMany() .HasForeignKey("WeaponAttachmentComboId"); b.HasOne("Data.Models.Client.Stats.Reference.EFWeapon", "Weapon") .WithMany() .HasForeignKey("WeaponId"); b.Navigation("Client"); b.Navigation("HitLocation"); b.Navigation("MeansOfDeath"); b.Navigation("Server"); b.Navigation("Weapon"); b.Navigation("WeaponAttachmentCombo"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientRankingHistory", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId"); b.Navigation("Client"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientRatingHistory", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Client"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientStatistics", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("ClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Client"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFHitLocationCount", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany() .HasForeignKey("EFClientStatisticsClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("EFClientStatisticsServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Client.Stats.EFClientStatistics", null) .WithMany("HitLocations") .HasForeignKey("EFClientStatisticsClientId", "EFClientStatisticsServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Client"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFRating", b => { b.HasOne("Data.Models.Client.Stats.EFClientRatingHistory", "RatingHistory") .WithMany("Ratings") .HasForeignKey("RatingHistoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId"); b.Navigation("RatingHistory"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.Stats.Reference.EFWeaponAttachmentCombo", b => { b.HasOne("Data.Models.Client.Stats.Reference.EFWeaponAttachment", "Attachment1") .WithMany() .HasForeignKey("Attachment1Id") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Client.Stats.Reference.EFWeaponAttachment", "Attachment2") .WithMany() .HasForeignKey("Attachment2Id"); b.HasOne("Data.Models.Client.Stats.Reference.EFWeaponAttachment", "Attachment3") .WithMany() .HasForeignKey("Attachment3Id"); b.Navigation("Attachment1"); b.Navigation("Attachment2"); b.Navigation("Attachment3"); }); modelBuilder.Entity("Data.Models.EFAlias", b => { b.HasOne("Data.Models.EFAliasLink", "Link") .WithMany("Children") .HasForeignKey("LinkId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Link"); }); modelBuilder.Entity("Data.Models.EFMeta", b => { b.HasOne("Data.Models.Client.EFClient", "Client") .WithMany("Meta") .HasForeignKey("ClientId"); b.HasOne("Data.Models.EFMeta", "LinkedMeta") .WithMany() .HasForeignKey("LinkedMetaId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Client"); b.Navigation("LinkedMeta"); }); modelBuilder.Entity("Data.Models.EFPenalty", b => { b.HasOne("Data.Models.EFAliasLink", "Link") .WithMany("ReceivedPenalties") .HasForeignKey("LinkId"); b.HasOne("Data.Models.Client.EFClient", "Offender") .WithMany("ReceivedPenalties") .HasForeignKey("OffenderId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Data.Models.Client.EFClient", "Punisher") .WithMany("AdministeredPenalties") .HasForeignKey("PunisherId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Link"); b.Navigation("Offender"); b.Navigation("Punisher"); }); modelBuilder.Entity("Data.Models.EFPenaltyIdentifier", b => { b.HasOne("Data.Models.EFPenalty", "Penalty") .WithMany() .HasForeignKey("PenaltyId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Penalty"); }); modelBuilder.Entity("Data.Models.Misc.EFInboxMessage", b => { b.HasOne("Data.Models.Client.EFClient", "DestinationClient") .WithMany() .HasForeignKey("DestinationClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId"); b.HasOne("Data.Models.Client.EFClient", "SourceClient") .WithMany() .HasForeignKey("SourceClientId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("DestinationClient"); b.Navigation("Server"); b.Navigation("SourceClient"); }); modelBuilder.Entity("Data.Models.Server.EFServerSnapshot", b => { b.HasOne("Data.Models.Client.Stats.Reference.EFMap", "Map") .WithMany() .HasForeignKey("MapId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Map"); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Server.EFServerStatistics", b => { b.HasOne("Data.Models.Server.EFServer", "Server") .WithMany() .HasForeignKey("ServerId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Server"); }); modelBuilder.Entity("Data.Models.Client.EFClient", b => { b.Navigation("AdministeredPenalties"); b.Navigation("Meta"); b.Navigation("ReceivedPenalties"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFACSnapshot", b => { b.Navigation("PredictedViewAngles"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientRatingHistory", b => { b.Navigation("Ratings"); }); modelBuilder.Entity("Data.Models.Client.Stats.EFClientStatistics", b => { b.Navigation("HitLocations"); }); modelBuilder.Entity("Data.Models.EFAliasLink", b => { b.Navigation("Children"); b.Navigation("ReceivedPenalties"); }); #pragma warning restore 612, 618 } } }