using System; using System.Collections.Generic; namespace line_gestao_api.Dtos { public sealed class LinesBatchExcelPreviewResultDto { public string? FileName { get; set; } public string? SheetName { get; set; } public int NextItemStart { get; set; } public int TotalRows { get; set; } public int ValidRows { get; set; } public int InvalidRows { get; set; } public int DuplicateRows { get; set; } public bool CanProceed { get; set; } public List HeaderErrors { get; set; } = new(); public List HeaderWarnings { get; set; } = new(); public List Rows { get; set; } = new(); } public sealed class LinesBatchExcelPreviewRowDto { public int SourceRowNumber { get; set; } public int? SourceItem { get; set; } public int? GeneratedItemPreview { get; set; } public bool Valid { get; set; } public bool DuplicateLinhaInFile { get; set; } public bool DuplicateChipInFile { get; set; } public bool DuplicateLinhaInSystem { get; set; } public bool DuplicateChipInSystem { get; set; } public CreateMobileLineDto Data { get; set; } = new(); public List Errors { get; set; } = new(); public List Warnings { get; set; } = new(); } public sealed class LinesBatchExcelIssueDto { public string? Column { get; set; } public string Message { get; set; } = string.Empty; } public sealed class AssignReservaLinesRequestDto { public string? ClienteDestino { get; set; } public string? UsuarioDestino { get; set; } public string? SkilDestino { get; set; } public List LineIds { get; set; } = new(); } public sealed class MoveLinesToReservaRequestDto { public List LineIds { get; set; } = new(); } public sealed class AssignReservaLinesResultDto { public int Requested { get; set; } public int Updated { get; set; } public int Failed { get; set; } public List Items { get; set; } = new(); } public sealed class AssignReservaLineItemResultDto { public Guid Id { get; set; } public int Item { get; set; } public string? Linha { get; set; } public string? Chip { get; set; } public string? ClienteAnterior { get; set; } public string? ClienteNovo { get; set; } public bool Success { get; set; } public string Message { get; set; } = string.Empty; } public sealed class BatchLineStatusUpdateRequestDto { // "block" | "unblock" public string? Action { get; set; } public string? BlockStatus { get; set; } public bool ApplyToAllFiltered { get; set; } public List LineIds { get; set; } = new(); // Filtros da tela Geral public string? Search { get; set; } public string? Skil { get; set; } public List Clients { get; set; } = new(); public string? AdditionalMode { get; set; } public string? AdditionalServices { get; set; } public string? Usuario { get; set; } } public sealed class BatchLineStatusUpdateResultDto { public int Requested { get; set; } public int Updated { get; set; } public int Failed { get; set; } public List Items { get; set; } = new(); } public sealed class BatchLineStatusUpdateItemResultDto { public Guid Id { get; set; } public int Item { get; set; } public string? Linha { get; set; } public string? Usuario { get; set; } public string? StatusAnterior { get; set; } public string? StatusNovo { get; set; } public bool Success { get; set; } public string Message { get; set; } = string.Empty; } }