using Books.Api.EventFlow.ReadModels;

namespace Books.Api.EventFlow.Repositories;

public interface IProductRepository
{
    Task<ProductReadModelDto?> GetByIdAsync(string id, CancellationToken cancellationToken = default);
    Task<IReadOnlyList<ProductReadModelDto>> GetByCompanyIdAsync(string companyId, CancellationToken cancellationToken = default);
    Task<IReadOnlyList<ProductReadModelDto>> GetActiveByCompanyIdAsync(string companyId, CancellationToken cancellationToken = default);
    Task<ProductReadModelDto?> GetByCompanyAndNumberAsync(string companyId, string productNumber, CancellationToken cancellationToken = default);
}
