import { openNotification } from 'client/Elements/Notification';
import { ICalculationStore } from 'core/types/Calculation/Store';
import { reaction } from 'mobx';

export default function ($calculation: ICalculationStore) {
  /**
     * @description
     * На изменение поля Процет убывания платежей tbxParmentsDecreasePercent необходимо заложить проверку:
     * Если значение поля меньше значения в поле "Минимальный % убывания платежей" evo_min_decreasing_perc из записи,
     * указанной в поле ТарифselectTarif , то поле Процет убывания платежей tbxParmentsDecreasePercent должно обводиться красной рамкой 
     * и выводиться сообщение "Процент убывания не может быть меньше минимального значения по данному тарифу
      - <указывается значение из поля "Минимальный % убывания платежей">, иначе красная рамка снимается.
     * При красной рамке в данном поле нельзя осуществить расчет графика.
     */
  reaction(
    () => {
      const { parmentsDecreasePercent } = $calculation.values;
      return {
        parmentsDecreasePercent,
        tarif: $calculation.getOption('selectTarif'),
      };
    },
    ({ parmentsDecreasePercent, tarif }) => {
      if (parmentsDecreasePercent < tarif?.evo_min_decreasing_perc) {
        $calculation.setValidation('tbxParmentsDecreasePercent', false);
        openNotification({
          type: 'error',
          message: 'Ошибка',
          description: `Процент убывания не может быть меньше минимального значения по данному тарифу - ${tarif?.evo_min_decreasing_perc}`,
        });
      } else {
        $calculation.setValidation('tbxParmentsDecreasePercent', undefined);
      }
    },
  );
}
