import { alphabetical } from 'radash';
import type { CalculationOptions } from 'stores/calculation/options/types';

export const selectSeasonType = [
  {
    label: '6/6',
    value: 100_000_000,
  },
  {
    label: '8/4',
    value: 100_000_001,
  },
  {
    label: '4/4/4',
    value: 100_000_002,
  },
  {
    label: 'Гибкая дегрессия',
    value: 100_000_007,
  },
  {
    label: '100.50.25',
    value: 100_000_003,
  },
  {
    label: '100.30.10',
    value: 100_000_004,
  },
  {
    label: '100.70.40',
    value: 100_000_005,
  },
  {
    label: '100.7.3',
    value: 100_000_006,
  },
];

export const selectHighSeasonStart = Array.from(
  {
    length: 12,
  },
  (_, i) => ({
    label: `${i + 2}`,
    value: 100_000_000 + i,
  })
);

const defaultOptions: CalculationOptions = {
  radioLastPaymentRule: [
    {
      label: 'в процентах',
      value: 100_000_001,
    },
    {
      label: 'в рублях',
      value: 100_000_000,
    },
    {
      label: 'равен платежу',
      value: 100_000_002,
    },
  ],

  radioBalanceHolder: [
    {
      label: 'Лизингополучатель',
      value: 100_000_000,
    },
    {
      label: 'Лизингодатель',
      value: 100_000_001,
    },
  ],

  radioGraphType: [
    {
      label: 'аннуитет',
      value: 100_000_000,
    },
    {
      label: 'дегрессия (ступенчатая)',
      value: 100_000_001,
    },
    {
      label: 'равноубывающий',
      value: 100_000_002,
    },
    {
      label: 'сезонный',
      value: 100_000_003,
    },
    {
      label: 'легкий старт',
      value: 100_000_004,
    },
  ],

  selectSeasonType,

  selectHighSeasonStart,

  radioDeliveryTime: [
    {
      label: 'В наличии',
      value: 100_000_000,
    },
    {
      label: 'В поставке',
      value: 100_000_001,
    },
  ],

  selectEngineType: [
    {
      label: 'Бензин',
      value: 100_000_000,
    },
    {
      label: 'Дизель',
      value: 100_000_001,
    },
    {
      label: 'Газ',
      value: 100_000_002,
    },
    {
      label: 'Электрический',
      value: 100_000_003,
    },
    {
      label: 'Гибрид',
      value: 100_000_004,
    },
  ],

  selectLeaseObjectCategory: [
    {
      label: 'A',
      value: 100_000_000,
    },
    {
      label: 'B',
      value: 100_000_001,
    },
    {
      label: 'C',
      value: 100_000_002,
    },
    {
      label: 'D',
      value: 100_000_003,
    },
    {
      label: 'Прицеп',
      value: 100_000_004,
    },
  ],

  selectLeaseObjectUseFor: alphabetical(
    [
      {
        label: 'Для представительских целей',
        value: 100_000_000,
      },
      {
        label: 'Для использования в качестве «такси»',
        value: 100_000_001,
      },
      {
        label: 'Для передачи третьим лицам (прокат; аренда)',
        value: 100_000_002,
      },
      {
        label: 'Каршеринг',
        value: 100_000_003,
      },
      {
        label: 'Тест-драйв',
        value: 100_000_004,
      },
      {
        label: 'Для доставки продуктов конечному потребителю',
        value: 100_000_005,
      },
      {
        label: 'Для обучения вождению',
        value: 100_000_006,
      },
      {
        label: 'Маршрутные такси / Рейсовые автобусы',
        value: 100_000_007,
      },
      {
        label: 'Междугородние перевозки',
        value: 100_000_008,
      },
      {
        label: 'Для перевозки крупногабаритных грузов',
        value: 100_000_009,
      },
      {
        label: 'Для перевозки малогабаритных грузов',
        value: 100_000_010,
      },
      {
        label: 'Для перевозки сотрудников других организаций (водитель ЛП)',
        value: 100_000_011,
      },
      {
        label: 'Для перевозки сотрудников ЛП',
        value: 100_000_012,
      },
      {
        label: 'Для экскурсионных перевозок в т.ч. на торжества; трансфер в аэропорт и пр.',
        value: 100_000_013,
      },
      {
        label: 'Дорожно-строительная техника',
        value: 100_000_014,
      },
      {
        label: 'Жилищно-коммунальное хозяйство',
        value: 100_000_015,
      },
      {
        label: 'Лесное хозяйство',
        value: 100_000_016,
      },
      {
        label: 'Подъёмно-транспортная отрасль',
        value: 100_000_017,
      },
      {
        label: 'Сельское хозяйство',
        value: 100_000_018,
      },
      {
        label: 'Строительство',
        value: 100_000_019,
      },
    ],
    (objectUseFor) => objectUseFor.label.toLowerCase(),
    'asc'
  ),

  radioInfuranceOPF: [
    {
      label: 'ЮЛ',
      value: 100_000_000,
    },
    {
      label: 'ИП',
      value: 100_000_001,
    },
  ],

  radioInsKaskoType: [
    {
      label: 'Полное',
      value: 100_000_000,
    },
    {
      label: 'Усеченное',
      value: 100_000_001,
    },
  ],

  radioQuoteContactGender: [
    {
      label: 'Мужской',
      value: 100_000_000,
    },
    {
      label: 'Женский',
      value: 100_000_001,
    },
  ],

  selectRequirementTelematic: [
    {
      label: 'Не требуется',
      value: 100_000_004,
    },
    {
      label: 'START',
      value: 100_000_000,
    },
    {
      label: 'START+',
      value: 100_000_001,
    },
    {
      label: 'COMFORT',
      value: 100_000_002,
    },
    {
      label: 'COMFORT+',
      value: 100_000_003,
    },
    {
      label: 'Omnicomm_1',
      value: 100_000_005,
    },
    {
      label: 'Omnicomm_2',
      value: 100_000_006,
    },
    {
      label: 'Omnicomm_3',
      value: 100_000_007,
    },
  ],
  radioCalcType: [
    {
      label: 'IRR',
      value: 100_000_000,
    },
    {
      label: 'Суммы',
      value: 100_000_001,
    },
  ],
  radioObjectRegistration: [
    {
      label: 'Лизингополучатель',
      value: 100_000_000,
    },
    {
      label: 'Лизингодатель',
      value: 100_000_001,
    },
  ],
  radioTypePTS: [
    {
      label: 'Бумажный',
      value: 100_000_000,
    },
    {
      label: 'Электронный',
      value: 100_000_001,
    },
  ],
  selectObjectCategoryTax: [
    'M1',
    'M2',
    'M3',
    'M1G',
    'M2G',
    'M3G',
    'N1',
    'N2',
    'N3',
    'N1G',
    'N2G',
    'N3G',
    'O1',
    'O2',
    'O3',
    'O4',
    'L1',
    'L2',
    'L3',
    'L4',
    'L5',
  ].map((label, i) => ({
    label,
    value: 100_000_000 + i,
  })),
  selectObjectTypeTax: [
    {
      label: 'Автобус',
      value: 100_000_000,
    },
    {
      label: 'Легковой',
      value: 100_000_001,
    },
    {
      label: 'Грузовой',
      value: 100_000_002,
    },
    {
      label: 'Спецтехника',
      value: 100_000_003,
    },
    {
      label: 'Мотоцикл',
      value: 100_000_004,
    },
  ],
  selectLead: [],
  selectOpportunity: [],
  selectQuote: [],
  cbxRecalcWithRevision: [],
  selectProduct: [],
  selectClientRisk: [],
  selectClientType: [],
  tbxLeaseObjectPrice: [],
  tbxLeaseObjectPriceWthtVAT: [],
  tbxVATInLeaseObjectPrice: [],
  tbxEngineHours: [],
  selectSupplierCurrency: [],
  tbxSupplierDiscountRub: [],
  tbxSupplierDiscountPerc: [],
  tbxLeasingPeriod: [],
  tbxFirstPaymentPerc: [],
  tbxFirstPaymentRub: [],
  tbxLastPaymentPerc: [],
  tbxLastPaymentRub: [],
  tbxRedemptionPaymentSum: [],
  tbxParmentsDecreasePercent: [],
  tbxComissionPerc: [],
  tbxComissionRub: [],
  tbxSaleBonus: [],
  tbxIRR_Perc: [],
  selectLeaseObjectType: [],
  labelDepreciationGroup: [],
  tbxLeaseObjectCount: [],
  cbxWithTrailer: [],
  cbxLeaseObjectUsed: [],
  tbxMaxMass: [],
  tbxCountSeats: [],
  tbxMaxSpeed: [],
  selectBrand: [],
  selectModel: [],
  selectConfiguration: [],
  tbxLeaseObjectYear: [],
  tbxLeaseObjectMotorPower: [],
  tbxEngineVolume: [],
  selectDealer: [],
  selectDealerPerson: [],
  selectDealerRewardCondition: [],
  tbxDealerRewardSumm: [],
  selectDealerBroker: [],
  selectDealerBrokerRewardCondition: [],
  tbxDealerBrokerRewardSumm: [],
  selectIndAgent: [],
  selectIndAgentRewardCondition: [],
  tbxIndAgentRewardSumm: [],
  selectCalcDoubleAgent: [],
  selectCalcDoubleAgentRewardCondition: [],
  tbxCalcDoubleAgentRewardSumm: [],
  selectCalcBroker: [],
  selectCalcBrokerRewardCondition: [],
  tbxCalcBrokerRewardSum: [],
  selectCalcFinDepartment: [],
  selectFinDepartmentRewardCondtion: [],
  tbxFinDepartmentRewardSumm: [],
  selectGPSBrand: [],
  selectGPSModel: [],
  selectRegionRegistration: [],
  selectTownRegistration: [],
  cbxInsDecentral: [],
  tbxInsFranchise: [],
  cbxInsUnlimitDrivers: [],
  tbxInsAgeDrivers: [],
  tbxInsExpDrivers: [],
  tbxINNForCalc: [],
  cbxLastPaymentRedemption: [],
  cbxPriceWithDiscount: [],
  cbxFullPriceWithDiscount: [],
  cbxCostIncrease: [],
  cbxInsurance: [],
  cbxRegistrationQuote: [],
  cbxTechnicalCardQuote: [],
  cbxNSIB: [],
  tbxQuoteName: [],
  cbxQuoteRedemptionGraph: [],
  cbxShowFinGAP: [],
  selectTarif: [],
  tbxCreditRate: [],
  selectRate: [],
  tbxMaxPriceChange: [],
  tbxImporterRewardPerc: [],
  tbxImporterRewardRub: [],
  cbxDisableChecks: [],
  selectRegistration: [],
  selectInsNSIB: [],
  selectTechnicalCard: [],
  selectTelematic: [],
  selectTracker: [],
  tbxMileage: [],
  tbxTotalPayments: [],
  selectObjectRegionRegistration: [],
  tbxVehicleTaxInYear: [],
  tbxVehicleTaxInLeasingPeriod: [],
  selectLegalClientRegion: [],
  selectLegalClientTown: [],
  selectSubsidy: [],
  tbxSubsidySum: [],
  selectFuelCard: [],
  tbxMinPriceChange: [],
  linkDownloadKp: [],
  selectImportProgram: [],
  tbxImportProgramSum: [],
  tbxAddEquipmentPrice: [],
  labelLeaseObjectRisk: [],
  tbxInsKaskoPriceLeasePeriod: [],
  labelIrrInfo: [],
  labelRegistrationDescription: [],
  linkLeadUrl: [],
  linkOpportunityUrl: [],
  linkQuoteUrl: [],
  tbxBonusCoefficient: [],
};

export default defaultOptions;
