using Microsoft.AspNetCore.Mvc; using Nop.Core; using Nop.Core.Domain.Orders; using Nop.Plugin.Misc.AuctionPlugin.Domains; using Nop.Plugin.Misc.AuctionPlugin.Domains.Dtos; using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; using Nop.Services.Orders; namespace Nop.Plugin.Misc.AuctionPlugin.Services; /// /// Store pickup point service interface /// public interface IAuctionService { //decimal GetStepAmount(decimal currentPrice); /// /// Gets all bids /// /// The store identifier; pass 0 to load all records /// Page index /// Page size /// /// A task that represents the asynchronous operation /// The task result contains the bids /// Task> GetAllBidsAsync(int customerId = 0, int pageIndex = 0, int pageSize = int.MaxValue); Task GetBidsCountByProductToAuctionIdAsync(int productToAuctionId); Task GetBidByIdAsync(int bidId); Task InsertBidAsync(AuctionBid auctionBid); Task UpdateBidAsync(AuctionBid auctionBid); Task DeleteBidAsync(AuctionBid pickupPoint); Task InsertAuctionAsync(Auction auction); Task UpdateAuctionAsync(Auction auction); Task> GetAllAuctionsAsync(); Task GetAuctionDtoWithAuctionBids(int auctionId, bool activeProductOnly, int maxBidsCount); Task> GetProductToAuctionsByAuctionIdAsync(int auctionId, bool onlyActiveItems); Task GetAuctionDtoByIdAsync(int auctionId, bool widthProducts, bool activeProductOnly); Task> GetProductToAuctionDtosByAuctionId(int auctionId, bool activeProductOnly); Task GetAuctionDtoWithProductByIdAsync(int auctionId, int productId, bool activeProductOnly); Task GetProductToAuctionDtoByIdAsync(int productToAuctionId); Task GetAuctionBidDtoByIdAsync(int auctionBidId); Task AssignProductToAuctionAsync(int productId, decimal startingPrice, decimal bidPrice, int auctionId); Task> GetProductToAuctionsByProductIdAsync(int productId); Task> GetProductToAuctionByAuctionIdAndProductIdAsync(int auctionId, int productId, bool activeProductOnly); Task GetProductToAuctionMappingByIdAsync(int productToAuctionMappingId); Task UpdateProductToAuctionMappingAsync(ProductToAuctionMapping productToAuctionMapping); Task CreateOrderForWinnerAsync(ProductToAuctionMapping productToAuctionMapping); }