// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Syski.Data;

namespace Syski.Data.Migrations
{
    [DbContext(typeof(SyskiDBContext))]
    partial class SyskiDBContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "2.1.8-servicing-32085")
                .HasAnnotation("Relational:MaxIdentifierLength", 128)
                .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken();

                    b.Property<string>("Name")
                        .HasMaxLength(256);

                    b.Property<string>("NormalizedName")
                        .HasMaxLength(256);

                    b.HasKey("Id");

                    b.HasIndex("NormalizedName")
                        .IsUnique()
                        .HasName("RoleNameIndex")
                        .HasFilter("[NormalizedName] IS NOT NULL");

                    b.ToTable("AspNetRoles");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("ClaimType");

                    b.Property<string>("ClaimValue");

                    b.Property<string>("RoleId")
                        .IsRequired();

                    b.HasKey("Id");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetRoleClaims");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);

                    b.Property<string>("ClaimType");

                    b.Property<string>("ClaimValue");

                    b.Property<string>("UserId")
                        .IsRequired();

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserClaims");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.Property<string>("LoginProvider")
                        .HasMaxLength(128);

                    b.Property<string>("ProviderKey")
                        .HasMaxLength(128);

                    b.Property<string>("ProviderDisplayName");

                    b.Property<string>("UserId")
                        .IsRequired();

                    b.HasKey("LoginProvider", "ProviderKey");

                    b.HasIndex("UserId");

                    b.ToTable("AspNetUserLogins");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.Property<string>("UserId");

                    b.Property<string>("RoleId");

                    b.HasKey("UserId", "RoleId");

                    b.HasIndex("RoleId");

                    b.ToTable("AspNetUserRoles");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.Property<string>("UserId");

                    b.Property<string>("LoginProvider")
                        .HasMaxLength(128);

                    b.Property<string>("Name")
                        .HasMaxLength(128);

                    b.Property<string>("Value");

                    b.HasKey("UserId", "LoginProvider", "Name");

                    b.ToTable("AspNetUserTokens");
                });

            modelBuilder.Entity("Syski.Data.ApplicationUser", b =>
                {
                    b.Property<string>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<int>("AccessFailedCount");

                    b.Property<string>("ConcurrencyStamp")
                        .IsConcurrencyToken();

                    b.Property<string>("Email")
                        .HasMaxLength(256);

                    b.Property<bool>("EmailConfirmed");

                    b.Property<bool>("LockoutEnabled");

                    b.Property<DateTimeOffset?>("LockoutEnd");

                    b.Property<string>("NormalizedEmail")
                        .HasMaxLength(256);

                    b.Property<string>("NormalizedUserName")
                        .HasMaxLength(256);

                    b.Property<string>("PasswordHash");

                    b.Property<string>("PhoneNumber");

                    b.Property<bool>("PhoneNumberConfirmed");

                    b.Property<string>("SecurityStamp");

                    b.Property<bool>("TwoFactorEnabled");

                    b.Property<string>("UserName")
                        .HasMaxLength(256);

                    b.HasKey("Id");

                    b.HasIndex("NormalizedEmail")
                        .HasName("EmailIndex");

                    b.HasIndex("NormalizedUserName")
                        .IsUnique()
                        .HasName("UserNameIndex")
                        .HasFilter("[NormalizedUserName] IS NOT NULL");

                    b.ToTable("AspNetUsers");
                });

            modelBuilder.Entity("Syski.Data.ApplicationUserSystemCategory", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("ApplicationUserSystemCategory");
                });

            modelBuilder.Entity("Syski.Data.ApplicationUserSystems", b =>
                {
                    b.Property<string>("UserId");

                    b.Property<Guid>("SystemId");

                    b.Property<Guid?>("CategoryId");

                    b.HasKey("UserId", "SystemId");

                    b.HasIndex("CategoryId");

                    b.HasIndex("SystemId");

                    b.ToTable("ApplicationUserSystems");
                });

            modelBuilder.Entity("Syski.Data.Architecture", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("Architectures");
                });

            modelBuilder.Entity("Syski.Data.AuthenticationToken", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<bool>("Active");

                    b.Property<string>("Audience");

                    b.Property<DateTime>("Expires");

                    b.Property<string>("Issuer");

                    b.Property<Guid?>("NextTokenId");

                    b.Property<DateTime>("NotBefore");

                    b.Property<Guid?>("PreviousTokenId");

                    b.Property<string>("RefreshToken");

                    b.Property<string>("Subject");

                    b.Property<string>("TokenType");

                    b.Property<string>("UserId")
                        .IsRequired();

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("AuthenticationTokens");
                });

            modelBuilder.Entity("Syski.Data.BIOSModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ManufacturerId");

                    b.HasKey("Id");

                    b.HasIndex("ManufacturerId");

                    b.ToTable("BIOSModels");
                });

            modelBuilder.Entity("Syski.Data.CPUModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ArchitectureId");

                    b.Property<Guid?>("ModelId");

                    b.HasKey("Id");

                    b.HasIndex("ArchitectureId");

                    b.HasIndex("ModelId")
                        .IsUnique()
                        .HasFilter("[ModelId] IS NOT NULL");

                    b.ToTable("CPUModels");
                });

            modelBuilder.Entity("Syski.Data.GPUModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ModelId");

                    b.HasKey("Id");

                    b.HasIndex("ModelId")
                        .IsUnique()
                        .HasFilter("[ModelId] IS NOT NULL");

                    b.ToTable("GPUModels");
                });

            modelBuilder.Entity("Syski.Data.Manufacturer", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("Manufacturers");
                });

            modelBuilder.Entity("Syski.Data.Model", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ManufacturerId");

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.HasIndex("ManufacturerId");

                    b.ToTable("Models");
                });

            modelBuilder.Entity("Syski.Data.MotherboardModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ModelId");

                    b.Property<string>("Version");

                    b.HasKey("Id");

                    b.HasIndex("ModelId")
                        .IsUnique()
                        .HasFilter("[ModelId] IS NOT NULL");

                    b.ToTable("MotherboardModels");
                });

            modelBuilder.Entity("Syski.Data.OperatingSystemModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("OperatingSystemModels");
                });

            modelBuilder.Entity("Syski.Data.RAMModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ModelId");

                    b.Property<long>("Size");

                    b.HasKey("Id");

                    b.HasIndex("ModelId")
                        .IsUnique()
                        .HasFilter("[ModelId] IS NOT NULL");

                    b.ToTable("RAMModels");
                });

            modelBuilder.Entity("Syski.Data.StorageInterfaceType", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("StorageInterfaceTypes");
                });

            modelBuilder.Entity("Syski.Data.StorageModel", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<Guid?>("ModelId");

                    b.Property<long>("Size");

                    b.HasKey("Id");

                    b.HasIndex("ModelId")
                        .IsUnique()
                        .HasFilter("[ModelId] IS NOT NULL");

                    b.ToTable("StorageModels");
                });

            modelBuilder.Entity("Syski.Data.System", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("HostName");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<Guid?>("ModelId");

                    b.Property<string>("Secret");

                    b.HasKey("Id");

                    b.HasIndex("ModelId");

                    b.ToTable("Systems");
                });

            modelBuilder.Entity("Syski.Data.SystemBIOS", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("BIOSModelId");

                    b.Property<string>("Caption");

                    b.Property<string>("Date");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<string>("Version");

                    b.HasKey("SystemId");

                    b.HasIndex("BIOSModelId");

                    b.ToTable("SystemBIOSs");
                });

            modelBuilder.Entity("Syski.Data.SystemCommand", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("QueuedTime");

                    b.Property<string>("Action");

                    b.Property<DateTime?>("ExecutedTime");

                    b.Property<string>("Properties");

                    b.HasKey("SystemId", "QueuedTime");

                    b.ToTable("SystemCommands");
                });

            modelBuilder.Entity("Syski.Data.SystemCPU", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("CPUModelID");

                    b.Property<int>("Slot");

                    b.Property<int>("ClockSpeed");

                    b.Property<int>("CoreCount");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<int>("ThreadCount");

                    b.HasKey("SystemId", "CPUModelID", "Slot");

                    b.HasIndex("CPUModelID");

                    b.ToTable("SystemCPUs");
                });

            modelBuilder.Entity("Syski.Data.SystemCPUData", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("CollectionDateTime");

                    b.Property<double>("Load");

                    b.Property<int>("Processes");

                    b.HasKey("SystemId", "CollectionDateTime");

                    b.ToTable("SystemCPUsData");
                });

            modelBuilder.Entity("Syski.Data.SystemGPU", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("GPUModelId");

                    b.Property<int>("Slot");

                    b.Property<DateTime>("LastUpdated");

                    b.HasKey("SystemId", "GPUModelId", "Slot");

                    b.HasIndex("GPUModelId");

                    b.ToTable("SystemGPUs");
                });

            modelBuilder.Entity("Syski.Data.SystemMotherboard", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<Guid>("MotherboardModelId");

                    b.HasKey("SystemId");

                    b.HasIndex("MotherboardModelId");

                    b.ToTable("SystemMotherboards");
                });

            modelBuilder.Entity("Syski.Data.SystemOS", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("OperatingSystemId");

                    b.Property<Guid?>("ArchitectureId");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<string>("Version");

                    b.HasKey("SystemId", "OperatingSystemId");

                    b.HasIndex("ArchitectureId");

                    b.HasIndex("OperatingSystemId");

                    b.ToTable("SystemOSs");
                });

            modelBuilder.Entity("Syski.Data.SystemPingData", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("SendPingTime");

                    b.Property<DateTime>("CollectionDateTime");

                    b.HasKey("SystemId", "SendPingTime");

                    b.ToTable("SystemPingData");
                });

            modelBuilder.Entity("Syski.Data.SystemRAM", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("RAMModelId");

                    b.Property<int>("Slot");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<int>("Speed");

                    b.HasKey("SystemId", "RAMModelId", "Slot");

                    b.HasIndex("RAMModelId");

                    b.ToTable("SystemRAMs");
                });

            modelBuilder.Entity("Syski.Data.SystemRAMData", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("CollectionDateTime");

                    b.Property<int>("Free");

                    b.HasKey("SystemId", "CollectionDateTime");

                    b.ToTable("SystemRAMData");
                });

            modelBuilder.Entity("Syski.Data.SystemRunningProcesses", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<int>("Id");

                    b.Property<DateTime>("CollectionDateTime");

                    b.Property<long>("KernelTime");

                    b.Property<long>("MemSize");

                    b.Property<string>("Name");

                    b.Property<int>("ParentId");

                    b.Property<string>("Path");

                    b.Property<int>("Threads");

                    b.Property<long>("UpTime");

                    b.HasKey("SystemId", "Id", "CollectionDateTime");

                    b.ToTable("SystemRunningProcesses");
                });

            modelBuilder.Entity("Syski.Data.SystemStorage", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("StorageModelId");

                    b.Property<int>("Slot");

                    b.Property<DateTime>("LastUpdated");

                    b.Property<Guid?>("StorageInterfaceId");

                    b.HasKey("SystemId", "StorageModelId", "Slot");

                    b.HasIndex("StorageInterfaceId");

                    b.HasIndex("StorageModelId");

                    b.ToTable("SystemStorages");
                });

            modelBuilder.Entity("Syski.Data.SystemStorageData", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<DateTime>("CollectionDateTime");

                    b.Property<float>("ByteReads");

                    b.Property<float>("ByteWrites");

                    b.Property<float>("Reads");

                    b.Property<float>("Time");

                    b.Property<float>("Transfers");

                    b.Property<float>("Writes");

                    b.HasKey("SystemId", "CollectionDateTime");

                    b.ToTable("SystemStorageData");
                });

            modelBuilder.Entity("Syski.Data.SystemType", b =>
                {
                    b.Property<Guid>("SystemId");

                    b.Property<Guid>("TypeId");

                    b.HasKey("SystemId", "TypeId");

                    b.HasIndex("TypeId");

                    b.ToTable("SystemTypes");
                });

            modelBuilder.Entity("Syski.Data.SystemTypeName", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd();

                    b.Property<string>("Name");

                    b.HasKey("Id");

                    b.ToTable("SystemTypeNames");
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim<string>", b =>
                {
                    b.HasOne("Syski.Data.ApplicationUser")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin<string>", b =>
                {
                    b.HasOne("Syski.Data.ApplicationUser")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole<string>", b =>
                {
                    b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole")
                        .WithMany()
                        .HasForeignKey("RoleId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("Syski.Data.ApplicationUser")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken<string>", b =>
                {
                    b.HasOne("Syski.Data.ApplicationUser")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Syski.Data.ApplicationUserSystems", b =>
                {
                    b.HasOne("Syski.Data.ApplicationUserSystemCategory", "Category")
                        .WithMany("Systems")
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("Users")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.ApplicationUser", "User")
                        .WithMany("Systems")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.AuthenticationToken", b =>
                {
                    b.HasOne("Syski.Data.ApplicationUser", "User")
                        .WithMany("AuthenticationTokens")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.BIOSModel", b =>
                {
                    b.HasOne("Syski.Data.Manufacturer", "Manufacturer")
                        .WithMany("BIOSManufacturer")
                        .HasForeignKey("ManufacturerId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.CPUModel", b =>
                {
                    b.HasOne("Syski.Data.Architecture", "Architecture")
                        .WithMany("CPUModels")
                        .HasForeignKey("ArchitectureId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.Model", "Model")
                        .WithOne("CPUModel")
                        .HasForeignKey("Syski.Data.CPUModel", "ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.GPUModel", b =>
                {
                    b.HasOne("Syski.Data.Model", "Model")
                        .WithOne("GPUModel")
                        .HasForeignKey("Syski.Data.GPUModel", "ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.Model", b =>
                {
                    b.HasOne("Syski.Data.Manufacturer", "Manufacturer")
                        .WithMany("Models")
                        .HasForeignKey("ManufacturerId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.MotherboardModel", b =>
                {
                    b.HasOne("Syski.Data.Model", "Model")
                        .WithOne("MotherboardModel")
                        .HasForeignKey("Syski.Data.MotherboardModel", "ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.RAMModel", b =>
                {
                    b.HasOne("Syski.Data.Model", "Model")
                        .WithOne("RAMModel")
                        .HasForeignKey("Syski.Data.RAMModel", "ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.StorageModel", b =>
                {
                    b.HasOne("Syski.Data.Model", "Model")
                        .WithOne("StorageModel")
                        .HasForeignKey("Syski.Data.StorageModel", "ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.System", b =>
                {
                    b.HasOne("Syski.Data.Model", "Model")
                        .WithMany("Systems")
                        .HasForeignKey("ModelId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemBIOS", b =>
                {
                    b.HasOne("Syski.Data.BIOSModel", "BIOSModel")
                        .WithMany("SystemBIOSs")
                        .HasForeignKey("BIOSModelId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithOne("SystemBIOS")
                        .HasForeignKey("Syski.Data.SystemBIOS", "SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemCommand", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemCommands")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemCPU", b =>
                {
                    b.HasOne("Syski.Data.CPUModel", "CPUModel")
                        .WithMany("SystemCPUs")
                        .HasForeignKey("CPUModelID")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemCPUs")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemCPUData", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemCPUData")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemGPU", b =>
                {
                    b.HasOne("Syski.Data.GPUModel", "GPUModel")
                        .WithMany("SystemGPUs")
                        .HasForeignKey("GPUModelId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemGPUs")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemMotherboard", b =>
                {
                    b.HasOne("Syski.Data.MotherboardModel", "MotherboardModel")
                        .WithMany("SystemMotherboards")
                        .HasForeignKey("MotherboardModelId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithOne("SystemMotherboard")
                        .HasForeignKey("Syski.Data.SystemMotherboard", "SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemOS", b =>
                {
                    b.HasOne("Syski.Data.Architecture", "Architecture")
                        .WithMany("SystemOSs")
                        .HasForeignKey("ArchitectureId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.OperatingSystemModel", "OperatingSystem")
                        .WithMany("SystemOSs")
                        .HasForeignKey("OperatingSystemId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemOSs")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemPingData", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemPingData")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemRAM", b =>
                {
                    b.HasOne("Syski.Data.RAMModel", "RAMModel")
                        .WithMany("SystemRAMs")
                        .HasForeignKey("RAMModelId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemRAMs")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemRAMData", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemRAMData")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemRunningProcesses", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemRunningProcesses")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemStorage", b =>
                {
                    b.HasOne("Syski.Data.StorageInterfaceType", "StorageInterface")
                        .WithMany("SystemStorages")
                        .HasForeignKey("StorageInterfaceId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.StorageModel", "StorageModel")
                        .WithMany("SystemStorages")
                        .HasForeignKey("StorageModelId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemStorages")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemStorageData", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemStorageData")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);
                });

            modelBuilder.Entity("Syski.Data.SystemType", b =>
                {
                    b.HasOne("Syski.Data.System", "System")
                        .WithMany("SystemTypes")
                        .HasForeignKey("SystemId")
                        .OnDelete(DeleteBehavior.Restrict);

                    b.HasOne("Syski.Data.SystemTypeName", "Type")
                        .WithMany("SystemTypes")
                        .HasForeignKey("TypeId")
                        .OnDelete(DeleteBehavior.Restrict);
                });
#pragma warning restore 612, 618
        }
    }
}
