import {
  MAX_FRANCHISE,
  MAX_INSURANCE,
  MIN_INSURANCE,
} from 'core/constants/stores/Calculation/limits';
import { ICalculationStore } from 'core/types/Calculation/Store';

export default function (
  this: ICalculationStore,
  insType,
  selectedKey: string,
) {
  const selectedRow = this.stores.ELTStore[insType].getCompany(selectedKey);
  const { accountid, kaskoSum, totalFranchise } = selectedRow;

  if (totalFranchise > MAX_FRANCHISE) {
    return {
      message: `Выбранный расчет ЭЛТ превышает максимально допустимое значение по франшизе (${MAX_FRANCHISE})`,
    };
  }

  if (kaskoSum > MAX_INSURANCE) {
    return {
      message: `Выбранный расчет ЭЛТ превышает максимально допустимое значение по стоимости КАСКО (${MAX_INSURANCE})`,
    };
  }

  if (kaskoSum < MIN_INSURANCE) {
    return {
      message: `Сумма по страховке не должна быть меньше ${MIN_INSURANCE}`,
    };
  }

  this.setValue('insFranchise', totalFranchise);

  this.setTableRows(
    'tableInsurance',
    1,
  )([
    {
      insuranceCompany: {
        value: accountid,
      },
      insCost: { value: kaskoSum },
    },
  ]);
}
