using GestionIntegral.Api.Models.Suscripciones;
using System.Data;

namespace GestionIntegral.Api.Data.Repositories.Suscripciones
{
    public interface ISuscriptorRepository
    {
        Task<IEnumerable<Suscriptor>> GetAllAsync(string? nombreFilter, string? nroDocFilter, bool soloActivos);
        Task<Suscriptor?> GetByIdAsync(int id);
        Task<Suscriptor?> CreateAsync(Suscriptor nuevoSuscriptor, IDbTransaction transaction);
        Task<bool> UpdateAsync(Suscriptor suscriptorAActualizar, IDbTransaction transaction);
        Task<bool> ToggleActivoAsync(int id, bool activar, int idUsuario, IDbTransaction transaction);
        Task<bool> ExistsByDocumentoAsync(string tipoDocumento, string nroDocumento, int? excludeId = null);
        Task<bool> IsInUseAsync(int id);
    }
}