using CsvHelper.Configuration.Attributes; namespace PowderCoating.Application.DTOs.Import; /// /// DTO for importing expenses from CSV files. /// ExpenseNumber is optional — a new EXP-YYMM-#### number is generated when left blank. /// ExpenseAccountNumber and PaymentAccountNumber are matched against Account.AccountNumber. /// VendorName is matched against Vendor.CompanyName (optional). /// JobNumber is matched against Job.JobNumber (optional). /// PaymentMethod accepts: Cash, Check, CreditDebitCard, BankTransferACH, DigitalPayment. /// public class ExpenseImportDto { // Optional — auto-generated if blank [Name("ExpenseNumber")] public string? ExpenseNumber { get; set; } [Name("Date")] public DateTime Date { get; set; } // Optional — matched to Vendor by CompanyName [Name("VendorName")] public string? VendorName { get; set; } // Required — matched to Account by AccountNumber (e.g. "6200") [Name("ExpenseAccountNumber")] public string ExpenseAccountNumber { get; set; } = string.Empty; // Required — matched to Account by AccountNumber (e.g. "1000") [Name("PaymentAccountNumber")] public string PaymentAccountNumber { get; set; } = string.Empty; // Optional — matched to Job by JobNumber [Name("JobNumber")] public string? JobNumber { get; set; } [Name("PaymentMethod")] public string PaymentMethod { get; set; } = "Cash"; [Name("Amount")] public decimal Amount { get; set; } [Name("Memo")] public string? Memo { get; set; } }