using LittleShop.DTOs; namespace LittleShop.Services; public interface IProductService { Task> GetAllProductsAsync(); Task> GetProductsByCategoryAsync(Guid categoryId); Task GetProductByIdAsync(Guid id); Task CreateProductAsync(CreateProductDto createProductDto); Task UpdateProductAsync(Guid id, UpdateProductDto updateProductDto); Task DeleteProductAsync(Guid id); Task AddProductPhotoAsync(Guid productId, IFormFile file, string? altText = null); Task AddProductPhotoAsync(CreateProductPhotoDto photoDto); Task RemoveProductPhotoAsync(Guid productId, Guid photoId); Task> SearchProductsAsync(string searchTerm); // Product Multi-Buys Task CreateProductMultiBuyAsync(CreateProductMultiBuyDto createMultiBuyDto); Task UpdateProductMultiBuyAsync(Guid id, UpdateProductMultiBuyDto updateMultiBuyDto); Task DeleteProductMultiBuyAsync(Guid id); Task> GetProductMultiBuysAsync(Guid productId); Task GetProductMultiBuyByIdAsync(Guid id); // Product Variants Task CreateProductVariantAsync(CreateProductVariantDto createVariantDto); Task UpdateProductVariantAsync(Guid id, UpdateProductVariantDto updateVariantDto); Task DeleteProductVariantAsync(Guid id); Task> GetProductVariantsAsync(Guid productId); Task GetProductVariantByIdAsync(Guid id); }