using CartWise.Application.DTOs;
using CartWise.Application.Results;

namespace CartWise.Application.Interfaces;

public interface IProductService
{
    Task<IReadOnlyList<ProductSummaryDto>> SearchAsync(string query, CancellationToken cancellationToken = default);

    Task<ProductDetailsDto?> GetDetailsAsync(Guid productId, CancellationToken cancellationToken = default);

    Task<Result<ProductDetailsDto>> ResolveBarcodeAsync(string barcode, CancellationToken cancellationToken = default);
}
