using System.Collections.Immutable;
using Connected.Annotations;
using Connected.Notifications;
using Connected.ServiceModel;
namespace Logistics.Stock;
///
/// Represents the service which manipulates with stock items.
///
[Service]
[ServiceUrl(StockUrls.Stock)]
public interface IStockService : IServiceNotifications
{
///
/// Updates the stock items at the specified location.
///
///
Task Update(UpdateStockArgs args);
Task Select(PrimaryKeyArgs args);
Task Select(EntityArgs args);
///
/// Queries all stock items for the specified stock.
///
/// The arguments containing the id of the stock
/// The list of stock items that belong to the specified stock id.
Task> QueryItems(PrimaryKeyArgs args);
///
/// Queries stock items for the specified stock that are present in the specified
/// warehouse location.
///
/// The arguments containing the crieria used by query.
/// The list of stock items that are present in the specified warehouse location and
/// belong to the specified stock id.
Task> QueryItems(QueryStockItemsArgs args);
Task SelectItem(PrimaryKeyArgs args);
}