namespace IceImportDAL.DTO.IceImportPipeline; public class IceImportRowValidationResultDTO { // Globally unique across the whole mapped tree — RowNumber alone is only unique WITHIN one // entity level (HierarchyMapper numbers header rows 1..N and detail rows 1..M independently), // so CommitAsync's skip-on-error check keys off CorrelationKey, not RowNumber. public Guid CorrelationKey { get; set; } public int RowNumber { get; set; } public string EntityCode { get; set; } = string.Empty; public List Errors { get; set; } = new(); // True when at least one finding for this row is Severity.Error — CommitAsync skips such rows. public bool HasErrors => Errors.Any(e => e.Severity == IceImportSeverity.Error); }