using GestionIntegral.Api.Dtos.Auditoria;
using GestionIntegral.Api.Dtos.Impresion;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace GestionIntegral.Api.Services.Impresion
{
    public interface ITipoBobinaService
    {
        Task<IEnumerable<TipoBobinaDto>> ObtenerTodosAsync(string? denominacionFilter);
        Task<IEnumerable<TipoBobinaDto>> ObtenerTodosDropdownAsync();
        Task<TipoBobinaDto?> ObtenerPorIdAsync(int id);
        Task<(TipoBobinaDto? TipoBobina, string? Error)> CrearAsync(CreateTipoBobinaDto createDto, int idUsuario);
        Task<(bool Exito, string? Error)> ActualizarAsync(int id, UpdateTipoBobinaDto updateDto, int idUsuario);
        Task<(bool Exito, string? Error)> EliminarAsync(int id, int idUsuario);
        Task<IEnumerable<TipoBobinaHistorialDto>> ObtenerHistorialAsync(
        DateTime? fechaDesde, DateTime? fechaHasta,
        int? idUsuarioModifico, string? tipoModificacion,
        int? idTipoBobinaAfectado);
    }
}