Newer
Older
Warehouse / src / Application / Common / Dependencies / Services / IStockStatisticsService.cs
@Derek Comartin Derek Comartin on 22 Aug 2023 718 bytes Init
using MyWarehouse.Domain.Common.ValueObjects.Mass;
using MyWarehouse.Domain.Common.ValueObjects.Money;

namespace MyWarehouse.Application.Dependencies.Services;

public interface IStockStatisticsService
{
    /// <summary>
    /// Returns the aggregate mass of all stocked products.
    /// </summary>
    Task<Mass> GetProductStockTotalMass(MassUnit unit);

    /// <summary>
    /// Returns the aggregate value of all stocked products.
    /// </summary>
    Task<Money> GetProductStockTotalValue();

    /// <summary>
    /// Returns the number of individual products available, and the total number of stocked products.
    /// </summary>
    Task<(int ProductCount, int TotalStock)> GetProductStockCounts();
}