diff --git a/SabreTools.RedumpLib.Test/BuilderTests.cs b/SabreTools.RedumpLib.Test/BuilderTests.cs
index 3117f1a..7ba4ae9 100644
--- a/SabreTools.RedumpLib.Test/BuilderTests.cs
+++ b/SabreTools.RedumpLib.Test/BuilderTests.cs
@@ -1,10 +1,11 @@
using System;
using System.IO;
-using SabreTools.RedumpLib.Data;
using Xunit;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
namespace SabreTools.RedumpLib.Test
{
+ // TODO: Remove all references to redump.org submission information
public class BuilderTests
{
[Theory]
diff --git a/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs b/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
index c3ae1d8..8708f2f 100644
--- a/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
+++ b/SabreTools.RedumpLib.Test/Data/ExtensionsTests.cs
@@ -3,8 +3,11 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
using Xunit;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using SizeAndChecksumsSection = SabreTools.RedumpLib.RedumpOrg.Sections.SizeAndChecksumsSection;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
+using TracksAndWriteOffsetsSection = SabreTools.RedumpLib.RedumpOrg.Sections.TracksAndWriteOffsetsSection;
namespace SabreTools.RedumpLib.Test.Data
{
@@ -12,7 +15,7 @@ namespace SabreTools.RedumpLib.Test.Data
{
#region Non-Enumerable
-#region NormalizeDiscType
+ #region NormalizeDiscType
[Fact]
public void NormalizeDiscType_InvalidMedia_Untouched()
diff --git a/SabreTools.RedumpLib.Test/RedumpInfo/FormatterTests.cs b/SabreTools.RedumpLib.Test/RedumpInfo/FormatterTests.cs
index 155c9a4..1cbc4ee 100644
--- a/SabreTools.RedumpLib.Test/RedumpInfo/FormatterTests.cs
+++ b/SabreTools.RedumpLib.Test/RedumpInfo/FormatterTests.cs
@@ -3,9 +3,16 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
using SabreTools.RedumpLib.RedumpInfo;
using Xunit;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using CopyProtectionSection = SabreTools.RedumpLib.RedumpOrg.Sections.CopyProtectionSection;
+using DumpingInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.DumpingInfoSection;
+using EDCSection = SabreTools.RedumpLib.RedumpOrg.Sections.EDCSection;
+using ExtrasSection = SabreTools.RedumpLib.RedumpOrg.Sections.ExtrasSection;
+using SizeAndChecksumsSection = SabreTools.RedumpLib.RedumpOrg.Sections.SizeAndChecksumsSection;
+using TracksAndWriteOffsetsSection = SabreTools.RedumpLib.RedumpOrg.Sections.TracksAndWriteOffsetsSection;
+using VersionAndEditionsSection = SabreTools.RedumpLib.RedumpOrg.Sections.VersionAndEditionsSection;
namespace SabreTools.RedumpLib.Test.RedumpInfo
{
diff --git a/SabreTools.RedumpLib.Test/RedumpOrg/FormatterTests.cs b/SabreTools.RedumpLib.Test/RedumpOrg/FormatterTests.cs
index aea13c4..f97ea66 100644
--- a/SabreTools.RedumpLib.Test/RedumpOrg/FormatterTests.cs
+++ b/SabreTools.RedumpLib.Test/RedumpOrg/FormatterTests.cs
@@ -3,12 +3,20 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
using SabreTools.RedumpLib.RedumpOrg;
using Xunit;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using CopyProtectionSection = SabreTools.RedumpLib.RedumpOrg.Sections.CopyProtectionSection;
+using DumpingInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.DumpingInfoSection;
+using EDCSection = SabreTools.RedumpLib.RedumpOrg.Sections.EDCSection;
+using ExtrasSection = SabreTools.RedumpLib.RedumpOrg.Sections.ExtrasSection;
+using SizeAndChecksumsSection = SabreTools.RedumpLib.RedumpOrg.Sections.SizeAndChecksumsSection;
+using TracksAndWriteOffsetsSection = SabreTools.RedumpLib.RedumpOrg.Sections.TracksAndWriteOffsetsSection;
+using VersionAndEditionsSection = SabreTools.RedumpLib.RedumpOrg.Sections.VersionAndEditionsSection;
namespace SabreTools.RedumpLib.Test.RedumpOrg
{
+ // TODO: Remove all references to redump.org submission information
public class FormatterTests
{
#region ProcessSpecialFields
diff --git a/SabreTools.RedumpLib.Test/SubmissionInfoTests.cs b/SabreTools.RedumpLib.Test/SubmissionInfoTests.cs
index 9246364..8559504 100644
--- a/SabreTools.RedumpLib.Test/SubmissionInfoTests.cs
+++ b/SabreTools.RedumpLib.Test/SubmissionInfoTests.cs
@@ -2,11 +2,22 @@
using System.Collections.Generic;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
using Xunit;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using CopyProtectionSection = SabreTools.RedumpLib.RedumpOrg.Sections.CopyProtectionSection;
+using DumpersAndStatusSection = SabreTools.RedumpLib.RedumpOrg.Sections.DumpersAndStatusSection;
+using DumpingInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.DumpingInfoSection;
+using EDCSection = SabreTools.RedumpLib.RedumpOrg.Sections.EDCSection;
+using ExtrasSection = SabreTools.RedumpLib.RedumpOrg.Sections.ExtrasSection;
+using ParentCloneRelationshipSection = SabreTools.RedumpLib.RedumpOrg.Sections.ParentCloneRelationshipSection;
+using SizeAndChecksumsSection = SabreTools.RedumpLib.RedumpOrg.Sections.SizeAndChecksumsSection;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
+using TracksAndWriteOffsetsSection = SabreTools.RedumpLib.RedumpOrg.Sections.TracksAndWriteOffsetsSection;
+using VersionAndEditionsSection = SabreTools.RedumpLib.RedumpOrg.Sections.VersionAndEditionsSection;
namespace SabreTools.RedumpLib.Test
{
+ // TODO: Remove all references to redump.org submission information
public class SubmissionInfoTests
{
[Fact]
diff --git a/SabreTools.RedumpLib/Builder.cs b/SabreTools.RedumpLib/Builder.cs
index cee0b97..2764177 100644
--- a/SabreTools.RedumpLib/Builder.cs
+++ b/SabreTools.RedumpLib/Builder.cs
@@ -10,10 +10,13 @@ using System.Threading.Tasks;
using System.Xml;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
+using VersionAndEditionsSection = SabreTools.RedumpLib.RedumpOrg.Sections.VersionAndEditionsSection;
namespace SabreTools.RedumpLib
{
+ // TODO: Remove all references to redump.org submission information
public static class Builder
{
#region Creation
diff --git a/SabreTools.RedumpLib/Data/Extensions.cs b/SabreTools.RedumpLib/Data/Extensions.cs
index 955d3bd..675bf83 100644
--- a/SabreTools.RedumpLib/Data/Extensions.cs
+++ b/SabreTools.RedumpLib/Data/Extensions.cs
@@ -8,6 +8,7 @@ namespace SabreTools.RedumpLib.Data
///
/// Information pertaining to Redump systems
///
+ /// TODO: Remove all references to redump.org submission information
public static class Extensions
{
#region Non-Enumerable
@@ -39,7 +40,7 @@ namespace SabreTools.RedumpLib.Data
///
/// Existing SubmissionInfo object to fill
/// Corrected disc type, if possible
- public static void NormalizeDiscType(this SubmissionInfo info)
+ public static void NormalizeDiscType(this RedumpOrg.SubmissionInfo info)
{
// If we have nothing valid, do nothing
if (info.CommonDiscInfo.Media is null || info.SizeAndChecksums == default)
diff --git a/SabreTools.RedumpLib/Data/SubmissionInfo.cs b/SabreTools.RedumpLib/Data/SubmissionInfo.cs
index ac46b57..39ffab5 100644
--- a/SabreTools.RedumpLib/Data/SubmissionInfo.cs
+++ b/SabreTools.RedumpLib/Data/SubmissionInfo.cs
@@ -1,101 +1,26 @@
using System;
-using System.Collections.Generic;
using Newtonsoft.Json;
-using SabreTools.RedumpLib.Data.Sections;
namespace SabreTools.RedumpLib.Data
{
+ ///
+ /// redump.info submission page information
+ ///
+ /// TODO: Fill in specific details from redump.info
+ /// TODO: Copy in moderation-only sections, like
public class SubmissionInfo : ICloneable
{
///
/// Version of the current schema
///
[JsonProperty(PropertyName = "schema_version", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public int SchemaVersion { get; set; } = 3;
-
- ///
- /// Fully matched Redump ID
- ///
- [JsonIgnore]
- public int? FullyMatchedID { get; set; }
-
- ///
- /// List of partially matched Redump IDs
- ///
- [JsonIgnore]
- public List? PartiallyMatchedIDs { get; set; }
-
- ///
- /// DateTime of when the disc was added
- ///
- [JsonIgnore]
- public DateTime? Added { get; set; }
-
- ///
- /// DateTime of when the disc was last modified
- ///
- [JsonIgnore]
- public DateTime? LastModified { get; set; }
-
- [JsonProperty(PropertyName = "common_disc_info", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public CommonDiscInfoSection CommonDiscInfo { get; set; } = new CommonDiscInfoSection();
-
- [JsonProperty(PropertyName = "versions_and_editions", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public VersionAndEditionsSection VersionAndEditions { get; set; } = new VersionAndEditionsSection();
-
- [JsonProperty(PropertyName = "edc", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public EDCSection EDC { get; set; } = new EDCSection();
-
- [JsonProperty(PropertyName = "parent_clone_relationship", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public ParentCloneRelationshipSection ParentCloneRelationship { get; set; } = new ParentCloneRelationshipSection();
-
- [JsonProperty(PropertyName = "extras", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public ExtrasSection Extras { get; set; } = new ExtrasSection();
-
- [JsonProperty(PropertyName = "copy_protection", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public CopyProtectionSection CopyProtection { get; set; } = new CopyProtectionSection();
-
- [JsonProperty(PropertyName = "dumpers_and_status", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public DumpersAndStatusSection DumpersAndStatus { get; set; } = new DumpersAndStatusSection();
-
- [JsonProperty(PropertyName = "tracks_and_write_offsets", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public TracksAndWriteOffsetsSection TracksAndWriteOffsets { get; set; } = new TracksAndWriteOffsetsSection();
-
- [JsonProperty(PropertyName = "size_and_checksums", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public SizeAndChecksumsSection SizeAndChecksums { get; set; } = new SizeAndChecksumsSection();
-
- [JsonProperty(PropertyName = "dumping_info", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public DumpingInfoSection DumpingInfo { get; set; } = new DumpingInfoSection();
-
- [JsonProperty(PropertyName = "artifacts", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public Dictionary Artifacts { get; set; } = [];
+ public int SchemaVersion { get; set; } = 1;
public object Clone()
{
- Dictionary artifacts = [];
- foreach (var kvp in this.Artifacts)
- {
- artifacts[kvp.Key] = kvp.Value;
- }
-
return new SubmissionInfo
{
SchemaVersion = this.SchemaVersion,
- FullyMatchedID = this.FullyMatchedID,
- PartiallyMatchedIDs = this.PartiallyMatchedIDs,
- Added = this.Added,
- LastModified = this.LastModified,
- CommonDiscInfo = this.CommonDiscInfo?.Clone() as CommonDiscInfoSection ?? new CommonDiscInfoSection(),
- VersionAndEditions = this.VersionAndEditions?.Clone() as VersionAndEditionsSection ?? new VersionAndEditionsSection(),
- EDC = this.EDC?.Clone() as EDCSection ?? new EDCSection(),
- ParentCloneRelationship = this.ParentCloneRelationship?.Clone() as ParentCloneRelationshipSection ?? new ParentCloneRelationshipSection(),
- Extras = this.Extras?.Clone() as ExtrasSection ?? new ExtrasSection(),
- CopyProtection = this.CopyProtection?.Clone() as CopyProtectionSection ?? new CopyProtectionSection(),
- DumpersAndStatus = this.DumpersAndStatus?.Clone() as DumpersAndStatusSection ?? new DumpersAndStatusSection(),
- TracksAndWriteOffsets = this.TracksAndWriteOffsets?.Clone() as TracksAndWriteOffsetsSection ?? new TracksAndWriteOffsetsSection(),
- SizeAndChecksums = this.SizeAndChecksums?.Clone() as SizeAndChecksumsSection ?? new SizeAndChecksumsSection(),
- DumpingInfo = this.DumpingInfo?.Clone() as DumpingInfoSection ?? new DumpingInfoSection(),
- Artifacts = artifacts,
};
}
}
diff --git a/SabreTools.RedumpLib/RedumpInfo/Formatter.cs b/SabreTools.RedumpLib/RedumpInfo/Formatter.cs
index 96d33d7..6fba3ed 100644
--- a/SabreTools.RedumpLib/RedumpInfo/Formatter.cs
+++ b/SabreTools.RedumpLib/RedumpInfo/Formatter.cs
@@ -3,10 +3,19 @@ using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
+using CommonDiscInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.CommonDiscInfoSection;
+using CopyProtectionSection = SabreTools.RedumpLib.RedumpOrg.Sections.CopyProtectionSection;
+using DumpingInfoSection = SabreTools.RedumpLib.RedumpOrg.Sections.DumpingInfoSection;
+using EDCSection = SabreTools.RedumpLib.RedumpOrg.Sections.EDCSection;
+using ExtrasSection = SabreTools.RedumpLib.RedumpOrg.Sections.ExtrasSection;
+using SizeAndChecksumsSection = SabreTools.RedumpLib.RedumpOrg.Sections.SizeAndChecksumsSection;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
+using TracksAndWriteOffsetsSection = SabreTools.RedumpLib.RedumpOrg.Sections.TracksAndWriteOffsetsSection;
+using VersionAndEditionsSection = SabreTools.RedumpLib.RedumpOrg.Sections.VersionAndEditionsSection;
namespace SabreTools.RedumpLib.RedumpInfo
{
+ // TODO: Remove all references to redump.org submission information
public static class Formatter
{
///
diff --git a/SabreTools.RedumpLib/RedumpInfo/Validator.cs b/SabreTools.RedumpLib/RedumpInfo/Validator.cs
index 3053387..e9b114f 100644
--- a/SabreTools.RedumpLib/RedumpInfo/Validator.cs
+++ b/SabreTools.RedumpLib/RedumpInfo/Validator.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using SabreTools.RedumpLib.Data;
+using SubmissionInfo = SabreTools.RedumpLib.RedumpOrg.SubmissionInfo;
namespace SabreTools.RedumpLib.RedumpInfo
{
diff --git a/SabreTools.RedumpLib/RedumpOrg/Formatter.cs b/SabreTools.RedumpLib/RedumpOrg/Formatter.cs
index 5a1d84b..bf46792 100644
--- a/SabreTools.RedumpLib/RedumpOrg/Formatter.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Formatter.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using SabreTools.RedumpLib.Data;
-using SabreTools.RedumpLib.Data.Sections;
+using SabreTools.RedumpLib.RedumpOrg.Sections;
namespace SabreTools.RedumpLib.RedumpOrg
{
diff --git a/SabreTools.RedumpLib/Data/Sections/CommonDiscInfoSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/CommonDiscInfoSection.cs
similarity index 99%
rename from SabreTools.RedumpLib/Data/Sections/CommonDiscInfoSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/CommonDiscInfoSection.cs
index 092876f..0dfa9b9 100644
--- a/SabreTools.RedumpLib/Data/Sections/CommonDiscInfoSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/CommonDiscInfoSection.cs
@@ -2,9 +2,10 @@ using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Converters;
+using SabreTools.RedumpLib.Data;
using SabreTools.RedumpLib.RedumpOrg.Converters;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Common disc info section of New Disc Form
diff --git a/SabreTools.RedumpLib/Data/Sections/CopyProtectionSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/CopyProtectionSection.cs
similarity index 95%
rename from SabreTools.RedumpLib/Data/Sections/CopyProtectionSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/CopyProtectionSection.cs
index b08ee90..65e8a4b 100644
--- a/SabreTools.RedumpLib/Data/Sections/CopyProtectionSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/CopyProtectionSection.cs
@@ -2,8 +2,9 @@ using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Converters;
+using SabreTools.RedumpLib.Data;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Copy protection section of New Disc form
diff --git a/SabreTools.RedumpLib/Data/Sections/DumpersAndStatusSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/DumpersAndStatusSection.cs
similarity index 91%
rename from SabreTools.RedumpLib/Data/Sections/DumpersAndStatusSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/DumpersAndStatusSection.cs
index a08ff5e..3ecbd12 100644
--- a/SabreTools.RedumpLib/Data/Sections/DumpersAndStatusSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/DumpersAndStatusSection.cs
@@ -1,7 +1,8 @@
using System;
using Newtonsoft.Json;
+using SabreTools.RedumpLib.Data;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Dumpers and status section of New Disc form (Moderator only)
diff --git a/SabreTools.RedumpLib/Data/Sections/DumpingInfoSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/DumpingInfoSection.cs
similarity index 98%
rename from SabreTools.RedumpLib/Data/Sections/DumpingInfoSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/DumpingInfoSection.cs
index ee57cb8..95047a1 100644
--- a/SabreTools.RedumpLib/Data/Sections/DumpingInfoSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/DumpingInfoSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Dumping info section for moderation
diff --git a/SabreTools.RedumpLib/Data/Sections/EDCSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/EDCSection.cs
similarity index 86%
rename from SabreTools.RedumpLib/Data/Sections/EDCSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/EDCSection.cs
index 43261bf..6d1ddfe 100644
--- a/SabreTools.RedumpLib/Data/Sections/EDCSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/EDCSection.cs
@@ -1,8 +1,9 @@
using System;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Converters;
+using SabreTools.RedumpLib.Data;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// EDC section of New Disc form (PSX only)
diff --git a/SabreTools.RedumpLib/Data/Sections/ExtrasSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/ExtrasSection.cs
similarity index 96%
rename from SabreTools.RedumpLib/Data/Sections/ExtrasSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/ExtrasSection.cs
index ce68aac..8f9c0d3 100644
--- a/SabreTools.RedumpLib/Data/Sections/ExtrasSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/ExtrasSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Extras section of New Disc form
diff --git a/SabreTools.RedumpLib/Data/Sections/ParentCloneRelationshipSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/ParentCloneRelationshipSection.cs
similarity index 93%
rename from SabreTools.RedumpLib/Data/Sections/ParentCloneRelationshipSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/ParentCloneRelationshipSection.cs
index 538fa2d..1eae56f 100644
--- a/SabreTools.RedumpLib/Data/Sections/ParentCloneRelationshipSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/ParentCloneRelationshipSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Parent/Clone relationship section of New Disc form
diff --git a/SabreTools.RedumpLib/Data/Sections/SizeAndChecksumsSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/SizeAndChecksumsSection.cs
similarity index 95%
rename from SabreTools.RedumpLib/Data/Sections/SizeAndChecksumsSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/SizeAndChecksumsSection.cs
index 69f91ee..9f2bb0f 100644
--- a/SabreTools.RedumpLib/Data/Sections/SizeAndChecksumsSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/SizeAndChecksumsSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Size & checksums section of New Disc form (DVD/BD/UMD-based)
diff --git a/SabreTools.RedumpLib/Data/Sections/TracksAndWriteOffsetsSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/TracksAndWriteOffsetsSection.cs
similarity index 96%
rename from SabreTools.RedumpLib/Data/Sections/TracksAndWriteOffsetsSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/TracksAndWriteOffsetsSection.cs
index ada5730..036cab0 100644
--- a/SabreTools.RedumpLib/Data/Sections/TracksAndWriteOffsetsSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/TracksAndWriteOffsetsSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Tracks and write offsets section of New Disc form (CD/GD-based)
diff --git a/SabreTools.RedumpLib/Data/Sections/VersionAndEditionsSection.cs b/SabreTools.RedumpLib/RedumpOrg/Sections/VersionAndEditionsSection.cs
similarity index 95%
rename from SabreTools.RedumpLib/Data/Sections/VersionAndEditionsSection.cs
rename to SabreTools.RedumpLib/RedumpOrg/Sections/VersionAndEditionsSection.cs
index c498a7e..b4ab595 100644
--- a/SabreTools.RedumpLib/Data/Sections/VersionAndEditionsSection.cs
+++ b/SabreTools.RedumpLib/RedumpOrg/Sections/VersionAndEditionsSection.cs
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json;
-namespace SabreTools.RedumpLib.Data.Sections
+namespace SabreTools.RedumpLib.RedumpOrg.Sections
{
///
/// Version and editions section of New Disc form
diff --git a/SabreTools.RedumpLib/RedumpOrg/SubmissionInfo.cs b/SabreTools.RedumpLib/RedumpOrg/SubmissionInfo.cs
new file mode 100644
index 0000000..275b97f
--- /dev/null
+++ b/SabreTools.RedumpLib/RedumpOrg/SubmissionInfo.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using SabreTools.RedumpLib.RedumpOrg.Sections;
+
+namespace SabreTools.RedumpLib.RedumpOrg
+{
+ ///
+ /// redump.org submission page information
+ ///
+ public class SubmissionInfo : ICloneable
+ {
+ ///
+ /// Version of the current schema
+ ///
+ [JsonProperty(PropertyName = "schema_version", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public int SchemaVersion { get; set; } = 3;
+
+ ///
+ /// Fully matched Redump ID
+ ///
+ [JsonIgnore]
+ public int? FullyMatchedID { get; set; }
+
+ ///
+ /// List of partially matched Redump IDs
+ ///
+ [JsonIgnore]
+ public List? PartiallyMatchedIDs { get; set; }
+
+ ///
+ /// DateTime of when the disc was added
+ ///
+ [JsonIgnore]
+ public DateTime? Added { get; set; }
+
+ ///
+ /// DateTime of when the disc was last modified
+ ///
+ [JsonIgnore]
+ public DateTime? LastModified { get; set; }
+
+ [JsonProperty(PropertyName = "common_disc_info", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public CommonDiscInfoSection CommonDiscInfo { get; set; } = new CommonDiscInfoSection();
+
+ [JsonProperty(PropertyName = "versions_and_editions", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public VersionAndEditionsSection VersionAndEditions { get; set; } = new VersionAndEditionsSection();
+
+ [JsonProperty(PropertyName = "edc", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public EDCSection EDC { get; set; } = new EDCSection();
+
+ [JsonProperty(PropertyName = "parent_clone_relationship", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public ParentCloneRelationshipSection ParentCloneRelationship { get; set; } = new ParentCloneRelationshipSection();
+
+ [JsonProperty(PropertyName = "extras", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public ExtrasSection Extras { get; set; } = new ExtrasSection();
+
+ [JsonProperty(PropertyName = "copy_protection", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public CopyProtectionSection CopyProtection { get; set; } = new CopyProtectionSection();
+
+ [JsonProperty(PropertyName = "dumpers_and_status", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public DumpersAndStatusSection DumpersAndStatus { get; set; } = new DumpersAndStatusSection();
+
+ [JsonProperty(PropertyName = "tracks_and_write_offsets", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public TracksAndWriteOffsetsSection TracksAndWriteOffsets { get; set; } = new TracksAndWriteOffsetsSection();
+
+ [JsonProperty(PropertyName = "size_and_checksums", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public SizeAndChecksumsSection SizeAndChecksums { get; set; } = new SizeAndChecksumsSection();
+
+ [JsonProperty(PropertyName = "dumping_info", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public DumpingInfoSection DumpingInfo { get; set; } = new DumpingInfoSection();
+
+ [JsonProperty(PropertyName = "artifacts", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public Dictionary Artifacts { get; set; } = [];
+
+ public object Clone()
+ {
+ Dictionary artifacts = [];
+ foreach (var kvp in this.Artifacts)
+ {
+ artifacts[kvp.Key] = kvp.Value;
+ }
+
+ return new SubmissionInfo
+ {
+ SchemaVersion = this.SchemaVersion,
+ FullyMatchedID = this.FullyMatchedID,
+ PartiallyMatchedIDs = this.PartiallyMatchedIDs,
+ Added = this.Added,
+ LastModified = this.LastModified,
+ CommonDiscInfo = this.CommonDiscInfo?.Clone() as CommonDiscInfoSection ?? new CommonDiscInfoSection(),
+ VersionAndEditions = this.VersionAndEditions?.Clone() as VersionAndEditionsSection ?? new VersionAndEditionsSection(),
+ EDC = this.EDC?.Clone() as EDCSection ?? new EDCSection(),
+ ParentCloneRelationship = this.ParentCloneRelationship?.Clone() as ParentCloneRelationshipSection ?? new ParentCloneRelationshipSection(),
+ Extras = this.Extras?.Clone() as ExtrasSection ?? new ExtrasSection(),
+ CopyProtection = this.CopyProtection?.Clone() as CopyProtectionSection ?? new CopyProtectionSection(),
+ DumpersAndStatus = this.DumpersAndStatus?.Clone() as DumpersAndStatusSection ?? new DumpersAndStatusSection(),
+ TracksAndWriteOffsets = this.TracksAndWriteOffsets?.Clone() as TracksAndWriteOffsetsSection ?? new TracksAndWriteOffsetsSection(),
+ SizeAndChecksums = this.SizeAndChecksums?.Clone() as SizeAndChecksumsSection ?? new SizeAndChecksumsSection(),
+ DumpingInfo = this.DumpingInfo?.Clone() as DumpingInfoSection ?? new DumpingInfoSection(),
+ Artifacts = artifacts,
+ };
+ }
+ }
+}