Files
OpenNest/OpenNest.Data/SetReleaseNest.cs
T
ajandClaude Opus 5.5 44666b289d feat(server): record set releases and the nests they made
Releasing a drawing set makes one nest per material group, so a kit run
spans several nests. The server now records which set revision was
released, the multiplier and the nests it made, so a run can be tracked
across its nests and a nest can say where it came from.

The client uploads every nest first and posts the release last: a failure
part-way leaves ordinary nests and no release, never a release pointing at
missing nests. For the same reason a release is accepted for an older set
revision or an archived set, since the nests already exist by then. The
release id is client-allocated and a nest belongs to at most one release,
so a retried post gets 409 with the release that already holds it.

Releases are append-only and read joined to each nest's current metadata,
so status and deletion are always current. The tables join schema v7, as
the set tables have not shipped yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 13:27:27 -04:00

27 lines
809 B
C#

using OpenNest;
namespace OpenNest.Data;
/// <summary>One nest of a release and the material group it was made for.</summary>
public sealed class SetReleaseNest
{
public Guid NestId { get; set; }
public string MaterialName { get; set; } = "";
public string MaterialGrade { get; set; } = "";
/// <summary>Thickness in <see cref="Units"/>, stored rounded to four decimals.</summary>
public double Thickness { get; set; }
public Units Units { get; set; } = Units.Inches;
public CutType CutType { get; set; } = CutType.Laser;
/// <summary>
/// The nest's current metadata, deleted or not, joined by the server when it reads a
/// release, so status and deletion are always up to date. Ignored on post.
/// </summary>
public NestRecord? Nest { get; set; }
}