using GestionIntegral.Api.Dtos.Distribucion;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace GestionIntegral.Api.Services.Distribucion
{
  public interface ICambioParadaService
  {
    Task<IEnumerable<CambioParadaDto>> ObtenerPorCanillaAsync(int idCanilla);
    Task<CambioParadaDto?> ObtenerPorIdAsync(int idRegistro);
    Task<(CambioParadaDto? Parada, string? Error)> CrearNuevaParadaAsync(int idCanilla, CreateCambioParadaDto createDto, int idUsuario);
    // Update podría ser solo para cerrar la vigencia, no para cambiar la dirección de una parada histórica.
    Task<(bool Exito, string? Error)> CerrarParadaAsync(int idRegistro, UpdateCambioParadaDto updateDto, int idUsuario);
    Task<(bool Exito, string? Error)> EliminarParadaAsync(int idRegistro, int idUsuario); // Si se permite
    Task<IEnumerable<CambioParadaHistorialDto>> ObtenerCambiosParadaHistorialAsync(
        DateTime? fechaDesde, DateTime? fechaHasta,
        int? idUsuarioModifico, string? tipoModificacion,
        int? idCanillaAfectado);
  }
}