using SIGCM2.Application.Common;
using SIGCM2.Domain.Entities;

namespace SIGCM2.Application.Abstractions.Persistence;

public interface IPuntoDeVentaRepository
{
    Task<int> AddAsync(PuntoDeVenta pdv, CancellationToken ct = default);
    Task<PuntoDeVenta?> GetByIdAsync(int id, CancellationToken ct = default);
    Task<bool> ExistsByNumeroAFIPInMedioAsync(int medioId, short numeroAFIP, int? excludeId = null, CancellationToken ct = default);
    Task UpdateAsync(PuntoDeVenta pdv, CancellationToken ct = default);
    Task<PagedResult<PuntoDeVenta>> GetPagedAsync(PuntosDeVentaQuery q, CancellationToken ct = default);
}
