// <auto-generated />
using System;
using Aaru.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace Aaru.Database.Migrations
{
    [DbContext(typeof(AaruContext))]
    [Migration("20250928010213_AddArchiveToStat")]
    partial class AddArchiveToStat
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "10.0.0-preview.7.25380.108")
                .HasAnnotation("Proxies:ChangeTracking", false)
                .HasAnnotation("Proxies:CheckEquality", false)
                .HasAnnotation("Proxies:LazyLoading", true);

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ata", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Identify")
                        .HasColumnType("BLOB");

                    b.Property<int?>("ReadCapabilitiesId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ReadCapabilitiesId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.BlockDescriptor", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("BlockLength")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("Blocks")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("Density")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ScsiModeId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ScsiModeId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Chs", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Cylinders")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Heads")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Sectors")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.DensityCode", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Code")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("SscSupportedMediaId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SscSupportedMediaId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.FireWire", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Product")
                        .HasColumnType("TEXT");

                    b.Property<uint>("ProductID")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("RemovableMedia")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("VendorID")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba0Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba0DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba0Readable")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba0ScrambledData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba0ScrambledDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba0ScrambledReadable")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba0ScrambledSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba0Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba100000AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba100000AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba100000AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba100000AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba100000AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba100000AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba100000Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba100000PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba100000PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba100000Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba100000RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba100000RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba100000RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba100000RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba100000Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba400000AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba400000AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba400000AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba400000AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba400000AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba400000AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba400000Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba400000PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba400000PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba400000Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba400000RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba400000RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba400000RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba400000RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba400000Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba44990AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba44990AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba44990AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba44990AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba44990AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba44990AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba44990Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba44990PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba44990PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba44990Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba44990RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba44990RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba44990RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba44990RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba44990Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba450000AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba450000AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba450000AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba450000AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba450000AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba450000AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba450000Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba450000PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba450000PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba450000Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba450000RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba450000RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba450000RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba450000RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba450000Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba45000AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba45000AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba45000AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba45000AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba45000AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba45000AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba45000Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba45000PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba45000PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba45000Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba45000RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba45000RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba45000RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba45000RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba45000Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba50000AudioData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000AudioDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba50000AudioPqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000AudioPqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba50000AudioPqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000AudioPqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000AudioPqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba50000AudioReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000AudioReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000AudioRwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000AudioRwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba50000AudioRwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000AudioRwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000AudioRwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba50000AudioSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba50000Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000DecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("Lba50000PqData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000PqDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba50000PqReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000PqReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000PqSense")
                        .HasColumnType("BLOB");

                    b.Property<bool>("Lba50000Readable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000ReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000RwData")
                        .HasColumnType("BLOB");

                    b.Property<string>("Lba50000RwDecodedSense")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Lba50000RwReadable")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Lba50000RwReadableCluster")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Lba50000RwSense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Lba50000Sense")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("MaximumReadablePqInHdArea")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("MaximumReadableRwInHdArea")
                        .HasColumnType("BLOB");

                    b.Property<uint>("MaximumReadableSectorInHdArea")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("MinimumReadableSectorInHdArea")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("RecognizedSwapDisc")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("SwapDiscLeadOutPFRAM")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("SwapDiscLeadOutPMIN")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("SwapDiscLeadOutPSEC")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SwapDiscLeadOutStart")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("TestCrashed")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("FeaturesId")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("ModeSense2AData")
                        .HasColumnType("BLOB");

                    b.HasKey("Id");

                    b.HasIndex("FeaturesId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.MmcFeatures", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("AACSVersion")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("AGIDs")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("BinaryData")
                        .HasColumnType("BLOB");

                    b.Property<byte?>("BindingNonceBlocks")
                        .HasColumnType("INTEGER");

                    b.Property<ushort?>("BlocksPerReadableUnit")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BufferUnderrunFreeInDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BufferUnderrunFreeInSAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BufferUnderrunFreeInTAO")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("CPRMVersion")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("CSSVersion")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanAudioScan")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanEject")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanEraseSector")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanExpandBDRESpareArea")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormat")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormatBDREWithoutSpare")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormatCert")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormatFRF")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormatQCert")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanFormatRRM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanGenerateBindingNonce")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanLoad")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanMuteSeparateChannels")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanOverwriteSAOTrack")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanOverwriteTAOTrack")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanPlayCDAudio")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanPseudoOverwriteBDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadAllDualR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadAllDualRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBDRE1")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBDRE2")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBDROM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadBluBCA")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadCD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadCDMRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadCPRM_MKB")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDDCD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVDPlusMRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVDPlusR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVDPlusRDL")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVDPlusRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDVDPlusRWDL")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadDriveAACSCertificate")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadHDDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadHDDVDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadHDDVDRAM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadLeadInCDText")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadOldBDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadOldBDRE")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadOldBDROM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReadSpareAreaInformation")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReportDriveSerial")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanReportMediaSerial")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanTestWriteDDCDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanTestWriteDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanTestWriteInSAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanTestWriteInTAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanUpgradeFirmware")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteBD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteBDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteBDRE1")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteBDRE2")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteBusEncryptedBlocks")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCDMRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCDRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCDRWCAV")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCDSAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCDTAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteCSSManagedDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDDCDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDDCDRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDPlusMRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDPlusR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDPlusRDL")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDPlusRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDPlusRWDL")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDRDL")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteDVDRW")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteHDDVDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteHDDVDRAM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteOldBDR")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteOldBDRE")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWritePackedSubchannelInTAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteRWSubchannelInSAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteRWSubchannelInTAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteRaw")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteRawMultiSession")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CanWriteRawSubchannelInTAO")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ChangerIsSideChangeCapable")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("ChangerSlots")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ChangerSupportsDiscPresent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("DBML")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("DVDMultiRead")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("EmbeddedChanger")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ErrorRecoveryPage")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("FirmwareDate")
                        .HasColumnType("TEXT");

                    b.Property<byte?>("LoadingMechanismType")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Locked")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("LogicalBlockSize")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("MultiRead")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("PhysicalInterfaceStandardNumber")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("PreventJumper")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsAACS")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsBusEncryption")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsC2")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsCPRM")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsCSS")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsDAP")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsDeviceBusyEvent")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsHybridDiscs")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsModePage1Ch")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsOSSC")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsPWP")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsSWPP")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsSecurDisc")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsSeparateVolume")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsVCPS")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsWriteInhibitDCB")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsWriteProtectPAC")
                        .HasColumnType("INTEGER");

                    b.Property<ushort?>("VolumeLevels")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.MmcSd", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("CID")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("CSD")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ExtendedCSD")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("OCR")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("SCR")
                        .HasColumnType("BLOB");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Pcmcia", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("CIS")
                        .HasColumnType("BLOB");

                    b.Property<ushort?>("CardCode")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Compliance")
                        .HasColumnType("TEXT");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<ushort?>("ManufacturerCode")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ProductName")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Scsi", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("InquiryData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense10ChangeableData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense10CurrentData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense10Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense6ChangeableData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense6CurrentData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense6Data")
                        .HasColumnType("BLOB");

                    b.Property<int?>("ModeSenseId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("MultiMediaDeviceId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ReadCapabilitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("SequentialDeviceId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsModeSense10")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsModeSense6")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SupportsModeSubpages")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ModeSenseId");

                    b.HasIndex("MultiMediaDeviceId");

                    b.HasIndex("ReadCapabilitiesId");

                    b.HasIndex("SequentialDeviceId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.ScsiMode", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("BlankCheckEnabled")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("BufferedMode")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("DPOandFUA")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("MediumType")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("Speed")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("WriteProtected")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.ScsiPage", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ScsiId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ScsiModeId")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("page")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("subpage")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("value")
                        .HasColumnType("BLOB");

                    b.HasKey("Id");

                    b.HasIndex("ScsiId");

                    b.HasIndex("ScsiModeId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ssc", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("BlockSizeGranularity")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("MaxBlockLength")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("MinBlockLength")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.SscSupportedMedia", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<ushort>("Length")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("MediumType")
                        .HasColumnType("INTEGER");

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

                    b.Property<string>("Organization")
                        .HasColumnType("TEXT");

                    b.Property<int?>("SscId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("TestedSequentialMediaId")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Width")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SscId");

                    b.HasIndex("TestedSequentialMediaId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.SupportedDensity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<uint>("BitsPerMm")
                        .HasColumnType("INTEGER");

                    b.Property<uint>("Capacity")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("DefaultDensity")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Duplicate")
                        .HasColumnType("INTEGER");

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

                    b.Property<string>("Organization")
                        .HasColumnType("TEXT");

                    b.Property<byte>("PrimaryCode")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("SecondaryCode")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("SscId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("TestedSequentialMediaId")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Tracks")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Width")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Writable")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SscId");

                    b.HasIndex("TestedSequentialMediaId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedMedia", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("AdipData")
                        .HasColumnType("BLOB");

                    b.Property<int?>("AtaId")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("AtipData")
                        .HasColumnType("BLOB");

                    b.Property<uint?>("BlockSize")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("Blocks")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("BluBcaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("BluDdsData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("BluDiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("BluPacData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("BluSaiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("C2PointersData")
                        .HasColumnType("BLOB");

                    b.Property<int?>("CHSId")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadAACS")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadADIP")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadATIP")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadBCA")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadC2Pointers")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadCMI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadCdScrambled")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadCorrectedSubchannel")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadCorrectedSubchannelWithC2")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadDCB")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadDDS")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadDMI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadDiscInformation")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadF1_06")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadF1_06LeadOut")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadFirstTrackPreGap")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadFullTOC")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadHDCMI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadLayerCapacity")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadLeadIn")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadLeadOut")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadMediaID")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadMediaSerial")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPAC")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPFI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPMA")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPQSubchannel")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPQSubchannelWithC2")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadPRI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadRWSubchannel")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadRWSubchannelWithC2")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadRecordablePFI")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadSpareAreaInformation")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadTOC")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadingIntersessionLeadIn")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadingIntersessionLeadOut")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("CmiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("CorrectedSubchannelData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("CorrectedSubchannelWithC2Data")
                        .HasColumnType("BLOB");

                    b.Property<int?>("CurrentCHSId")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("DcbData")
                        .HasColumnType("BLOB");

                    b.Property<byte?>("Density")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("DmiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("DvdAacsData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("DvdBcaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("DvdDdsData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("DvdLayerData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("DvdSaiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("EmbossedPfiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("FullTocData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("HLDTSTReadRawDVDData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("HdCmiData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("IdentifyData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("IntersessionLeadInData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("IntersessionLeadOutData")
                        .HasColumnType("BLOB");

                    b.Property<ulong?>("LBA48Sectors")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("LBASectors")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("LeadInData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("LeadOutData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("LiteOnReadRawDVDData")
                        .HasColumnType("BLOB");

                    b.Property<ushort?>("LogicalAlignment")
                        .HasColumnType("INTEGER");

                    b.Property<uint?>("LongBlockSize")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<bool>("MediaIsRecognized")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("MediumType")
                        .HasColumnType("INTEGER");

                    b.Property<string>("MediumTypeName")
                        .HasColumnType("TEXT");

                    b.Property<int?>("MmcId")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("ModeSense10Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense6Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("NecReadCddaData")
                        .HasColumnType("BLOB");

                    b.Property<ushort?>("NominalRotationRate")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("PQSubchannelData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PQSubchannelWithC2Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PfiData")
                        .HasColumnType("BLOB");

                    b.Property<uint?>("PhysicalBlockSize")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("PioneerReadCddaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PioneerReadCddaMsfData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PlextorReadCddaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PlextorReadRawDVDData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PmaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("PriData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("RWSubchannelData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("RWSubchannelWithC2Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Read10Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Read12Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Read16Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Read6Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadCdData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadCdFullData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadCdMsfData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadCdMsfFullData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadCdScrambledData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadDmaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadDmaLba48Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadDmaLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadDmaRetryData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadDmaRetryLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadF1_06Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadF1_06LeadOutData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLba48Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLong10Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLong16Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLongData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLongLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLongRetryData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadLongRetryLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadRetryLbaData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadSectorsData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ReadSectorsRetryData")
                        .HasColumnType("BLOB");

                    b.Property<int?>("ScsiId")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SolidStateDevice")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsHLDTSTReadRawDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsLiteOnReadRawDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsNECReadCDDA")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsPioneerReadCDDA")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsPioneerReadCDDAMSF")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsPlextorReadCDDA")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsPlextorReadRawDVD")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsRead10")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsRead12")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsRead16")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsRead6")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCapacity")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCapacity16")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCd")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCdMsf")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCdMsfRaw")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadCdRaw")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadDma")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadDmaLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadDmaLba48")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadDmaRetry")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadDmaRetryLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLba48")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLong")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLong16")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLongLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLongRetry")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadLongRetryLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadRetry")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadRetryLba")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsReadSectors")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsSeek")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("SupportsSeekLba")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("TocData")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("Track1PregapData")
                        .HasColumnType("BLOB");

                    b.Property<ushort?>("UnformattedBPS")
                        .HasColumnType("INTEGER");

                    b.Property<ushort?>("UnformattedBPT")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AtaId");

                    b.HasIndex("CHSId");

                    b.HasIndex("CurrentCHSId");

                    b.HasIndex("MmcId");

                    b.HasIndex("ScsiId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedSequentialMedia", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadMediaSerial")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("Density")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<bool>("MediaIsRecognized")
                        .HasColumnType("INTEGER");

                    b.Property<byte?>("MediumType")
                        .HasColumnType("INTEGER");

                    b.Property<string>("MediumTypeName")
                        .HasColumnType("TEXT");

                    b.Property<byte[]>("ModeSense10Data")
                        .HasColumnType("BLOB");

                    b.Property<byte[]>("ModeSense6Data")
                        .HasColumnType("BLOB");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<int?>("SscId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("SscId");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Usb", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Descriptors")
                        .HasColumnType("BLOB");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Product")
                        .HasColumnType("TEXT");

                    b.Property<ushort>("ProductID")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("RemovableMedia")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("VendorID")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Archive", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.CdOffset", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("AddedWhen")
                        .HasColumnType("TEXT");

                    b.Property<float>("Agreement")
                        .HasColumnType("REAL");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ModifiedWhen")
                        .HasColumnType("TEXT");

                    b.Property<short>("Offset")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Submissions")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ModifiedWhen");

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

            modelBuilder.Entity("Aaru.Database.Models.Command", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Device", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ATAId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ATAPIId")
                        .HasColumnType("INTEGER");

                    b.Property<bool?>("CanReadGdRomUsingSwapDisc")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CompactFlash")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("FireWireId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("GdRomSwapDiscCapabilitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastSynchronized")
                        .HasColumnType("TEXT");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<int?>("MultiMediaCardId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("OptimalMultipleSectorsRead")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("PCMCIAId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Revision")
                        .HasColumnType("TEXT");

                    b.Property<int?>("SCSIId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("SecureDigitalId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("USBId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ATAId");

                    b.HasIndex("ATAPIId");

                    b.HasIndex("FireWireId");

                    b.HasIndex("GdRomSwapDiscCapabilitiesId");

                    b.HasIndex("MultiMediaCardId");

                    b.HasIndex("PCMCIAId");

                    b.HasIndex("SCSIId");

                    b.HasIndex("SecureDigitalId");

                    b.HasIndex("USBId");

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

            modelBuilder.Entity("Aaru.Database.Models.DeviceStat", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Bus")
                        .HasColumnType("TEXT");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<string>("Revision")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Filesystem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Filter", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Media", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Real")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Type")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.MediaFormat", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.NesHeaderInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("AddedWhen")
                        .HasColumnType("TEXT");

                    b.Property<bool>("BatteryPresent")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("ConsoleType")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("DefaultExpansionDevice")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("ExtendedConsoleType")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("FourScreenMode")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("Mapper")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("ModifiedWhen")
                        .HasColumnType("TEXT");

                    b.Property<bool>("NametableMirroring")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Sha256")
                        .IsRequired()
                        .HasMaxLength(64)
                        .HasColumnType("TEXT");

                    b.Property<byte>("Submapper")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("TimingMode")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("VsHardwareType")
                        .HasColumnType("INTEGER");

                    b.Property<byte>("VsPpuType")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ModifiedWhen");

                    b.HasIndex("Sha256");

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

            modelBuilder.Entity("Aaru.Database.Models.OperatingSystem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Partition", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.RemoteApplication", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.RemoteArchitecture", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.RemoteOperatingSystem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.Database.Models.Report", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ATAId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ATAPIId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("CompactFlash")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("Created")
                        .HasColumnType("TEXT");

                    b.Property<int?>("FireWireId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("GdRomSwapDiscCapabilitiesId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Manufacturer")
                        .HasColumnType("TEXT");

                    b.Property<string>("Model")
                        .HasColumnType("TEXT");

                    b.Property<int?>("MultiMediaCardId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("PCMCIAId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Revision")
                        .HasColumnType("TEXT");

                    b.Property<int?>("SCSIId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("SecureDigitalId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("USBId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Uploaded")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ATAId");

                    b.HasIndex("ATAPIId");

                    b.HasIndex("FireWireId");

                    b.HasIndex("GdRomSwapDiscCapabilitiesId");

                    b.HasIndex("MultiMediaCardId");

                    b.HasIndex("PCMCIAId");

                    b.HasIndex("SCSIId");

                    b.HasIndex("SecureDigitalId");

                    b.HasIndex("USBId");

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

            modelBuilder.Entity("Aaru.Database.Models.UsbProduct", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("AddedWhen")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ModifiedWhen")
                        .HasColumnType("TEXT");

                    b.Property<string>("Product")
                        .HasColumnType("TEXT");

                    b.Property<ushort>("ProductId")
                        .HasColumnType("INTEGER");

                    b.Property<ushort>("VendorId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ModifiedWhen");

                    b.HasIndex("ProductId");

                    b.HasIndex("VendorId");

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

            modelBuilder.Entity("Aaru.Database.Models.UsbVendor", b =>
                {
                    b.Property<ushort>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("AddedWhen")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("ModifiedWhen")
                        .HasColumnType("TEXT");

                    b.Property<string>("Vendor")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("ModifiedWhen");

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

            modelBuilder.Entity("Aaru.Database.Models.Version", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Count")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Synchronized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ata", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.TestedMedia", "ReadCapabilities")
                        .WithMany()
                        .HasForeignKey("ReadCapabilitiesId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("ReadCapabilities");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.BlockDescriptor", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.ScsiMode", null)
                        .WithMany("BlockDescriptors")
                        .HasForeignKey("ScsiModeId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.DensityCode", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.SscSupportedMedia", null)
                        .WithMany("DensityCodes")
                        .HasForeignKey("SscSupportedMediaId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.MmcFeatures", "Features")
                        .WithMany()
                        .HasForeignKey("FeaturesId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Features");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Scsi", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.ScsiMode", "ModeSense")
                        .WithMany()
                        .HasForeignKey("ModeSenseId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Mmc", "MultiMediaDevice")
                        .WithMany()
                        .HasForeignKey("MultiMediaDeviceId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.TestedMedia", "ReadCapabilities")
                        .WithMany()
                        .HasForeignKey("ReadCapabilitiesId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Ssc", "SequentialDevice")
                        .WithMany()
                        .HasForeignKey("SequentialDeviceId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("ModeSense");

                    b.Navigation("MultiMediaDevice");

                    b.Navigation("ReadCapabilities");

                    b.Navigation("SequentialDevice");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.ScsiPage", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Scsi", null)
                        .WithMany("EVPDPages")
                        .HasForeignKey("ScsiId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.ScsiMode", null)
                        .WithMany("ModePages")
                        .HasForeignKey("ScsiModeId")
                        .OnDelete(DeleteBehavior.SetNull);
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.SscSupportedMedia", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ssc", null)
                        .WithMany("SupportedMediaTypes")
                        .HasForeignKey("SscId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.TestedSequentialMedia", null)
                        .WithMany("SupportedMediaTypes")
                        .HasForeignKey("TestedSequentialMediaId")
                        .OnDelete(DeleteBehavior.SetNull);
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.SupportedDensity", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ssc", null)
                        .WithMany("SupportedDensities")
                        .HasForeignKey("SscId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("Aaru.CommonTypes.Metadata.TestedSequentialMedia", null)
                        .WithMany("SupportedDensities")
                        .HasForeignKey("TestedSequentialMediaId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedMedia", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ata", null)
                        .WithMany("RemovableMedias")
                        .HasForeignKey("AtaId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Chs", "CHS")
                        .WithMany()
                        .HasForeignKey("CHSId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Chs", "CurrentCHS")
                        .WithMany()
                        .HasForeignKey("CurrentCHSId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Mmc", null)
                        .WithMany("TestedMedia")
                        .HasForeignKey("MmcId")
                        .OnDelete(DeleteBehavior.Cascade);

                    b.HasOne("Aaru.CommonTypes.Metadata.Scsi", null)
                        .WithMany("RemovableMedias")
                        .HasForeignKey("ScsiId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("CHS");

                    b.Navigation("CurrentCHS");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedSequentialMedia", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ssc", null)
                        .WithMany("TestedMedia")
                        .HasForeignKey("SscId")
                        .OnDelete(DeleteBehavior.SetNull);
                });

            modelBuilder.Entity("Aaru.Database.Models.Device", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ata", "ATA")
                        .WithMany()
                        .HasForeignKey("ATAId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Ata", "ATAPI")
                        .WithMany()
                        .HasForeignKey("ATAPIId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.FireWire", "FireWire")
                        .WithMany()
                        .HasForeignKey("FireWireId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", "GdRomSwapDiscCapabilities")
                        .WithMany()
                        .HasForeignKey("GdRomSwapDiscCapabilitiesId");

                    b.HasOne("Aaru.CommonTypes.Metadata.MmcSd", "MultiMediaCard")
                        .WithMany()
                        .HasForeignKey("MultiMediaCardId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Pcmcia", "PCMCIA")
                        .WithMany()
                        .HasForeignKey("PCMCIAId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Scsi", "SCSI")
                        .WithMany()
                        .HasForeignKey("SCSIId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.MmcSd", "SecureDigital")
                        .WithMany()
                        .HasForeignKey("SecureDigitalId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Usb", "USB")
                        .WithMany()
                        .HasForeignKey("USBId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("ATA");

                    b.Navigation("ATAPI");

                    b.Navigation("FireWire");

                    b.Navigation("GdRomSwapDiscCapabilities");

                    b.Navigation("MultiMediaCard");

                    b.Navigation("PCMCIA");

                    b.Navigation("SCSI");

                    b.Navigation("SecureDigital");

                    b.Navigation("USB");
                });

            modelBuilder.Entity("Aaru.Database.Models.Report", b =>
                {
                    b.HasOne("Aaru.CommonTypes.Metadata.Ata", "ATA")
                        .WithMany()
                        .HasForeignKey("ATAId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Ata", "ATAPI")
                        .WithMany()
                        .HasForeignKey("ATAPIId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.FireWire", "FireWire")
                        .WithMany()
                        .HasForeignKey("FireWireId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", "GdRomSwapDiscCapabilities")
                        .WithMany()
                        .HasForeignKey("GdRomSwapDiscCapabilitiesId");

                    b.HasOne("Aaru.CommonTypes.Metadata.MmcSd", "MultiMediaCard")
                        .WithMany()
                        .HasForeignKey("MultiMediaCardId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Pcmcia", "PCMCIA")
                        .WithMany()
                        .HasForeignKey("PCMCIAId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Scsi", "SCSI")
                        .WithMany()
                        .HasForeignKey("SCSIId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.MmcSd", "SecureDigital")
                        .WithMany()
                        .HasForeignKey("SecureDigitalId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Aaru.CommonTypes.Metadata.Usb", "USB")
                        .WithMany()
                        .HasForeignKey("USBId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("ATA");

                    b.Navigation("ATAPI");

                    b.Navigation("FireWire");

                    b.Navigation("GdRomSwapDiscCapabilities");

                    b.Navigation("MultiMediaCard");

                    b.Navigation("PCMCIA");

                    b.Navigation("SCSI");

                    b.Navigation("SecureDigital");

                    b.Navigation("USB");
                });

            modelBuilder.Entity("Aaru.Database.Models.UsbProduct", b =>
                {
                    b.HasOne("Aaru.Database.Models.UsbVendor", "Vendor")
                        .WithMany("Products")
                        .HasForeignKey("VendorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Vendor");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ata", b =>
                {
                    b.Navigation("RemovableMedias");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b =>
                {
                    b.Navigation("TestedMedia");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Scsi", b =>
                {
                    b.Navigation("EVPDPages");

                    b.Navigation("RemovableMedias");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.ScsiMode", b =>
                {
                    b.Navigation("BlockDescriptors");

                    b.Navigation("ModePages");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ssc", b =>
                {
                    b.Navigation("SupportedDensities");

                    b.Navigation("SupportedMediaTypes");

                    b.Navigation("TestedMedia");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.SscSupportedMedia", b =>
                {
                    b.Navigation("DensityCodes");
                });

            modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedSequentialMedia", b =>
                {
                    b.Navigation("SupportedDensities");

                    b.Navigation("SupportedMediaTypes");
                });

            modelBuilder.Entity("Aaru.Database.Models.UsbVendor", b =>
                {
                    b.Navigation("Products");
                });
#pragma warning restore 612, 618
        }
    }
}
