namespace foodmarket.Application.Sales;

/// <summary>Правило достаточности оплаты розничного чека при проведении.
///
/// Сумма наличных + по карте должна покрывать итог чека. Переплата (сдача)
/// допустима, недоплата — нет (иначе касса может «провести» чек, не получив
/// денег). Округление до 2 знаков защищает от floating-point дрейфа.
///
/// Вынесено из <c>RetailSalesController.Post</c> для юнит-тестируемости —
/// контроллер вызывает этот метод для решения о проведении.</summary>
public static class RetailPaymentValidator
{
    public static bool IsSufficient(decimal paidCash, decimal paidCard, decimal total)
        => decimal.Round(paidCash + paidCard, 2) >= decimal.Round(total, 2);
}
