using LittleShop.DTOs;

namespace LittleShop.Services;

public interface IProductService
{
    Task<IEnumerable<ProductDto>> GetAllProductsAsync();
    Task<IEnumerable<ProductDto>> GetProductsByCategoryAsync(Guid categoryId);
    Task<ProductDto?> GetProductByIdAsync(Guid id);
    Task<ProductDto> CreateProductAsync(CreateProductDto createProductDto);
    Task<bool> UpdateProductAsync(Guid id, UpdateProductDto updateProductDto);
    Task<bool> DeleteProductAsync(Guid id);
    Task<bool> AddProductPhotoAsync(Guid productId, IFormFile file, string? altText = null);
    Task<ProductPhotoDto?> AddProductPhotoAsync(CreateProductPhotoDto photoDto);
    Task<bool> RemoveProductPhotoAsync(Guid productId, Guid photoId);
    Task<IEnumerable<ProductDto>> SearchProductsAsync(string searchTerm);
}