Files
marechai/Marechai.ApiClient/Models/SoftwareVersionBySoftwareCompilationDto.cs
Natalia Portillo effa7b6791 feat: Complete software compilation refactor across client, UI, and importer
Continues the prior commit (model/migrations/server) by finishing every
remaining consumer of the SoftwareCompilation entity introduced there.

- Regenerate Marechai.ApiClient from the updated OpenAPI schema: new
  SoftwareCompilations request builders and DTOs
  (SoftwareCompilationDto, SoftwareCompilationSuccessorDto,
  SoftwareBySoftwareCompilationDto, SoftwareVersionBySoftwareCompilationDto),
  SoftwareReleaseDto's IsCompilation replaced with SoftwareCompilationId/
  SoftwareCompilation. Commit the openapi.yaml snapshot used to drive the
  regeneration.

- Marechai (Blazor): add SoftwareCompilationsService and a full admin UI
  for the new entity (SoftwareCompilations grid + SoftwareCompilationDialog
  with bundled-software/machine pickers, predecessor/relationship type,
  and tabs for included software, included versions, sub-compilations,
  and releases) plus a public detail page at /software-compilation/{id}.
  SoftwareReleaseDialog drops the old IsCompilation checkbox and per-release
  included-items management in favor of a SoftwareCompilation autocomplete
  picker, since compilation membership now lives on the compilation entity
  itself rather than on individual releases. Updated every remaining
  IsCompilation/old-junction-DTO reference in release dialogs, the public
  release/software view pages, and the suggestion dialog. Search.razor now
  routes compilation rows to /software-compilation/{id} instead of a release.

- Marechai.App (Uno): mechanical fixes for the removed IsCompilation
  property and old junction DTOs, and the same scope cut as the Blazor
  app — included-items management removed from the release editor and
  read-only release view (that UI now belongs solely on the compilation),
  with the now-dead helper methods and XAML sections removed.

- Marechai.MobyGames: CompilationRelationService and ImportService now
  create a real SoftwareCompilation row instead of flipping a release flag,
  and resolve each contained slug to either a Software or an existing
  SoftwareCompilation. This fixes a long-standing bug where a slug
  previously converted into a compilation had no replacement pointer
  recorded on MobyGamesImportState, so re-encountering it as a nested
  member of another compilation could never resolve. Nested compilations
  are now linked via SoftwareCompilationBySoftwareCompilation.
  StateService.MarkImportedAsync gained a softwareCompilationId parameter,
  and OrphanCleanupService's software-merge dedup pass was re-keyed from
  the old release-keyed junction to SoftwareBySoftwareCompilation.

Full solution build is clean with no pending EF model changes against the
three migrations from the prior commit.
2026-06-26 04:54:35 +01:00

84 lines
4.0 KiB
C#

// <auto-generated/>
#pragma warning disable CS0618
using Microsoft.Kiota.Abstractions.Extensions;
using Microsoft.Kiota.Abstractions.Serialization;
using System.Collections.Generic;
using System.IO;
using System;
namespace Marechai.ApiClient.Models
{
[global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
#pragma warning disable CS1591
public partial class SoftwareVersionBySoftwareCompilationDto : IAdditionalDataHolder, IParsable
#pragma warning restore CS1591
{
/// <summary>Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.</summary>
public IDictionary<string, object> AdditionalData { get; set; }
/// <summary>The software_compilation_id property</summary>
public int? SoftwareCompilationId { get; set; }
/// <summary>The software_name property</summary>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public string? SoftwareName { get; set; }
#nullable restore
#else
public string SoftwareName { get; set; }
#endif
/// <summary>The software_version property</summary>
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
#nullable enable
public string? SoftwareVersion { get; set; }
#nullable restore
#else
public string SoftwareVersion { get; set; }
#endif
/// <summary>The software_version_id property</summary>
public int? SoftwareVersionId { get; set; }
/// <summary>
/// Instantiates a new <see cref="global::Marechai.ApiClient.Models.SoftwareVersionBySoftwareCompilationDto"/> and sets the default values.
/// </summary>
public SoftwareVersionBySoftwareCompilationDto()
{
AdditionalData = new Dictionary<string, object>();
}
/// <summary>
/// Creates a new instance of the appropriate class based on discriminator value
/// </summary>
/// <returns>A <see cref="global::Marechai.ApiClient.Models.SoftwareVersionBySoftwareCompilationDto"/></returns>
/// <param name="parseNode">The parse node to use to read the discriminator value and create the object</param>
public static global::Marechai.ApiClient.Models.SoftwareVersionBySoftwareCompilationDto CreateFromDiscriminatorValue(IParseNode parseNode)
{
if(ReferenceEquals(parseNode, null)) throw new ArgumentNullException(nameof(parseNode));
return new global::Marechai.ApiClient.Models.SoftwareVersionBySoftwareCompilationDto();
}
/// <summary>
/// The deserialization information for the current model
/// </summary>
/// <returns>A IDictionary&lt;string, Action&lt;IParseNode&gt;&gt;</returns>
public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
{
return new Dictionary<string, Action<IParseNode>>
{
{ "software_compilation_id", n => { SoftwareCompilationId = n.GetIntValue(); } },
{ "software_name", n => { SoftwareName = n.GetStringValue(); } },
{ "software_version", n => { SoftwareVersion = n.GetStringValue(); } },
{ "software_version_id", n => { SoftwareVersionId = n.GetIntValue(); } },
};
}
/// <summary>
/// Serializes information the current object
/// </summary>
/// <param name="writer">Serialization writer to use to serialize this model</param>
public virtual void Serialize(ISerializationWriter writer)
{
if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer));
writer.WriteIntValue("software_compilation_id", SoftwareCompilationId);
writer.WriteStringValue("software_name", SoftwareName);
writer.WriteStringValue("software_version", SoftwareVersion);
writer.WriteIntValue("software_version_id", SoftwareVersionId);
writer.WriteAdditionalData(AdditionalData);
}
}
}
#pragma warning restore CS0618