using GestionIntegral.Api.Dtos.Suscripciones;

namespace GestionIntegral.Api.Services.Suscripciones
{
    public interface ISuscripcionService
    {
        Task<SuscripcionDto?> ObtenerPorId(int idSuscripcion);
        Task<IEnumerable<SuscripcionDto>> ObtenerPorSuscriptorId(int idSuscriptor);
        Task<(SuscripcionDto? Suscripcion, string? Error)> Crear(CreateSuscripcionDto createDto, int idUsuario);
        Task<(bool Exito, string? Error)> Actualizar(int idSuscripcion, UpdateSuscripcionDto updateDto, int idUsuario);
        Task<IEnumerable<PromocionAsignadaDto>> ObtenerPromocionesAsignadas(int idSuscripcion);
        Task<IEnumerable<PromocionDto>> ObtenerPromocionesDisponibles(int idSuscripcion);
        Task<(bool Exito, string? Error)> AsignarPromocion(int idSuscripcion, AsignarPromocionDto dto, int idUsuario);
        Task<(bool Exito, string? Error)> QuitarPromocion(int idSuscripcion, int idPromocion);
    }
}