using OpenNest; namespace OpenNest.Data; /// /// Server-side metadata for one revision of a shared library drawing. The geometry /// travels separately as a drawing package (a single-drawing, zero-plate .nest archive). /// public sealed class DrawingLibraryRecord { /// Allocated by the client before the first upload; kept by every revision. public Guid Id { get; set; } /// Immutable revision number, starting at 1. Ignored on upload. public int Revision { get; set; } public string Name { get; set; } = ""; public string Customer { get; set; } = ""; /// Post material name, for example "Carbon Steel". public string MaterialName { get; set; } = ""; /// Alloy or grade within the material, for example "A36 HR". public string MaterialGrade { get; set; } = ""; /// Thickness in , stored rounded to four decimals. public double Thickness { get; set; } public Units Units { get; set; } = Units.Inches; public CutType CutType { get; set; } = CutType.Laser; public string Notes { get; set; } = ""; /// /// Nesting settings applied when the drawing is added to a nest. Not part of the /// package, so changing them adds a revision that reuses the same package. /// public DrawingNestingSettings Settings { get; set; } = new(); /// Hidden from browsing by default; still readable by id. public bool Archived { get; set; } /// Lower-case hex SHA-256 of the package bytes. Server-computed. public string PackageSha256 { get; set; } = ""; /// Package size in bytes. Server-computed. public long PackageSize { get; set; } /// When the server stored this revision. Server-computed. public DateTime SavedAt { get; set; } /// Who saved this revision, as reported by the client. public string SavedBy { get; set; } = ""; }