using CsvHelper.Configuration.Attributes; namespace PowderCoating.Application.DTOs.Import; /// /// DTO for importing inventory items from CSV files. /// public class InventoryItemImportDto { [Name("SKU")] public string SKU { get; set; } = string.Empty; // "Name" = old export header; "ItemName" = new export header [Name("ItemName", "Name")] public string ItemName { get; set; } = string.Empty; [Name("Description")] public string? Description { get; set; } // "Category" = old export header; "CategoryName" = new export header [Name("CategoryName", "Category")] public string? CategoryName { get; set; } [Name("Manufacturer")] public string? Manufacturer { get; set; } [Name("ManufacturerPartNumber")] public string? ManufacturerPartNumber { get; set; } // "Color" = old export header; "ColorName" = new export header [Name("ColorName", "Color")] public string? ColorName { get; set; } [Name("ColorCode")] public string? ColorCode { get; set; } [Name("Finish")] public string? Finish { get; set; } // Vendor name is used to look up PrimaryVendorId [Name("VendorName")] public string? VendorName { get; set; } [Name("VendorPartNumber")] public string? VendorPartNumber { get; set; } // "QuantityOnHand" / "Qty on Hand" = old export headers; "QuantityInStock" = new export header [Name("QuantityInStock", "QuantityOnHand", "Qty on Hand")] public decimal? QuantityInStock { get; set; } // "Unit" = old export header; "UnitOfMeasure" = new export header [Name("UnitOfMeasure", "Unit")] public string? UnitOfMeasure { get; set; } // "Unit Cost" = old export header; "UnitCost" = new export header [Name("UnitCost", "Unit Cost")] public decimal? UnitCost { get; set; } [Name("LastPurchasePrice")] public decimal? LastPurchasePrice { get; set; } // "Reorder Point" = old export header; "ReorderPoint" = new export header [Name("ReorderPoint", "Reorder Point")] public decimal? ReorderPoint { get; set; } [Name("ReorderQuantity")] public decimal? ReorderQuantity { get; set; } [Name("MinimumStock")] public decimal? MinimumStock { get; set; } [Name("MaximumStock")] public decimal? MaximumStock { get; set; } // Powder-specific coverage fields [Name("CoverageSqFtPerLb")] public decimal? CoverageSqFtPerLb { get; set; } [Name("TransferEfficiencyPct")] public decimal? TransferEfficiencyPct { get; set; } [Name("Location")] public string? Location { get; set; } // "Active" = old export header (Yes/No); "IsActive" = new export header (true/false) [Name("IsActive", "Active")] public bool? IsActive { get; set; } [Name("Notes")] public string? Notes { get; set; } }