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

namespace GestionIntegral.Api.Services.Distribucion
{
    public interface IPorcMonCanillaService
    {
        Task<IEnumerable<PorcMonCanillaDto>> ObtenerPorPublicacionIdAsync(int idPublicacion);
        Task<PorcMonCanillaDto?> ObtenerPorIdAsync(int idPorcMon);
        Task<(PorcMonCanillaDto? Item, string? Error)> CrearAsync(CreatePorcMonCanillaDto createDto, int idUsuario);
        Task<(bool Exito, string? Error)> ActualizarAsync(int idPorcMon, UpdatePorcMonCanillaDto updateDto, int idUsuario);
        Task<(bool Exito, string? Error)> EliminarAsync(int idPorcMon, int idUsuario);
        Task<IEnumerable<PorcMonCanillaHistorialDto>> ObtenerHistorialAsync(
        DateTime? fechaDesde, DateTime? fechaHasta,
        int? idUsuarioModifico, string? tipoModificacion,
        int? idPorcMonAfectado, int? idPublicacionAfectada, int? idCanillaAfectado);
    }
}