using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace OpenNest.Data;
public class ThicknessConfig
{
public double Value { get; set; }
/// Optional display name for the thickness, such as a gauge ("16 ga").
public string Name { get; set; } = "";
public double Kerf { get; set; }
public string AssistGas { get; set; } = "";
/// The lead-in of outside cuts (part perimeters), and of inside cuts while is null.
public LeadConfig LeadIn { get; set; } = new();
/// The lead-out of outside cuts, and of inside cuts while is null.
public LeadConfig LeadOut { get; set; } = new();
/// The lead-in of inside cuts (cutouts and holes); null uses .
public LeadConfig? InsideLeadIn { get; set; }
/// The lead-out of inside cuts; null uses .
public LeadConfig? InsideLeadOut { get; set; }
public CutOffConfig CutOff { get; set; } = new();
public List PlateSizes { get; set; } = new();
/// The part spacing of nests in this thickness; null keeps the nest defaults'.
public double? PartSpacing { get; set; }
/// The edge spacing of nests in this thickness; null keeps the nest defaults'.
public EdgeSpacingConfig? EdgeSpacing { get; set; }
///
/// Lead-in angle rounding, tabs and pierce for this thickness; null takes this PC's last
/// cutting settings.
///
public ThicknessCuttingConfig? Cutting { get; set; }
/// Fields a newer OpenNest wrote, kept so saving here does not drop them.
[JsonExtensionData]
public Dictionary? Unknown { get; set; }
}