From 7f755a12f90b1e1b433556f4d0b950fabbdb5e0c Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Fri, 10 Jul 2020 18:18:11 +0100 Subject: [PATCH] Add fields for GD-ROM reading capabilities report using swap disc trick. --- .idea/.idea.Aaru/.idea/contentModel.xml | 2 + Aaru.CommonTypes | 2 +- Aaru.Database/Aaru.Database.csproj | 2 + ...9_AddGdRomSwapDiscCapabilities.Designer.cs | 2457 +++++++++++++++++ ...0710170129_AddGdRomSwapDiscCapabilities.cs | 161 ++ .../Migrations/AaruContextModelSnapshot.cs | 237 ++ Aaru.Database/Models/Device.cs | 29 +- 7 files changed, 2875 insertions(+), 15 deletions(-) create mode 100644 Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs create mode 100644 Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.cs diff --git a/.idea/.idea.Aaru/.idea/contentModel.xml b/.idea/.idea.Aaru/.idea/contentModel.xml index 4acd533eb..e5b108013 100644 --- a/.idea/.idea.Aaru/.idea/contentModel.xml +++ b/.idea/.idea.Aaru/.idea/contentModel.xml @@ -414,6 +414,8 @@ + + diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes index f3329ce21..1fe35b7d3 160000 --- a/Aaru.CommonTypes +++ b/Aaru.CommonTypes @@ -1 +1 @@ -Subproject commit f3329ce214b55b96e2b7065a9d4c15414ab72a21 +Subproject commit 1fe35b7d392c3c746df2d356a5bbbef12a4f500b diff --git a/Aaru.Database/Aaru.Database.csproj b/Aaru.Database/Aaru.Database.csproj index 191b40614..f76afc779 100644 --- a/Aaru.Database/Aaru.Database.csproj +++ b/Aaru.Database/Aaru.Database.csproj @@ -112,6 +112,8 @@ + + diff --git a/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs new file mode 100644 index 000000000..fc7dcc535 --- /dev/null +++ b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.Designer.cs @@ -0,0 +1,2457 @@ +// +using System; +using Aaru.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace Aaru.Database.Migrations +{ + [DbContext(typeof(AaruContext))] + [Migration("20200710170129_AddGdRomSwapDiscCapabilities")] + partial class AddGdRomSwapDiscCapabilities + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "3.1.5"); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ata", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Identify") + .HasColumnType("BLOB"); + + b.Property("ReadCapabilitiesId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ReadCapabilitiesId"); + + b.ToTable("Ata"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.BlockDescriptor", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("BlockLength") + .HasColumnType("INTEGER"); + + b.Property("Blocks") + .HasColumnType("INTEGER"); + + b.Property("Density") + .HasColumnType("INTEGER"); + + b.Property("ScsiModeId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ScsiModeId"); + + b.ToTable("BlockDescriptor"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Chs", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Cylinders") + .HasColumnType("INTEGER"); + + b.Property("Heads") + .HasColumnType("INTEGER"); + + b.Property("Sectors") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Chs"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.DensityCode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Code") + .HasColumnType("INTEGER"); + + b.Property("SscSupportedMediaId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SscSupportedMediaId"); + + b.ToTable("DensityCode"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.FireWire", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Product") + .HasColumnType("TEXT"); + + b.Property("ProductID") + .HasColumnType("INTEGER"); + + b.Property("RemovableMedia") + .HasColumnType("INTEGER"); + + b.Property("VendorID") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("FireWire"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Lba0Data") + .HasColumnType("BLOB"); + + b.Property("Lba0DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba0Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba0ScrambledData") + .HasColumnType("BLOB"); + + b.Property("Lba0ScrambledDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba0ScrambledReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba0ScrambledSense") + .HasColumnType("BLOB"); + + b.Property("Lba0Sense") + .HasColumnType("BLOB"); + + b.Property("Lba100000Data") + .HasColumnType("BLOB"); + + b.Property("Lba100000DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba100000PqData") + .HasColumnType("BLOB"); + + b.Property("Lba100000PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba100000PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba100000PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba100000PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba100000Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba100000ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba100000RwData") + .HasColumnType("BLOB"); + + b.Property("Lba100000RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba100000RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba100000RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba100000RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba100000Sense") + .HasColumnType("BLOB"); + + b.Property("Lba400000Data") + .HasColumnType("BLOB"); + + b.Property("Lba400000DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba400000PqData") + .HasColumnType("BLOB"); + + b.Property("Lba400000PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba400000PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba400000PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba400000PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba400000Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba400000ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba400000RwData") + .HasColumnType("BLOB"); + + b.Property("Lba400000RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba400000RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba400000RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba400000RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba400000Sense") + .HasColumnType("BLOB"); + + b.Property("Lba44990Data") + .HasColumnType("BLOB"); + + b.Property("Lba44990DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba44990PqData") + .HasColumnType("BLOB"); + + b.Property("Lba44990PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba44990PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba44990PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba44990PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba44990Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba44990ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba44990RwData") + .HasColumnType("BLOB"); + + b.Property("Lba44990RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba44990RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba44990RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba44990RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba44990Sense") + .HasColumnType("BLOB"); + + b.Property("Lba450000Data") + .HasColumnType("BLOB"); + + b.Property("Lba450000DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba450000PqData") + .HasColumnType("BLOB"); + + b.Property("Lba450000PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba450000PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba450000PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba450000PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba450000Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba450000ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba450000RwData") + .HasColumnType("BLOB"); + + b.Property("Lba450000RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba450000RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba450000RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba450000RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba450000Sense") + .HasColumnType("BLOB"); + + b.Property("Lba45000Data") + .HasColumnType("BLOB"); + + b.Property("Lba45000DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba45000PqData") + .HasColumnType("BLOB"); + + b.Property("Lba45000PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba45000PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba45000PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba45000PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba45000Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba45000ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba45000RwData") + .HasColumnType("BLOB"); + + b.Property("Lba45000RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba45000RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba45000RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba45000RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba45000Sense") + .HasColumnType("BLOB"); + + b.Property("Lba50000Data") + .HasColumnType("BLOB"); + + b.Property("Lba50000DecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba50000PqData") + .HasColumnType("BLOB"); + + b.Property("Lba50000PqDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba50000PqReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba50000PqReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba50000PqSense") + .HasColumnType("BLOB"); + + b.Property("Lba50000Readable") + .HasColumnType("INTEGER"); + + b.Property("Lba50000ReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba50000RwData") + .HasColumnType("BLOB"); + + b.Property("Lba50000RwDecodedSense") + .HasColumnType("TEXT"); + + b.Property("Lba50000RwReadable") + .HasColumnType("INTEGER"); + + b.Property("Lba50000RwReadableCluster") + .HasColumnType("INTEGER"); + + b.Property("Lba50000RwSense") + .HasColumnType("BLOB"); + + b.Property("Lba50000Sense") + .HasColumnType("BLOB"); + + b.Property("MaximumReadablePqInHdArea") + .HasColumnType("BLOB"); + + b.Property("MaximumReadableRwInHdArea") + .HasColumnType("BLOB"); + + b.Property("MaximumReadableSectorInHdArea") + .HasColumnType("INTEGER"); + + b.Property("MinimumReadableSectorInHdArea") + .HasColumnType("INTEGER"); + + b.Property("RecognizedSwapDisc") + .HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPFRAM") + .HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPMIN") + .HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPSEC") + .HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutStart") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("GdRomSwapDiscCapabilities"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("FeaturesId") + .HasColumnType("INTEGER"); + + b.Property("ModeSense2AData") + .HasColumnType("BLOB"); + + b.HasKey("Id"); + + b.HasIndex("FeaturesId"); + + b.ToTable("Mmc"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.MmcFeatures", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AACSVersion") + .HasColumnType("INTEGER"); + + b.Property("AGIDs") + .HasColumnType("INTEGER"); + + b.Property("BinaryData") + .HasColumnType("BLOB"); + + b.Property("BindingNonceBlocks") + .HasColumnType("INTEGER"); + + b.Property("BlocksPerReadableUnit") + .HasColumnType("INTEGER"); + + b.Property("BufferUnderrunFreeInDVD") + .HasColumnType("INTEGER"); + + b.Property("BufferUnderrunFreeInSAO") + .HasColumnType("INTEGER"); + + b.Property("BufferUnderrunFreeInTAO") + .HasColumnType("INTEGER"); + + b.Property("CPRMVersion") + .HasColumnType("INTEGER"); + + b.Property("CSSVersion") + .HasColumnType("INTEGER"); + + b.Property("CanAudioScan") + .HasColumnType("INTEGER"); + + b.Property("CanEject") + .HasColumnType("INTEGER"); + + b.Property("CanEraseSector") + .HasColumnType("INTEGER"); + + b.Property("CanExpandBDRESpareArea") + .HasColumnType("INTEGER"); + + b.Property("CanFormat") + .HasColumnType("INTEGER"); + + b.Property("CanFormatBDREWithoutSpare") + .HasColumnType("INTEGER"); + + b.Property("CanFormatCert") + .HasColumnType("INTEGER"); + + b.Property("CanFormatFRF") + .HasColumnType("INTEGER"); + + b.Property("CanFormatQCert") + .HasColumnType("INTEGER"); + + b.Property("CanFormatRRM") + .HasColumnType("INTEGER"); + + b.Property("CanGenerateBindingNonce") + .HasColumnType("INTEGER"); + + b.Property("CanLoad") + .HasColumnType("INTEGER"); + + b.Property("CanMuteSeparateChannels") + .HasColumnType("INTEGER"); + + b.Property("CanOverwriteSAOTrack") + .HasColumnType("INTEGER"); + + b.Property("CanOverwriteTAOTrack") + .HasColumnType("INTEGER"); + + b.Property("CanPlayCDAudio") + .HasColumnType("INTEGER"); + + b.Property("CanPseudoOverwriteBDR") + .HasColumnType("INTEGER"); + + b.Property("CanReadAllDualR") + .HasColumnType("INTEGER"); + + b.Property("CanReadAllDualRW") + .HasColumnType("INTEGER"); + + b.Property("CanReadBD") + .HasColumnType("INTEGER"); + + b.Property("CanReadBDR") + .HasColumnType("INTEGER"); + + b.Property("CanReadBDRE1") + .HasColumnType("INTEGER"); + + b.Property("CanReadBDRE2") + .HasColumnType("INTEGER"); + + b.Property("CanReadBDROM") + .HasColumnType("INTEGER"); + + b.Property("CanReadBluBCA") + .HasColumnType("INTEGER"); + + b.Property("CanReadCD") + .HasColumnType("INTEGER"); + + b.Property("CanReadCDMRW") + .HasColumnType("INTEGER"); + + b.Property("CanReadCPRM_MKB") + .HasColumnType("INTEGER"); + + b.Property("CanReadDDCD") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVD") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVDPlusMRW") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVDPlusR") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVDPlusRDL") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVDPlusRW") + .HasColumnType("INTEGER"); + + b.Property("CanReadDVDPlusRWDL") + .HasColumnType("INTEGER"); + + b.Property("CanReadDriveAACSCertificate") + .HasColumnType("INTEGER"); + + b.Property("CanReadHDDVD") + .HasColumnType("INTEGER"); + + b.Property("CanReadHDDVDR") + .HasColumnType("INTEGER"); + + b.Property("CanReadHDDVDRAM") + .HasColumnType("INTEGER"); + + b.Property("CanReadLeadInCDText") + .HasColumnType("INTEGER"); + + b.Property("CanReadOldBDR") + .HasColumnType("INTEGER"); + + b.Property("CanReadOldBDRE") + .HasColumnType("INTEGER"); + + b.Property("CanReadOldBDROM") + .HasColumnType("INTEGER"); + + b.Property("CanReadSpareAreaInformation") + .HasColumnType("INTEGER"); + + b.Property("CanReportDriveSerial") + .HasColumnType("INTEGER"); + + b.Property("CanReportMediaSerial") + .HasColumnType("INTEGER"); + + b.Property("CanTestWriteDDCDR") + .HasColumnType("INTEGER"); + + b.Property("CanTestWriteDVD") + .HasColumnType("INTEGER"); + + b.Property("CanTestWriteInSAO") + .HasColumnType("INTEGER"); + + b.Property("CanTestWriteInTAO") + .HasColumnType("INTEGER"); + + b.Property("CanUpgradeFirmware") + .HasColumnType("INTEGER"); + + b.Property("CanWriteBD") + .HasColumnType("INTEGER"); + + b.Property("CanWriteBDR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteBDRE1") + .HasColumnType("INTEGER"); + + b.Property("CanWriteBDRE2") + .HasColumnType("INTEGER"); + + b.Property("CanWriteBusEncryptedBlocks") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCDMRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCDRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCDRWCAV") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCDSAO") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCDTAO") + .HasColumnType("INTEGER"); + + b.Property("CanWriteCSSManagedDVD") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDDCDR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDDCDRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDPlusMRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDPlusR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDPlusRDL") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDPlusRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDPlusRWDL") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDRDL") + .HasColumnType("INTEGER"); + + b.Property("CanWriteDVDRW") + .HasColumnType("INTEGER"); + + b.Property("CanWriteHDDVDR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteHDDVDRAM") + .HasColumnType("INTEGER"); + + b.Property("CanWriteOldBDR") + .HasColumnType("INTEGER"); + + b.Property("CanWriteOldBDRE") + .HasColumnType("INTEGER"); + + b.Property("CanWritePackedSubchannelInTAO") + .HasColumnType("INTEGER"); + + b.Property("CanWriteRWSubchannelInSAO") + .HasColumnType("INTEGER"); + + b.Property("CanWriteRWSubchannelInTAO") + .HasColumnType("INTEGER"); + + b.Property("CanWriteRaw") + .HasColumnType("INTEGER"); + + b.Property("CanWriteRawMultiSession") + .HasColumnType("INTEGER"); + + b.Property("CanWriteRawSubchannelInTAO") + .HasColumnType("INTEGER"); + + b.Property("ChangerIsSideChangeCapable") + .HasColumnType("INTEGER"); + + b.Property("ChangerSlots") + .HasColumnType("INTEGER"); + + b.Property("ChangerSupportsDiscPresent") + .HasColumnType("INTEGER"); + + b.Property("DBML") + .HasColumnType("INTEGER"); + + b.Property("DVDMultiRead") + .HasColumnType("INTEGER"); + + b.Property("EmbeddedChanger") + .HasColumnType("INTEGER"); + + b.Property("ErrorRecoveryPage") + .HasColumnType("INTEGER"); + + b.Property("FirmwareDate") + .HasColumnType("TEXT"); + + b.Property("LoadingMechanismType") + .HasColumnType("INTEGER"); + + b.Property("Locked") + .HasColumnType("INTEGER"); + + b.Property("LogicalBlockSize") + .HasColumnType("INTEGER"); + + b.Property("MultiRead") + .HasColumnType("INTEGER"); + + b.Property("PhysicalInterfaceStandardNumber") + .HasColumnType("INTEGER"); + + b.Property("PreventJumper") + .HasColumnType("INTEGER"); + + b.Property("SupportsAACS") + .HasColumnType("INTEGER"); + + b.Property("SupportsBusEncryption") + .HasColumnType("INTEGER"); + + b.Property("SupportsC2") + .HasColumnType("INTEGER"); + + b.Property("SupportsCPRM") + .HasColumnType("INTEGER"); + + b.Property("SupportsCSS") + .HasColumnType("INTEGER"); + + b.Property("SupportsDAP") + .HasColumnType("INTEGER"); + + b.Property("SupportsDeviceBusyEvent") + .HasColumnType("INTEGER"); + + b.Property("SupportsHybridDiscs") + .HasColumnType("INTEGER"); + + b.Property("SupportsModePage1Ch") + .HasColumnType("INTEGER"); + + b.Property("SupportsOSSC") + .HasColumnType("INTEGER"); + + b.Property("SupportsPWP") + .HasColumnType("INTEGER"); + + b.Property("SupportsSWPP") + .HasColumnType("INTEGER"); + + b.Property("SupportsSecurDisc") + .HasColumnType("INTEGER"); + + b.Property("SupportsSeparateVolume") + .HasColumnType("INTEGER"); + + b.Property("SupportsVCPS") + .HasColumnType("INTEGER"); + + b.Property("SupportsWriteInhibitDCB") + .HasColumnType("INTEGER"); + + b.Property("SupportsWriteProtectPAC") + .HasColumnType("INTEGER"); + + b.Property("VolumeLevels") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("MmcFeatures"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.MmcSd", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CID") + .HasColumnType("BLOB"); + + b.Property("CSD") + .HasColumnType("BLOB"); + + b.Property("ExtendedCSD") + .HasColumnType("BLOB"); + + b.Property("OCR") + .HasColumnType("BLOB"); + + b.Property("SCR") + .HasColumnType("BLOB"); + + b.HasKey("Id"); + + b.ToTable("MmcSd"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Pcmcia", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CIS") + .HasColumnType("BLOB"); + + b.Property("CardCode") + .HasColumnType("INTEGER"); + + b.Property("Compliance") + .HasColumnType("TEXT"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("ManufacturerCode") + .HasColumnType("INTEGER"); + + b.Property("ProductName") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Pcmcia"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Scsi", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("InquiryData") + .HasColumnType("BLOB"); + + b.Property("ModeSense10ChangeableData") + .HasColumnType("BLOB"); + + b.Property("ModeSense10CurrentData") + .HasColumnType("BLOB"); + + b.Property("ModeSense10Data") + .HasColumnType("BLOB"); + + b.Property("ModeSense6ChangeableData") + .HasColumnType("BLOB"); + + b.Property("ModeSense6CurrentData") + .HasColumnType("BLOB"); + + b.Property("ModeSense6Data") + .HasColumnType("BLOB"); + + b.Property("ModeSenseId") + .HasColumnType("INTEGER"); + + b.Property("MultiMediaDeviceId") + .HasColumnType("INTEGER"); + + b.Property("ReadCapabilitiesId") + .HasColumnType("INTEGER"); + + b.Property("SequentialDeviceId") + .HasColumnType("INTEGER"); + + b.Property("SupportsModeSense10") + .HasColumnType("INTEGER"); + + b.Property("SupportsModeSense6") + .HasColumnType("INTEGER"); + + b.Property("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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("BlankCheckEnabled") + .HasColumnType("INTEGER"); + + b.Property("BufferedMode") + .HasColumnType("INTEGER"); + + b.Property("DPOandFUA") + .HasColumnType("INTEGER"); + + b.Property("MediumType") + .HasColumnType("INTEGER"); + + b.Property("Speed") + .HasColumnType("INTEGER"); + + b.Property("WriteProtected") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("ScsiMode"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.ScsiPage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ScsiId") + .HasColumnType("INTEGER"); + + b.Property("ScsiModeId") + .HasColumnType("INTEGER"); + + b.Property("page") + .HasColumnType("INTEGER"); + + b.Property("subpage") + .HasColumnType("INTEGER"); + + b.Property("value") + .HasColumnType("BLOB"); + + b.HasKey("Id"); + + b.HasIndex("ScsiId"); + + b.HasIndex("ScsiModeId"); + + b.ToTable("ScsiPage"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Ssc", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("BlockSizeGranularity") + .HasColumnType("INTEGER"); + + b.Property("MaxBlockLength") + .HasColumnType("INTEGER"); + + b.Property("MinBlockLength") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Ssc"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.SscSupportedMedia", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("Length") + .HasColumnType("INTEGER"); + + b.Property("MediumType") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Organization") + .HasColumnType("TEXT"); + + b.Property("SscId") + .HasColumnType("INTEGER"); + + b.Property("TestedSequentialMediaId") + .HasColumnType("INTEGER"); + + b.Property("Width") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SscId"); + + b.HasIndex("TestedSequentialMediaId"); + + b.ToTable("SscSupportedMedia"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.SupportedDensity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("BitsPerMm") + .HasColumnType("INTEGER"); + + b.Property("Capacity") + .HasColumnType("INTEGER"); + + b.Property("DefaultDensity") + .HasColumnType("INTEGER"); + + b.Property("Description") + .HasColumnType("TEXT"); + + b.Property("Duplicate") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Organization") + .HasColumnType("TEXT"); + + b.Property("PrimaryCode") + .HasColumnType("INTEGER"); + + b.Property("SecondaryCode") + .HasColumnType("INTEGER"); + + b.Property("SscId") + .HasColumnType("INTEGER"); + + b.Property("TestedSequentialMediaId") + .HasColumnType("INTEGER"); + + b.Property("Tracks") + .HasColumnType("INTEGER"); + + b.Property("Width") + .HasColumnType("INTEGER"); + + b.Property("Writable") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SscId"); + + b.HasIndex("TestedSequentialMediaId"); + + b.ToTable("SupportedDensity"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.TestedMedia", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AdipData") + .HasColumnType("BLOB"); + + b.Property("AtaId") + .HasColumnType("INTEGER"); + + b.Property("AtipData") + .HasColumnType("BLOB"); + + b.Property("BlockSize") + .HasColumnType("INTEGER"); + + b.Property("Blocks") + .HasColumnType("INTEGER"); + + b.Property("BluBcaData") + .HasColumnType("BLOB"); + + b.Property("BluDdsData") + .HasColumnType("BLOB"); + + b.Property("BluDiData") + .HasColumnType("BLOB"); + + b.Property("BluPacData") + .HasColumnType("BLOB"); + + b.Property("BluSaiData") + .HasColumnType("BLOB"); + + b.Property("C2PointersData") + .HasColumnType("BLOB"); + + b.Property("CHSId") + .HasColumnType("INTEGER"); + + b.Property("CanReadAACS") + .HasColumnType("INTEGER"); + + b.Property("CanReadADIP") + .HasColumnType("INTEGER"); + + b.Property("CanReadATIP") + .HasColumnType("INTEGER"); + + b.Property("CanReadBCA") + .HasColumnType("INTEGER"); + + b.Property("CanReadC2Pointers") + .HasColumnType("INTEGER"); + + b.Property("CanReadCMI") + .HasColumnType("INTEGER"); + + b.Property("CanReadCdScrambled") + .HasColumnType("INTEGER"); + + b.Property("CanReadCorrectedSubchannel") + .HasColumnType("INTEGER"); + + b.Property("CanReadCorrectedSubchannelWithC2") + .HasColumnType("INTEGER"); + + b.Property("CanReadDCB") + .HasColumnType("INTEGER"); + + b.Property("CanReadDDS") + .HasColumnType("INTEGER"); + + b.Property("CanReadDMI") + .HasColumnType("INTEGER"); + + b.Property("CanReadDiscInformation") + .HasColumnType("INTEGER"); + + b.Property("CanReadFirstTrackPreGap") + .HasColumnType("INTEGER"); + + b.Property("CanReadFullTOC") + .HasColumnType("INTEGER"); + + b.Property("CanReadHDCMI") + .HasColumnType("INTEGER"); + + b.Property("CanReadLayerCapacity") + .HasColumnType("INTEGER"); + + b.Property("CanReadLeadIn") + .HasColumnType("INTEGER"); + + b.Property("CanReadLeadOut") + .HasColumnType("INTEGER"); + + b.Property("CanReadMediaID") + .HasColumnType("INTEGER"); + + b.Property("CanReadMediaSerial") + .HasColumnType("INTEGER"); + + b.Property("CanReadPAC") + .HasColumnType("INTEGER"); + + b.Property("CanReadPFI") + .HasColumnType("INTEGER"); + + b.Property("CanReadPMA") + .HasColumnType("INTEGER"); + + b.Property("CanReadPQSubchannel") + .HasColumnType("INTEGER"); + + b.Property("CanReadPQSubchannelWithC2") + .HasColumnType("INTEGER"); + + b.Property("CanReadPRI") + .HasColumnType("INTEGER"); + + b.Property("CanReadRWSubchannel") + .HasColumnType("INTEGER"); + + b.Property("CanReadRWSubchannelWithC2") + .HasColumnType("INTEGER"); + + b.Property("CanReadRecordablePFI") + .HasColumnType("INTEGER"); + + b.Property("CanReadSpareAreaInformation") + .HasColumnType("INTEGER"); + + b.Property("CanReadTOC") + .HasColumnType("INTEGER"); + + b.Property("CanReadingIntersessionLeadIn") + .HasColumnType("INTEGER"); + + b.Property("CanReadingIntersessionLeadOut") + .HasColumnType("INTEGER"); + + b.Property("CmiData") + .HasColumnType("BLOB"); + + b.Property("CorrectedSubchannelData") + .HasColumnType("BLOB"); + + b.Property("CorrectedSubchannelWithC2Data") + .HasColumnType("BLOB"); + + b.Property("CurrentCHSId") + .HasColumnType("INTEGER"); + + b.Property("DcbData") + .HasColumnType("BLOB"); + + b.Property("Density") + .HasColumnType("INTEGER"); + + b.Property("DmiData") + .HasColumnType("BLOB"); + + b.Property("DvdAacsData") + .HasColumnType("BLOB"); + + b.Property("DvdBcaData") + .HasColumnType("BLOB"); + + b.Property("DvdDdsData") + .HasColumnType("BLOB"); + + b.Property("DvdLayerData") + .HasColumnType("BLOB"); + + b.Property("DvdSaiData") + .HasColumnType("BLOB"); + + b.Property("EmbossedPfiData") + .HasColumnType("BLOB"); + + b.Property("FullTocData") + .HasColumnType("BLOB"); + + b.Property("HLDTSTReadRawDVDData") + .HasColumnType("BLOB"); + + b.Property("HdCmiData") + .HasColumnType("BLOB"); + + b.Property("IdentifyData") + .HasColumnType("BLOB"); + + b.Property("IntersessionLeadInData") + .HasColumnType("BLOB"); + + b.Property("IntersessionLeadOutData") + .HasColumnType("BLOB"); + + b.Property("LBA48Sectors") + .HasColumnType("INTEGER"); + + b.Property("LBASectors") + .HasColumnType("INTEGER"); + + b.Property("LeadInData") + .HasColumnType("BLOB"); + + b.Property("LeadOutData") + .HasColumnType("BLOB"); + + b.Property("LogicalAlignment") + .HasColumnType("INTEGER"); + + b.Property("LongBlockSize") + .HasColumnType("INTEGER"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("MediaIsRecognized") + .HasColumnType("INTEGER"); + + b.Property("MediumType") + .HasColumnType("INTEGER"); + + b.Property("MediumTypeName") + .HasColumnType("TEXT"); + + b.Property("MmcId") + .HasColumnType("INTEGER"); + + b.Property("ModeSense10Data") + .HasColumnType("BLOB"); + + b.Property("ModeSense6Data") + .HasColumnType("BLOB"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("NecReadCddaData") + .HasColumnType("BLOB"); + + b.Property("NominalRotationRate") + .HasColumnType("INTEGER"); + + b.Property("PQSubchannelData") + .HasColumnType("BLOB"); + + b.Property("PQSubchannelWithC2Data") + .HasColumnType("BLOB"); + + b.Property("PfiData") + .HasColumnType("BLOB"); + + b.Property("PhysicalBlockSize") + .HasColumnType("INTEGER"); + + b.Property("PioneerReadCddaData") + .HasColumnType("BLOB"); + + b.Property("PioneerReadCddaMsfData") + .HasColumnType("BLOB"); + + b.Property("PlextorReadCddaData") + .HasColumnType("BLOB"); + + b.Property("PlextorReadRawDVDData") + .HasColumnType("BLOB"); + + b.Property("PmaData") + .HasColumnType("BLOB"); + + b.Property("PriData") + .HasColumnType("BLOB"); + + b.Property("RWSubchannelData") + .HasColumnType("BLOB"); + + b.Property("RWSubchannelWithC2Data") + .HasColumnType("BLOB"); + + b.Property("Read10Data") + .HasColumnType("BLOB"); + + b.Property("Read12Data") + .HasColumnType("BLOB"); + + b.Property("Read16Data") + .HasColumnType("BLOB"); + + b.Property("Read6Data") + .HasColumnType("BLOB"); + + b.Property("ReadCdData") + .HasColumnType("BLOB"); + + b.Property("ReadCdFullData") + .HasColumnType("BLOB"); + + b.Property("ReadCdMsfData") + .HasColumnType("BLOB"); + + b.Property("ReadCdMsfFullData") + .HasColumnType("BLOB"); + + b.Property("ReadCdScrambledData") + .HasColumnType("BLOB"); + + b.Property("ReadDmaData") + .HasColumnType("BLOB"); + + b.Property("ReadDmaLba48Data") + .HasColumnType("BLOB"); + + b.Property("ReadDmaLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadDmaRetryData") + .HasColumnType("BLOB"); + + b.Property("ReadDmaRetryLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadLba48Data") + .HasColumnType("BLOB"); + + b.Property("ReadLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadLong10Data") + .HasColumnType("BLOB"); + + b.Property("ReadLong16Data") + .HasColumnType("BLOB"); + + b.Property("ReadLongData") + .HasColumnType("BLOB"); + + b.Property("ReadLongLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadLongRetryData") + .HasColumnType("BLOB"); + + b.Property("ReadLongRetryLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadRetryLbaData") + .HasColumnType("BLOB"); + + b.Property("ReadSectorsData") + .HasColumnType("BLOB"); + + b.Property("ReadSectorsRetryData") + .HasColumnType("BLOB"); + + b.Property("ScsiId") + .HasColumnType("INTEGER"); + + b.Property("SolidStateDevice") + .HasColumnType("INTEGER"); + + b.Property("SupportsHLDTSTReadRawDVD") + .HasColumnType("INTEGER"); + + b.Property("SupportsNECReadCDDA") + .HasColumnType("INTEGER"); + + b.Property("SupportsPioneerReadCDDA") + .HasColumnType("INTEGER"); + + b.Property("SupportsPioneerReadCDDAMSF") + .HasColumnType("INTEGER"); + + b.Property("SupportsPlextorReadCDDA") + .HasColumnType("INTEGER"); + + b.Property("SupportsPlextorReadRawDVD") + .HasColumnType("INTEGER"); + + b.Property("SupportsRead10") + .HasColumnType("INTEGER"); + + b.Property("SupportsRead12") + .HasColumnType("INTEGER"); + + b.Property("SupportsRead16") + .HasColumnType("INTEGER"); + + b.Property("SupportsRead6") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCapacity") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCapacity16") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCd") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCdMsf") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCdMsfRaw") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadCdRaw") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadDma") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadDmaLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadDmaLba48") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadDmaRetry") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadDmaRetryLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLba48") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLong") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLong16") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLongLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLongRetry") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadLongRetryLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadRetry") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadRetryLba") + .HasColumnType("INTEGER"); + + b.Property("SupportsReadSectors") + .HasColumnType("INTEGER"); + + b.Property("SupportsSeek") + .HasColumnType("INTEGER"); + + b.Property("SupportsSeekLba") + .HasColumnType("INTEGER"); + + b.Property("TocData") + .HasColumnType("BLOB"); + + b.Property("Track1PregapData") + .HasColumnType("BLOB"); + + b.Property("UnformattedBPS") + .HasColumnType("INTEGER"); + + b.Property("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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CanReadMediaSerial") + .HasColumnType("INTEGER"); + + b.Property("Density") + .HasColumnType("INTEGER"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("MediaIsRecognized") + .HasColumnType("INTEGER"); + + b.Property("MediumType") + .HasColumnType("INTEGER"); + + b.Property("MediumTypeName") + .HasColumnType("TEXT"); + + b.Property("ModeSense10Data") + .HasColumnType("BLOB"); + + b.Property("ModeSense6Data") + .HasColumnType("BLOB"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("SscId") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("SscId"); + + b.ToTable("TestedSequentialMedia"); + }); + + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Usb", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Descriptors") + .HasColumnType("BLOB"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Product") + .HasColumnType("TEXT"); + + b.Property("ProductID") + .HasColumnType("INTEGER"); + + b.Property("RemovableMedia") + .HasColumnType("INTEGER"); + + b.Property("VendorID") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Usb"); + }); + + modelBuilder.Entity("Aaru.Database.Models.CdOffset", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AddedWhen") + .HasColumnType("TEXT"); + + b.Property("Agreement") + .HasColumnType("REAL"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("ModifiedWhen") + .HasColumnType("TEXT"); + + b.Property("Offset") + .HasColumnType("INTEGER"); + + b.Property("Submissions") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.HasIndex("ModifiedWhen"); + + b.ToTable("CdOffsets"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Command", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Commands"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ATAId") + .HasColumnType("INTEGER"); + + b.Property("ATAPIId") + .HasColumnType("INTEGER"); + + b.Property("CanReadGdRomUsingSwapDisc") + .HasColumnType("INTEGER"); + + b.Property("CompactFlash") + .HasColumnType("INTEGER"); + + b.Property("FireWireId") + .HasColumnType("INTEGER"); + + b.Property("GdRomSwapDiscCapabilitiesId") + .HasColumnType("INTEGER"); + + b.Property("LastSynchronized") + .HasColumnType("TEXT"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("MultiMediaCardId") + .HasColumnType("INTEGER"); + + b.Property("OptimalMultipleSectorsRead") + .HasColumnType("INTEGER"); + + b.Property("PCMCIAId") + .HasColumnType("INTEGER"); + + b.Property("Revision") + .HasColumnType("TEXT"); + + b.Property("SCSIId") + .HasColumnType("INTEGER"); + + b.Property("SecureDigitalId") + .HasColumnType("INTEGER"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.Property("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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Bus") + .HasColumnType("TEXT"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("Revision") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("SeenDevices"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Filesystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Filesystems"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Filter", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Filters"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Media", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Real") + .HasColumnType("INTEGER"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.Property("Type") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("Medias"); + }); + + modelBuilder.Entity("Aaru.Database.Models.MediaFormat", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("MediaFormats"); + }); + + modelBuilder.Entity("Aaru.Database.Models.OperatingSystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.Property("Version") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("OperatingSystems"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Partition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("Partitions"); + }); + + modelBuilder.Entity("Aaru.Database.Models.RemoteApplication", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.Property("Version") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("RemoteApplications"); + }); + + modelBuilder.Entity("Aaru.Database.Models.RemoteArchitecture", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("RemoteArchitectures"); + }); + + modelBuilder.Entity("Aaru.Database.Models.RemoteOperatingSystem", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("Synchronized") + .HasColumnType("INTEGER"); + + b.Property("Version") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.ToTable("RemoteOperatingSystems"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Report", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("ATAId") + .HasColumnType("INTEGER"); + + b.Property("ATAPIId") + .HasColumnType("INTEGER"); + + b.Property("CompactFlash") + .HasColumnType("INTEGER"); + + b.Property("Created") + .HasColumnType("TEXT"); + + b.Property("FireWireId") + .HasColumnType("INTEGER"); + + b.Property("GdRomSwapDiscCapabilitiesId") + .HasColumnType("INTEGER"); + + b.Property("Manufacturer") + .HasColumnType("TEXT"); + + b.Property("Model") + .HasColumnType("TEXT"); + + b.Property("MultiMediaCardId") + .HasColumnType("INTEGER"); + + b.Property("PCMCIAId") + .HasColumnType("INTEGER"); + + b.Property("Revision") + .HasColumnType("TEXT"); + + b.Property("SCSIId") + .HasColumnType("INTEGER"); + + b.Property("SecureDigitalId") + .HasColumnType("INTEGER"); + + b.Property("Type") + .HasColumnType("INTEGER"); + + b.Property("USBId") + .HasColumnType("INTEGER"); + + b.Property("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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AddedWhen") + .HasColumnType("TEXT"); + + b.Property("ModifiedWhen") + .HasColumnType("TEXT"); + + b.Property("Product") + .HasColumnType("TEXT"); + + b.Property("ProductId") + .HasColumnType("INTEGER"); + + b.Property("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("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AddedWhen") + .HasColumnType("TEXT"); + + b.Property("ModifiedWhen") + .HasColumnType("TEXT"); + + b.Property("Vendor") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("ModifiedWhen"); + + b.ToTable("UsbVendors"); + }); + + modelBuilder.Entity("Aaru.Database.Models.Version", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("Count") + .HasColumnType("INTEGER"); + + b.Property("Name") + .HasColumnType("TEXT"); + + b.Property("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); + }); + + 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); + }); + + 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); + }); + + 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); + }); + + 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); + }); + + 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); + }); + + modelBuilder.Entity("Aaru.Database.Models.UsbProduct", b => + { + b.HasOne("Aaru.Database.Models.UsbVendor", "Vendor") + .WithMany("Products") + .HasForeignKey("VendorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.cs b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.cs new file mode 100644 index 000000000..9ffeadb1e --- /dev/null +++ b/Aaru.Database/Migrations/20200710170129_AddGdRomSwapDiscCapabilities.cs @@ -0,0 +1,161 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +namespace Aaru.Database.Migrations +{ + public partial class AddGdRomSwapDiscCapabilities : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn("GdRomSwapDiscCapabilitiesId", "Reports", nullable: true); + + migrationBuilder.AddColumn("GdRomSwapDiscCapabilitiesId", "Devices", nullable: true); + + migrationBuilder.CreateTable("GdRomSwapDiscCapabilities", table => new + { + Id = table.Column(nullable: false).Annotation("Sqlite:Autoincrement", true), + RecognizedSwapDisc = table.Column(nullable: false), + SwapDiscLeadOutPMIN = table.Column(nullable: false), + SwapDiscLeadOutPSEC = table.Column(nullable: false), + SwapDiscLeadOutPFRAM = table.Column(nullable: false), + SwapDiscLeadOutStart = table.Column(nullable: false), + Lba0Readable = table.Column(nullable: false), Lba0Data = table.Column(nullable: true), + Lba0Sense = table.Column(nullable: true), + Lba0DecodedSense = table.Column(nullable: true), + Lba0ScrambledReadable = table.Column(nullable: false), + Lba0ScrambledData = table.Column(nullable: true), + Lba0ScrambledSense = table.Column(nullable: true), + Lba0ScrambledDecodedSense = table.Column(nullable: true), + Lba44990Readable = table.Column(nullable: false), + Lba44990Data = table.Column(nullable: true), + Lba44990Sense = table.Column(nullable: true), + Lba44990DecodedSense = table.Column(nullable: true), + Lba44990ReadableCluster = table.Column(nullable: false), + Lba45000Readable = table.Column(nullable: false), + Lba45000Data = table.Column(nullable: true), + Lba45000Sense = table.Column(nullable: true), + Lba45000DecodedSense = table.Column(nullable: true), + Lba45000ReadableCluster = table.Column(nullable: false), + Lba50000Readable = table.Column(nullable: false), + Lba50000Data = table.Column(nullable: true), + Lba50000Sense = table.Column(nullable: true), + Lba50000DecodedSense = table.Column(nullable: true), + Lba50000ReadableCluster = table.Column(nullable: false), + Lba100000Readable = table.Column(nullable: false), + Lba100000Data = table.Column(nullable: true), + Lba100000Sense = table.Column(nullable: true), + Lba100000DecodedSense = table.Column(nullable: true), + Lba100000ReadableCluster = table.Column(nullable: false), + Lba400000Readable = table.Column(nullable: false), + Lba400000Data = table.Column(nullable: true), + Lba400000Sense = table.Column(nullable: true), + Lba400000DecodedSense = table.Column(nullable: true), + Lba400000ReadableCluster = table.Column(nullable: false), + Lba450000Readable = table.Column(nullable: false), + Lba450000Data = table.Column(nullable: true), + Lba450000Sense = table.Column(nullable: true), + Lba450000DecodedSense = table.Column(nullable: true), + Lba450000ReadableCluster = table.Column(nullable: false), + Lba44990PqReadable = table.Column(nullable: false), + Lba44990PqData = table.Column(nullable: true), + Lba44990PqSense = table.Column(nullable: true), + Lba44990PqDecodedSense = table.Column(nullable: true), + Lba44990PqReadableCluster = table.Column(nullable: false), + Lba45000PqReadable = table.Column(nullable: false), + Lba45000PqData = table.Column(nullable: true), + Lba45000PqSense = table.Column(nullable: true), + Lba45000PqDecodedSense = table.Column(nullable: true), + Lba45000PqReadableCluster = table.Column(nullable: false), + Lba50000PqReadable = table.Column(nullable: false), + Lba50000PqData = table.Column(nullable: true), + Lba50000PqSense = table.Column(nullable: true), + Lba50000PqDecodedSense = table.Column(nullable: true), + Lba50000PqReadableCluster = table.Column(nullable: false), + Lba100000PqReadable = table.Column(nullable: false), + Lba100000PqData = table.Column(nullable: true), + Lba100000PqSense = table.Column(nullable: true), + Lba100000PqDecodedSense = table.Column(nullable: true), + Lba100000PqReadableCluster = table.Column(nullable: false), + Lba400000PqReadable = table.Column(nullable: false), + Lba400000PqData = table.Column(nullable: true), + Lba400000PqSense = table.Column(nullable: true), + Lba400000PqDecodedSense = table.Column(nullable: true), + Lba400000PqReadableCluster = table.Column(nullable: false), + Lba450000PqReadable = table.Column(nullable: false), + Lba450000PqData = table.Column(nullable: true), + Lba450000PqSense = table.Column(nullable: true), + Lba450000PqDecodedSense = table.Column(nullable: true), + Lba450000PqReadableCluster = table.Column(nullable: false), + Lba44990RwReadable = table.Column(nullable: false), + Lba44990RwData = table.Column(nullable: true), + Lba44990RwSense = table.Column(nullable: true), + Lba44990RwDecodedSense = table.Column(nullable: true), + Lba44990RwReadableCluster = table.Column(nullable: false), + Lba45000RwReadable = table.Column(nullable: false), + Lba45000RwData = table.Column(nullable: true), + Lba45000RwSense = table.Column(nullable: true), + Lba45000RwDecodedSense = table.Column(nullable: true), + Lba45000RwReadableCluster = table.Column(nullable: false), + Lba50000RwReadable = table.Column(nullable: false), + Lba50000RwData = table.Column(nullable: true), + Lba50000RwSense = table.Column(nullable: true), + Lba50000RwDecodedSense = table.Column(nullable: true), + Lba50000RwReadableCluster = table.Column(nullable: false), + Lba100000RwReadable = table.Column(nullable: false), + Lba100000RwData = table.Column(nullable: true), + Lba100000RwSense = table.Column(nullable: true), + Lba100000RwDecodedSense = table.Column(nullable: true), + Lba100000RwReadableCluster = table.Column(nullable: false), + Lba400000RwReadable = table.Column(nullable: false), + Lba400000RwData = table.Column(nullable: true), + Lba400000RwSense = table.Column(nullable: true), + Lba400000RwDecodedSense = table.Column(nullable: true), + Lba400000RwReadableCluster = table.Column(nullable: false), + Lba450000RwReadable = table.Column(nullable: false), + Lba450000RwData = table.Column(nullable: true), + Lba450000RwSense = table.Column(nullable: true), + Lba450000RwDecodedSense = table.Column(nullable: true), + Lba450000RwReadableCluster = table.Column(nullable: false), + MinimumReadableSectorInHdArea = table.Column(nullable: false), + MaximumReadableSectorInHdArea = table.Column(nullable: false), + MaximumReadablePqInHdArea = table.Column(nullable: true), + MaximumReadableRwInHdArea = table.Column(nullable: true) + }, constraints: table => + { + table.PrimaryKey("PK_GdRomSwapDiscCapabilities", x => x.Id); + }); + + migrationBuilder.CreateIndex("IX_Reports_GdRomSwapDiscCapabilitiesId", "Reports", + "GdRomSwapDiscCapabilitiesId"); + + migrationBuilder.CreateIndex("IX_Devices_GdRomSwapDiscCapabilitiesId", "Devices", + "GdRomSwapDiscCapabilitiesId"); + + migrationBuilder.AddForeignKey("FK_Devices_GdRomSwapDiscCapabilities_GdRomSwapDiscCapabilitiesId", + "Devices", "GdRomSwapDiscCapabilitiesId", "GdRomSwapDiscCapabilities", + principalColumn: "Id", onDelete: ReferentialAction.Restrict); + + migrationBuilder.AddForeignKey("FK_Reports_GdRomSwapDiscCapabilities_GdRomSwapDiscCapabilitiesId", + "Reports", "GdRomSwapDiscCapabilitiesId", "GdRomSwapDiscCapabilities", + principalColumn: "Id", onDelete: ReferentialAction.Restrict); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey("FK_Devices_GdRomSwapDiscCapabilities_GdRomSwapDiscCapabilitiesId", + "Devices"); + + migrationBuilder.DropForeignKey("FK_Reports_GdRomSwapDiscCapabilities_GdRomSwapDiscCapabilitiesId", + "Reports"); + + migrationBuilder.DropTable("GdRomSwapDiscCapabilities"); + + migrationBuilder.DropIndex("IX_Reports_GdRomSwapDiscCapabilitiesId", "Reports"); + + migrationBuilder.DropIndex("IX_Devices_GdRomSwapDiscCapabilitiesId", "Devices"); + + migrationBuilder.DropColumn("GdRomSwapDiscCapabilitiesId", "Reports"); + + migrationBuilder.DropColumn("GdRomSwapDiscCapabilitiesId", "Devices"); + } + } +} \ No newline at end of file diff --git a/Aaru.Database/Migrations/AaruContextModelSnapshot.cs b/Aaru.Database/Migrations/AaruContextModelSnapshot.cs index c24060a57..0d8b3d189 100644 --- a/Aaru.Database/Migrations/AaruContextModelSnapshot.cs +++ b/Aaru.Database/Migrations/AaruContextModelSnapshot.cs @@ -97,6 +97,229 @@ namespace Aaru.Database.Migrations b.ToTable("FireWire"); }); + modelBuilder.Entity("Aaru.CommonTypes.Metadata.GdRomSwapDiscCapabilities", b => + { + b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER"); + + b.Property("Lba0Data").HasColumnType("BLOB"); + + b.Property("Lba0DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba0Readable").HasColumnType("INTEGER"); + + b.Property("Lba0ScrambledData").HasColumnType("BLOB"); + + b.Property("Lba0ScrambledDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba0ScrambledReadable").HasColumnType("INTEGER"); + + b.Property("Lba0ScrambledSense").HasColumnType("BLOB"); + + b.Property("Lba0Sense").HasColumnType("BLOB"); + + b.Property("Lba100000Data").HasColumnType("BLOB"); + + b.Property("Lba100000DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba100000PqData").HasColumnType("BLOB"); + + b.Property("Lba100000PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba100000PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba100000PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba100000PqSense").HasColumnType("BLOB"); + + b.Property("Lba100000Readable").HasColumnType("INTEGER"); + + b.Property("Lba100000ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba100000RwData").HasColumnType("BLOB"); + + b.Property("Lba100000RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba100000RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba100000RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba100000RwSense").HasColumnType("BLOB"); + + b.Property("Lba100000Sense").HasColumnType("BLOB"); + + b.Property("Lba400000Data").HasColumnType("BLOB"); + + b.Property("Lba400000DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba400000PqData").HasColumnType("BLOB"); + + b.Property("Lba400000PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba400000PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba400000PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba400000PqSense").HasColumnType("BLOB"); + + b.Property("Lba400000Readable").HasColumnType("INTEGER"); + + b.Property("Lba400000ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba400000RwData").HasColumnType("BLOB"); + + b.Property("Lba400000RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba400000RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba400000RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba400000RwSense").HasColumnType("BLOB"); + + b.Property("Lba400000Sense").HasColumnType("BLOB"); + + b.Property("Lba44990Data").HasColumnType("BLOB"); + + b.Property("Lba44990DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba44990PqData").HasColumnType("BLOB"); + + b.Property("Lba44990PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba44990PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba44990PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba44990PqSense").HasColumnType("BLOB"); + + b.Property("Lba44990Readable").HasColumnType("INTEGER"); + + b.Property("Lba44990ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba44990RwData").HasColumnType("BLOB"); + + b.Property("Lba44990RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba44990RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba44990RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba44990RwSense").HasColumnType("BLOB"); + + b.Property("Lba44990Sense").HasColumnType("BLOB"); + + b.Property("Lba450000Data").HasColumnType("BLOB"); + + b.Property("Lba450000DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba450000PqData").HasColumnType("BLOB"); + + b.Property("Lba450000PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba450000PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba450000PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba450000PqSense").HasColumnType("BLOB"); + + b.Property("Lba450000Readable").HasColumnType("INTEGER"); + + b.Property("Lba450000ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba450000RwData").HasColumnType("BLOB"); + + b.Property("Lba450000RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba450000RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba450000RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba450000RwSense").HasColumnType("BLOB"); + + b.Property("Lba450000Sense").HasColumnType("BLOB"); + + b.Property("Lba45000Data").HasColumnType("BLOB"); + + b.Property("Lba45000DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba45000PqData").HasColumnType("BLOB"); + + b.Property("Lba45000PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba45000PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba45000PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba45000PqSense").HasColumnType("BLOB"); + + b.Property("Lba45000Readable").HasColumnType("INTEGER"); + + b.Property("Lba45000ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba45000RwData").HasColumnType("BLOB"); + + b.Property("Lba45000RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba45000RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba45000RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba45000RwSense").HasColumnType("BLOB"); + + b.Property("Lba45000Sense").HasColumnType("BLOB"); + + b.Property("Lba50000Data").HasColumnType("BLOB"); + + b.Property("Lba50000DecodedSense").HasColumnType("TEXT"); + + b.Property("Lba50000PqData").HasColumnType("BLOB"); + + b.Property("Lba50000PqDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba50000PqReadable").HasColumnType("INTEGER"); + + b.Property("Lba50000PqReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba50000PqSense").HasColumnType("BLOB"); + + b.Property("Lba50000Readable").HasColumnType("INTEGER"); + + b.Property("Lba50000ReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba50000RwData").HasColumnType("BLOB"); + + b.Property("Lba50000RwDecodedSense").HasColumnType("TEXT"); + + b.Property("Lba50000RwReadable").HasColumnType("INTEGER"); + + b.Property("Lba50000RwReadableCluster").HasColumnType("INTEGER"); + + b.Property("Lba50000RwSense").HasColumnType("BLOB"); + + b.Property("Lba50000Sense").HasColumnType("BLOB"); + + b.Property("MaximumReadablePqInHdArea").HasColumnType("BLOB"); + + b.Property("MaximumReadableRwInHdArea").HasColumnType("BLOB"); + + b.Property("MaximumReadableSectorInHdArea").HasColumnType("INTEGER"); + + b.Property("MinimumReadableSectorInHdArea").HasColumnType("INTEGER"); + + b.Property("RecognizedSwapDisc").HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPFRAM").HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPMIN").HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutPSEC").HasColumnType("INTEGER"); + + b.Property("SwapDiscLeadOutStart").HasColumnType("INTEGER"); + + b.HasKey("Id"); + + b.ToTable("GdRomSwapDiscCapabilities"); + }); + modelBuilder.Entity("Aaru.CommonTypes.Metadata.Mmc", b => { b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER"); @@ -1022,6 +1245,8 @@ namespace Aaru.Database.Migrations b.Property("FireWireId").HasColumnType("INTEGER"); + b.Property("GdRomSwapDiscCapabilitiesId").HasColumnType("INTEGER"); + b.Property("LastSynchronized").HasColumnType("TEXT"); b.Property("Manufacturer").HasColumnType("TEXT"); @@ -1052,6 +1277,8 @@ namespace Aaru.Database.Migrations b.HasIndex("FireWireId"); + b.HasIndex("GdRomSwapDiscCapabilitiesId"); + b.HasIndex("MultiMediaCardId"); b.HasIndex("PCMCIAId"); @@ -1241,6 +1468,8 @@ namespace Aaru.Database.Migrations b.Property("FireWireId").HasColumnType("INTEGER"); + b.Property("GdRomSwapDiscCapabilitiesId").HasColumnType("INTEGER"); + b.Property("Manufacturer").HasColumnType("TEXT"); b.Property("Model").HasColumnType("TEXT"); @@ -1269,6 +1498,8 @@ namespace Aaru.Database.Migrations b.HasIndex("FireWireId"); + b.HasIndex("GdRomSwapDiscCapabilitiesId"); + b.HasIndex("MultiMediaCardId"); b.HasIndex("PCMCIAId"); @@ -1440,6 +1671,9 @@ namespace Aaru.Database.Migrations 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); @@ -1467,6 +1701,9 @@ namespace Aaru.Database.Migrations 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); diff --git a/Aaru.Database/Models/Device.cs b/Aaru.Database/Models/Device.cs index b37b98bb4..1b7b8a207 100644 --- a/Aaru.Database/Models/Device.cs +++ b/Aaru.Database/Models/Device.cs @@ -42,20 +42,21 @@ namespace Aaru.Database.Models public Device(DeviceReportV2 report) { - ATA = report.ATA; - ATAPI = report.ATAPI; - CompactFlash = report.CompactFlash; - FireWire = report.FireWire; - LastSynchronized = DateTime.UtcNow; - MultiMediaCard = report.MultiMediaCard; - PCMCIA = report.PCMCIA; - SCSI = report.SCSI; - SecureDigital = report.SecureDigital; - USB = report.USB; - Manufacturer = report.Manufacturer; - Model = report.Model; - Revision = report.Revision; - Type = report.Type; + ATA = report.ATA; + ATAPI = report.ATAPI; + CompactFlash = report.CompactFlash; + FireWire = report.FireWire; + LastSynchronized = DateTime.UtcNow; + MultiMediaCard = report.MultiMediaCard; + PCMCIA = report.PCMCIA; + SCSI = report.SCSI; + SecureDigital = report.SecureDigital; + USB = report.USB; + Manufacturer = report.Manufacturer; + Model = report.Model; + Revision = report.Revision; + Type = report.Type; + GdRomSwapDiscCapabilities = report.GdRomSwapDiscCapabilities; } public DateTime LastSynchronized { get; set; }