From a32bbfa5d92c5f169e2785aedcedfd2189b010c7 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 3 Nov 2025 06:46:11 -0500 Subject: [PATCH] feat: add BomItem and LogEvent models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added BomItem model with sheet metal properties (thickness, k-factor, bend radius) and LogEvent model for structured logging with action tracking. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ExportDXF/Models/BomItem.cs | 32 ++++++++++++++++++++++++++++++++ ExportDXF/Models/LogEvent.cs | 22 ++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 ExportDXF/Models/BomItem.cs create mode 100644 ExportDXF/Models/LogEvent.cs diff --git a/ExportDXF/Models/BomItem.cs b/ExportDXF/Models/BomItem.cs new file mode 100644 index 0000000..3bd2a5b --- /dev/null +++ b/ExportDXF/Models/BomItem.cs @@ -0,0 +1,32 @@ +using System; + +namespace ExportDXF.Models +{ + public class BomItem + { + public int ID { get; set; } + public string ItemNo { get; set; } = ""; + public string PartNo { get; set; } = ""; + public int SortOrder { get; set; } + public int? Qty { get; set; } + public int? TotalQty { get; set; } + public string Description { get; set; } = ""; + public string PartName { get; set; } = ""; + public string ConfigurationName { get; set; } = ""; + public string Material { get; set; } = ""; + public int DrawingID { get; set; } + public int? CutTemplateID { get; set; } + public string CutTemplateName { get; set; } = ""; + + // Sheet metal properties from CutTemplate + public double? Thickness { get; set; } + public double? KFactor { get; set; } + public double? DefaultBendRadius { get; set; } + } + + public struct Size + { + public double Width { get; set; } + public double Height { get; set; } + } +} diff --git a/ExportDXF/Models/LogEvent.cs b/ExportDXF/Models/LogEvent.cs new file mode 100644 index 0000000..6945b47 --- /dev/null +++ b/ExportDXF/Models/LogEvent.cs @@ -0,0 +1,22 @@ +using System; + +namespace ExportDXF.Models +{ + public enum LogLevel { Info, Warning, Error } + + public enum LogAction { Start, FindBom, CreateFlat, FlipView, SavePdf, UploadPdf, UploadDxf, CreateBomItem } + + public sealed class LogEvent + { + public DateTime Time { get; set; } = DateTime.Now; + public LogLevel Level { get; set; } + public string Equipment { get; set; } = ""; + public string Drawing { get; set; } = ""; + public string Part { get; set; } = ""; + public LogAction Action { get; set; } + public string Target { get; set; } = ""; + public string Result { get; set; } = "OK"; + public int DurationMs { get; set; } + public string Message { get; set; } = ""; + } +} \ No newline at end of file