public class RentCalculatorResultDTO
{
    /// <summary>
    /// Тариф, по которому был рассчитана стоимость
    /// </summary>
    public TarifValue TarifValue { get; set; }
    /// <summary>
    /// Скидка на автомобиль
    /// </summary>
    public double AutoDiscount { get; set; } = 0;
    /// <summary>
    /// Скидка клиента
    /// </summary>
    public double ClientDiscount { get; set; } = 0;
    /// <summary>
    /// Скидка по тарифу
    /// </summary>
    public double TarifDiscount { get; set; } = 0;
    /// <summary>
    /// Базовая стоимость
    /// </summary>
    public double BasePrice { get; set; } = 0;
    /// <summary>
    /// Признак того, что базовая стоимость при расчете была установлена в произовл
    /// </summary>
    public bool IsCustomBasePrice { get; set; } = false;
    /// <summary>
    /// Текущая цена по тарифу
    /// </summary>
    public double CurrentPrice { get; set; } = 0;
    /// <summary>
    /// Текущая цена по тарифу со скидкой
    /// </summary>
    public double CurrentPriceWithDiscount { get; set; } = 0;
    /// <summary>
    /// Признак того, что текущая цена была установлена в произвольное значение
    /// </summary>
    public bool IsCustomCurrentPrice { get; set; } = false;
    /// <summary>
    /// Сумма договора
    /// </summary>
    public double ContractSum { get; set; } = 0;
    /// <summary>
    /// Итоговая сумма скидки
    /// </summary>
    public double DiscountSum { get; set; } = 0;
    /// <summary>
    /// Итоговый процент скидки (с учетом всех условий расчета)
    /// </summary>
    public double DiscountPercent { get; set; } = 0;
    /// <summary>
    /// Расчетное количество суток, дробная часть соответствует параметру DayHoursePart
    /// </summary>
    public decimal EstimatedDaysCount { get; set; } = 0;
    /// <summary>
    /// Признак того, что используется повышенный лимит по пробегу
    /// </summary>
    public bool IsUpperMilleageLimit { get; set; } = false;
    /// <summary>
    /// Суточный лимит пробега
    /// </summary>
    public long DaylyMilleageLimit { get; set; } = 0;
    /// <summary>
    /// Лимит пробега, расчитанный на основании параметра EstimatedDaysCount и значения лимита, полученного из первого дня тарифа
    /// </summary>
    public long MilleageLimit { get; set; } = 0;
    /// <summary>
    /// Часть суток, выраженная в десятичной форме, которая соответсвует кол-ву часов, превышающих сутки.
    /// Например, 1 сутки и три часа. Три часа тарифицируются как 60% суток, поэтому в DayHoursePart == 0.6.
    /// </summary>
    public decimal DayHoursePart { get; set; } = 0;

    /// <summary>
    /// Сумма дополнительных услуг
    /// </summary>
    public long AddServicesSum { get; set; }

    /// <summary>
    /// Список дополнительных услуг, которые были использованы при расчете стоимости договора
    /// </summary>
    public List<XL.Base.AddServices.ServicePriceItem> ServicesList { get; set; } = new List<XL.Base.AddServices.ServicePriceItem>();

    /// <summary>
    /// Полная стоимость договора, вычисляется как ContractSum + AddServicesSum - DiscountSum;
    /// </summary>
    public double TotalSum { get; set; } = 0;
}