namespace line_gestao_api.Dtos; public class MveAuditRunDto { public Guid Id { get; set; } public string? FileName { get; set; } public string? FileEncoding { get; set; } public string Status { get; set; } = string.Empty; public DateTime ImportedAtUtc { get; set; } public DateTime? AppliedAtUtc { get; set; } public string? AppliedByUserName { get; set; } public string? AppliedByUserEmail { get; set; } public MveAuditSummaryDto Summary { get; set; } = new(); public List Issues { get; set; } = new(); } public class MveAuditSummaryDto { public int TotalSystemLines { get; set; } public int TotalReportLines { get; set; } public int TotalConciliated { get; set; } public int TotalStatusDivergences { get; set; } public int TotalDataDivergences { get; set; } public int TotalOnlyInSystem { get; set; } public int TotalOnlyInReport { get; set; } public int TotalDuplicateReportLines { get; set; } public int TotalDuplicateSystemLines { get; set; } public int TotalInvalidRows { get; set; } public int TotalUnknownStatuses { get; set; } public int TotalSyncableIssues { get; set; } public int AppliedIssuesCount { get; set; } public int AppliedLinesCount { get; set; } public int AppliedFieldsCount { get; set; } } public class MveAuditIssueDto { public Guid Id { get; set; } public int? SourceRowNumber { get; set; } public string NumeroLinha { get; set; } = string.Empty; public Guid? MobileLineId { get; set; } public int? SystemItem { get; set; } public string IssueType { get; set; } = string.Empty; public string Situation { get; set; } = string.Empty; public string Severity { get; set; } = "INFO"; public bool Syncable { get; set; } public bool Applied { get; set; } public string? ActionSuggestion { get; set; } public string? Notes { get; set; } public string? SystemStatus { get; set; } public string? ReportStatus { get; set; } public string? SystemPlan { get; set; } public string? ReportPlan { get; set; } public MveAuditSnapshotDto? SystemSnapshot { get; set; } public MveAuditSnapshotDto? ReportSnapshot { get; set; } public List Differences { get; set; } = new(); } public class MveAuditSnapshotDto { public string? NumeroLinha { get; set; } public string? StatusLinha { get; set; } public string? StatusConta { get; set; } public string? PlanoLinha { get; set; } public DateTime? DataAtivacao { get; set; } public DateTime? TerminoContrato { get; set; } public string? Chip { get; set; } public string? Conta { get; set; } public string? Cnpj { get; set; } public string? ModeloAparelho { get; set; } public string? Fabricante { get; set; } public List ServicosAtivos { get; set; } = new(); } public class MveAuditDifferenceDto { public string FieldKey { get; set; } = string.Empty; public string Label { get; set; } = string.Empty; public string? SystemValue { get; set; } public string? ReportValue { get; set; } public bool Syncable { get; set; } } public class ApplyMveAuditRequestDto { public List? IssueIds { get; set; } } public class ApplyMveAuditResultDto { public Guid AuditRunId { get; set; } public int RequestedIssues { get; set; } public int AppliedIssues { get; set; } public int UpdatedLines { get; set; } public int UpdatedFields { get; set; } public int SkippedIssues { get; set; } }