IW4M-Admin/Data/Migrations/Postgresql/PostgresqlDatabaseContextModelSnapshot.cs

1694 lines
60 KiB
C#

// <auto-generated />
using System;
using Data.MigrationContext;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace Data.Migrations.Postgresql
{
[DbContext(typeof(PostgresqlDatabaseContext))]
partial class PostgresqlDatabaseContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(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<int>("ACSnapshotVector3Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ACSnapshotVector3Id"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("SnapshotId")
.HasColumnType("integer");
b.Property<int>("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<int>("ClientId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ClientId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("AliasLinkId")
.HasColumnType("integer");
b.Property<int>("Connections")
.HasColumnType("integer");
b.Property<int>("CurrentAliasId")
.HasColumnType("integer");
b.Property<DateTime>("FirstConnection")
.HasColumnType("timestamp without time zone");
b.Property<int?>("GameName")
.HasColumnType("integer");
b.Property<DateTime>("LastConnection")
.HasColumnType("timestamp without time zone");
b.Property<int>("Level")
.HasColumnType("integer");
b.Property<bool>("Masked")
.HasColumnType("boolean");
b.Property<long>("NetworkId")
.HasColumnType("bigint");
b.Property<string>("Password")
.HasColumnType("text");
b.Property<string>("PasswordSalt")
.HasColumnType("text");
b.Property<int>("TotalConnectionTime")
.HasColumnType("integer");
b.HasKey("ClientId");
b.HasIndex("AliasLinkId");
b.HasIndex("CurrentAliasId");
b.HasIndex("NetworkId")
.IsUnique();
b.ToTable("EFClients", (string)null);
});
modelBuilder.Entity("Data.Models.Client.EFClientConnectionHistory", b =>
{
b.Property<long>("ClientConnectionId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("ClientConnectionId"));
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<int>("ConnectionType")
.HasColumnType("integer");
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.Property<DateTime?>("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<long>("KillId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("KillId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("AttackerId")
.HasColumnType("integer");
b.Property<int>("Damage")
.HasColumnType("integer");
b.Property<int?>("DeathOriginVector3Id")
.HasColumnType("integer");
b.Property<int>("DeathType")
.HasColumnType("integer");
b.Property<double>("Fraction")
.HasColumnType("double precision");
b.Property<int>("HitLoc")
.HasColumnType("integer");
b.Property<bool>("IsKill")
.HasColumnType("boolean");
b.Property<int?>("KillOriginVector3Id")
.HasColumnType("integer");
b.Property<int>("Map")
.HasColumnType("integer");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.Property<int>("VictimId")
.HasColumnType("integer");
b.Property<int?>("ViewAnglesVector3Id")
.HasColumnType("integer");
b.Property<double>("VisibilityPercentage")
.HasColumnType("double precision");
b.Property<int>("Weapon")
.HasColumnType("integer");
b.Property<string>("WeaponReference")
.HasColumnType("text");
b.Property<DateTime>("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<long>("MessageId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("MessageId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<string>("Message")
.HasColumnType("text");
b.Property<bool>("SentIngame")
.HasColumnType("boolean");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.Property<DateTime>("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<int>("SnapshotId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("SnapshotId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<int>("CurrentSessionLength")
.HasColumnType("integer");
b.Property<double>("CurrentStrain")
.HasColumnType("double precision");
b.Property<int>("CurrentViewAngleId")
.HasColumnType("integer");
b.Property<int>("Deaths")
.HasColumnType("integer");
b.Property<double>("Distance")
.HasColumnType("double precision");
b.Property<double>("EloRating")
.HasColumnType("double precision");
b.Property<int>("HitDestinationId")
.HasColumnType("integer");
b.Property<int>("HitLocation")
.HasColumnType("integer");
b.Property<string>("HitLocationReference")
.HasColumnType("text");
b.Property<int>("HitOriginId")
.HasColumnType("integer");
b.Property<int>("HitType")
.HasColumnType("integer");
b.Property<int>("Hits")
.HasColumnType("integer");
b.Property<int>("Kills")
.HasColumnType("integer");
b.Property<int>("LastStrainAngleId")
.HasColumnType("integer");
b.Property<double>("RecoilOffset")
.HasColumnType("double precision");
b.Property<long?>("ServerId")
.HasColumnType("bigint");
b.Property<double>("SessionAngleOffset")
.HasColumnType("double precision");
b.Property<double>("SessionAverageSnapValue")
.HasColumnType("double precision");
b.Property<double>("SessionSPM")
.HasColumnType("double precision");
b.Property<int>("SessionScore")
.HasColumnType("integer");
b.Property<int>("SessionSnapHits")
.HasColumnType("integer");
b.Property<double>("StrainAngleBetween")
.HasColumnType("double precision");
b.Property<int>("TimeSinceLastEvent")
.HasColumnType("integer");
b.Property<int>("WeaponId")
.HasColumnType("integer");
b.Property<string>("WeaponReference")
.HasColumnType("text");
b.Property<DateTime>("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<int>("ClientHitStatisticId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ClientHitStatisticId"));
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("DamageInflicted")
.HasColumnType("integer");
b.Property<int>("DamageReceived")
.HasColumnType("integer");
b.Property<int>("DeathCount")
.HasColumnType("integer");
b.Property<int>("HitCount")
.HasColumnType("integer");
b.Property<int?>("HitLocationId")
.HasColumnType("integer");
b.Property<int>("KillCount")
.HasColumnType("integer");
b.Property<int?>("MeansOfDeathId")
.HasColumnType("integer");
b.Property<int>("ReceivedHitCount")
.HasColumnType("integer");
b.Property<int?>("Score")
.HasColumnType("integer");
b.Property<long?>("ServerId")
.HasColumnType("bigint");
b.Property<int>("SuicideCount")
.HasColumnType("integer");
b.Property<DateTime?>("UpdatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int?>("UsageSeconds")
.HasColumnType("integer");
b.Property<int?>("WeaponAttachmentComboId")
.HasColumnType("integer");
b.Property<int?>("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<long>("ClientRankingHistoryId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("ClientRankingHistoryId"));
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<bool>("Newest")
.HasColumnType("boolean");
b.Property<double?>("PerformanceMetric")
.HasColumnType("double precision");
b.Property<int?>("Ranking")
.HasColumnType("integer");
b.Property<long?>("ServerId")
.HasColumnType("bigint");
b.Property<DateTime?>("UpdatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<double?>("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<int>("RatingHistoryId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("RatingHistoryId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("ClientId")
.HasColumnType("integer");
b.HasKey("RatingHistoryId");
b.HasIndex("ClientId");
b.ToTable("EFClientRatingHistory", (string)null);
});
modelBuilder.Entity("Data.Models.Client.Stats.EFClientStatistics", b =>
{
b.Property<int>("ClientId")
.HasColumnType("integer");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<double>("AverageSnapValue")
.HasColumnType("double precision");
b.Property<int>("Deaths")
.HasColumnType("integer");
b.Property<double>("EloRating")
.HasColumnType("double precision");
b.Property<int>("Kills")
.HasColumnType("integer");
b.Property<double>("MaxStrain")
.HasColumnType("double precision");
b.Property<double>("RollingWeightedKDR")
.HasColumnType("double precision");
b.Property<double>("SPM")
.HasColumnType("double precision");
b.Property<double>("Skill")
.HasColumnType("double precision");
b.Property<int>("SnapHitCount")
.HasColumnType("integer");
b.Property<int>("TimePlayed")
.HasColumnType("integer");
b.Property<DateTime?>("UpdatedAt")
.HasColumnType("timestamp without time zone");
b.Property<double>("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<int>("HitLocationCountId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("HitLocationCountId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("EFClientStatisticsClientId")
.HasColumnType("integer")
.HasColumnName("EFClientStatisticsClientId");
b.Property<long>("EFClientStatisticsServerId")
.HasColumnType("bigint")
.HasColumnName("EFClientStatisticsServerId");
b.Property<int>("HitCount")
.HasColumnType("integer");
b.Property<float>("HitOffsetAverage")
.HasColumnType("real");
b.Property<int>("Location")
.HasColumnType("integer");
b.Property<float>("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<int>("RatingId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("RatingId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int>("ActivityAmount")
.HasColumnType("integer");
b.Property<bool>("Newest")
.HasColumnType("boolean");
b.Property<double>("Performance")
.HasColumnType("double precision");
b.Property<int>("Ranking")
.HasColumnType("integer");
b.Property<int>("RatingHistoryId")
.HasColumnType("integer");
b.Property<long?>("ServerId")
.HasColumnType("bigint");
b.Property<DateTime>("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<int>("HitLocationId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("HitLocationId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime?>("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<int>("MapId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("MapId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime?>("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<int>("MeansOfDeathId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("MeansOfDeathId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime?>("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<int>("WeaponId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("WeaponId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime?>("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<int>("WeaponAttachmentId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("WeaponAttachmentId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<DateTime?>("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<int>("WeaponAttachmentComboId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("WeaponAttachmentComboId"));
b.Property<int>("Attachment1Id")
.HasColumnType("integer");
b.Property<int?>("Attachment2Id")
.HasColumnType("integer");
b.Property<int?>("Attachment3Id")
.HasColumnType("integer");
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("Game")
.HasColumnType("integer");
b.Property<DateTime?>("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<int>("AliasId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("AliasId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<DateTime>("DateAdded")
.HasColumnType("timestamp without time zone");
b.Property<int?>("IPAddress")
.HasColumnType("integer");
b.Property<int>("LinkId")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(24)
.HasColumnType("character varying(24)");
b.Property<string>("SearchableIPAddress")
.ValueGeneratedOnAddOrUpdate()
.HasColumnType("text")
.HasComputedColumnSql("((IPAddress & 255) || '.' || ((IPAddress >> 8) & 255)) || '.' || ((IPAddress >> 16) & 255) || '.' || ((IPAddress >> 24) & 255)", true);
b.Property<string>("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<int>("AliasLinkId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("AliasLinkId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.HasKey("AliasLinkId");
b.ToTable("EFAliasLinks", (string)null);
});
modelBuilder.Entity("Data.Models.EFChangeHistory", b =>
{
b.Property<int>("ChangeHistoryId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("ChangeHistoryId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<string>("Comment")
.HasMaxLength(128)
.HasColumnType("character varying(128)");
b.Property<string>("CurrentValue")
.HasColumnType("text");
b.Property<int?>("ImpersonationEntityId")
.HasColumnType("integer");
b.Property<int>("OriginEntityId")
.HasColumnType("integer");
b.Property<string>("PreviousValue")
.HasColumnType("text");
b.Property<int>("TargetEntityId")
.HasColumnType("integer");
b.Property<DateTime>("TimeChanged")
.HasColumnType("timestamp without time zone");
b.Property<int>("TypeOfChange")
.HasColumnType("integer");
b.HasKey("ChangeHistoryId");
b.ToTable("EFChangeHistory");
});
modelBuilder.Entity("Data.Models.EFMeta", b =>
{
b.Property<int>("MetaId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("MetaId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<int?>("ClientId")
.HasColumnType("integer");
b.Property<DateTime>("Created")
.HasColumnType("timestamp without time zone");
b.Property<string>("Extra")
.HasColumnType("text");
b.Property<string>("Key")
.IsRequired()
.HasMaxLength(32)
.HasColumnType("character varying(32)");
b.Property<int?>("LinkedMetaId")
.HasColumnType("integer");
b.Property<DateTime>("Updated")
.HasColumnType("timestamp without time zone");
b.Property<string>("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<int>("PenaltyId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("PenaltyId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<string>("AutomatedOffense")
.HasColumnType("text");
b.Property<DateTime?>("Expires")
.HasColumnType("timestamp without time zone");
b.Property<bool>("IsEvadedOffense")
.HasColumnType("boolean");
b.Property<int?>("LinkId")
.HasColumnType("integer");
b.Property<int>("OffenderId")
.HasColumnType("integer");
b.Property<string>("Offense")
.IsRequired()
.HasColumnType("text");
b.Property<int>("PunisherId")
.HasColumnType("integer");
b.Property<int>("Type")
.HasColumnType("integer");
b.Property<DateTime>("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<int>("PenaltyIdentifierId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("PenaltyIdentifierId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int?>("IPv4Address")
.HasColumnType("integer");
b.Property<long>("NetworkId")
.HasColumnType("bigint");
b.Property<int>("PenaltyId")
.HasColumnType("integer");
b.Property<DateTime?>("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<int>("InboxMessageId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("InboxMessageId"));
b.Property<DateTime>("CreatedDateTime")
.HasColumnType("timestamp without time zone");
b.Property<int>("DestinationClientId")
.HasColumnType("integer");
b.Property<bool>("IsDelivered")
.HasColumnType("boolean");
b.Property<string>("Message")
.HasColumnType("text");
b.Property<long?>("ServerId")
.HasColumnType("bigint");
b.Property<int>("SourceClientId")
.HasColumnType("integer");
b.Property<DateTime?>("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<long>("ServerId")
.HasColumnType("bigint");
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<string>("EndPoint")
.HasColumnType("text");
b.Property<int?>("GameName")
.HasColumnType("integer");
b.Property<string>("HostName")
.HasColumnType("text");
b.Property<bool>("IsPasswordProtected")
.HasColumnType("boolean");
b.Property<int>("Port")
.HasColumnType("integer");
b.HasKey("ServerId");
b.ToTable("EFServers", (string)null);
});
modelBuilder.Entity("Data.Models.Server.EFServerSnapshot", b =>
{
b.Property<long>("ServerSnapshotId")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<long>("ServerSnapshotId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<DateTime>("CapturedAt")
.HasColumnType("timestamp without time zone");
b.Property<int>("ClientCount")
.HasColumnType("integer");
b.Property<bool?>("ConnectionInterrupted")
.HasColumnType("boolean");
b.Property<int>("MapId")
.HasColumnType("integer");
b.Property<int>("PeriodBlock")
.HasColumnType("integer");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.HasKey("ServerSnapshotId");
b.HasIndex("MapId");
b.HasIndex("ServerId");
b.ToTable("EFServerSnapshot", (string)null);
});
modelBuilder.Entity("Data.Models.Server.EFServerStatistics", b =>
{
b.Property<int>("StatisticId")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("StatisticId"));
b.Property<bool>("Active")
.HasColumnType("boolean");
b.Property<long>("ServerId")
.HasColumnType("bigint");
b.Property<long>("TotalKills")
.HasColumnType("bigint");
b.Property<long>("TotalPlayTime")
.HasColumnType("bigint");
b.HasKey("StatisticId");
b.HasIndex("ServerId");
b.ToTable("EFServerStatistics", (string)null);
});
modelBuilder.Entity("Data.Models.Vector3", b =>
{
b.Property<int>("Vector3Id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Vector3Id"));
b.Property<float>("X")
.HasColumnType("real");
b.Property<float>("Y")
.HasColumnType("real");
b.Property<float>("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
}
}
}