Files
PowderCoatingLogix/src/PowderCoating.Application/DTOs/Import/InventoryItemImportDto.cs
T
2026-04-23 21:38:24 -04:00

92 lines
2.8 KiB
C#

using CsvHelper.Configuration.Attributes;
namespace PowderCoating.Application.DTOs.Import;
/// <summary>
/// DTO for importing inventory items from CSV files.
/// </summary>
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; }
}