Compare commits
1 Commits
dev
...
experiment
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a73d95598 |
@ -1,3 +1,5 @@
|
|||||||
|
import { MAX_FRANCHISE, MAX_LEASING_PERIOD } from 'constants/values';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
const ValuesSchema = z.object({
|
const ValuesSchema = z.object({
|
||||||
@ -8,65 +10,65 @@ const ValuesSchema = z.object({
|
|||||||
product: z.string().nullable(),
|
product: z.string().nullable(),
|
||||||
clientRisk: z.string().nullable(),
|
clientRisk: z.string().nullable(),
|
||||||
clientType: z.string().nullable(),
|
clientType: z.string().nullable(),
|
||||||
leaseObjectPrice: z.number(),
|
leaseObjectPrice: z.number().min(0).max(1_000_000_000),
|
||||||
supplierCurrency: z.string().nullable(),
|
supplierCurrency: z.string().nullable(),
|
||||||
supplierDiscountRub: z.number(),
|
supplierDiscountRub: z.number().min(0).max(1_000_000_000),
|
||||||
supplierDiscountPerc: z.number(),
|
supplierDiscountPerc: z.number().min(0).max(100),
|
||||||
leasingPeriod: z.number(),
|
leasingPeriod: z.number().min(13).max(MAX_LEASING_PERIOD),
|
||||||
firstPaymentPerc: z.number(),
|
firstPaymentPerc: z.number().min(0).max(50),
|
||||||
firstPaymentRub: z.number(),
|
firstPaymentRub: z.number().min(0).max(1_000_000_000),
|
||||||
lastPaymentPerc: z.number(),
|
lastPaymentPerc: z.number().min(0).max(70),
|
||||||
lastPaymentRub: z.number(),
|
lastPaymentRub: z.number().min(0).max(1_000_000_000),
|
||||||
lastPaymentRule: z.number().nullable(),
|
lastPaymentRule: z.number().nullable(),
|
||||||
importProgram: z.string().nullable(),
|
importProgram: z.string().nullable(),
|
||||||
importProgramSum: z.number(),
|
importProgramSum: z.number().min(0),
|
||||||
addEquipmentPrice: z.number(),
|
addEquipmentPrice: z.number().min(0),
|
||||||
redemptionPaymentSum: z.number(),
|
redemptionPaymentSum: z.number().min(1000).max(2000),
|
||||||
balanceHolder: z.number().nullable(),
|
balanceHolder: z.number().nullable(),
|
||||||
graphType: z.number().nullable(),
|
graphType: z.number().nullable(),
|
||||||
parmentsDecreasePercent: z.number(),
|
parmentsDecreasePercent: z.number().min(50).max(99),
|
||||||
seasonType: z.number().nullable(),
|
seasonType: z.number().nullable(),
|
||||||
highSeasonStart: z.number().nullable(),
|
highSeasonStart: z.number().nullable(),
|
||||||
comissionPerc: z.number(),
|
comissionPerc: z.number().min(0).max(100),
|
||||||
comissionRub: z.number(),
|
comissionRub: z.number().min(0).max(1_000_000_000),
|
||||||
saleBonus: z.number(),
|
saleBonus: z.number().min(0),
|
||||||
IRR_Perc: z.number(),
|
IRR_Perc: z.number().min(0).max(500),
|
||||||
leaseObjectType: z.string().nullable(),
|
leaseObjectType: z.string().nullable(),
|
||||||
deliveryTime: z.number().nullable(),
|
deliveryTime: z.number().nullable(),
|
||||||
leaseObjectCount: z.number(),
|
leaseObjectCount: z.number().min(1).max(1000),
|
||||||
withTrailer: z.boolean(),
|
withTrailer: z.boolean(),
|
||||||
leaseObjectUsed: z.boolean(),
|
leaseObjectUsed: z.boolean(),
|
||||||
maxMass: z.number(),
|
maxMass: z.number().min(0).max(999_999),
|
||||||
countSeats: z.number(),
|
countSeats: z.number().min(0).max(2000),
|
||||||
maxSpeed: z.number(),
|
maxSpeed: z.number().min(0).max(2000),
|
||||||
brand: z.string().nullable(),
|
brand: z.string().nullable(),
|
||||||
model: z.string().nullable(),
|
model: z.string().nullable(),
|
||||||
configuration: z.string().nullable(),
|
configuration: z.string().nullable(),
|
||||||
leaseObjectYear: z.number(),
|
leaseObjectYear: z.number().min(1994).max(dayjs().year()),
|
||||||
engineType: z.number().nullable(),
|
engineType: z.number().nullable(),
|
||||||
leaseObjectCategory: z.number().nullable(),
|
leaseObjectCategory: z.number().nullable(),
|
||||||
leaseObjectMotorPower: z.number(),
|
leaseObjectMotorPower: z.number().min(0).max(20_000),
|
||||||
engineVolume: z.number(),
|
engineVolume: z.number().min(0).max(99.9999),
|
||||||
leaseObjectUseFor: z.number().nullable(),
|
leaseObjectUseFor: z.number().nullable(),
|
||||||
dealer: z.string().nullable(),
|
dealer: z.string().nullable(),
|
||||||
dealerPerson: z.string().nullable(),
|
dealerPerson: z.string().nullable(),
|
||||||
dealerRewardCondition: z.string().nullable(),
|
dealerRewardCondition: z.string().nullable(),
|
||||||
dealerRewardSumm: z.number(),
|
dealerRewardSumm: z.number().min(0).max(20),
|
||||||
dealerBroker: z.string().nullable(),
|
dealerBroker: z.string().nullable(),
|
||||||
dealerBrokerRewardCondition: z.string().nullable(),
|
dealerBrokerRewardCondition: z.string().nullable(),
|
||||||
dealerBrokerRewardSumm: z.number(),
|
dealerBrokerRewardSumm: z.number().min(0).max(20),
|
||||||
indAgent: z.string().nullable(),
|
indAgent: z.string().nullable(),
|
||||||
indAgentRewardCondition: z.string().nullable(),
|
indAgentRewardCondition: z.string().nullable(),
|
||||||
indAgentRewardSumm: z.number(),
|
indAgentRewardSumm: z.number().min(0).max(20),
|
||||||
calcDoubleAgent: z.string().nullable(),
|
calcDoubleAgent: z.string().nullable(),
|
||||||
calcDoubleAgentRewardCondition: z.string().nullable(),
|
calcDoubleAgentRewardCondition: z.string().nullable(),
|
||||||
calcDoubleAgentRewardSumm: z.number(),
|
calcDoubleAgentRewardSumm: z.number().min(0).max(20),
|
||||||
calcBroker: z.string().nullable(),
|
calcBroker: z.string().nullable(),
|
||||||
calcBrokerRewardCondition: z.string().nullable(),
|
calcBrokerRewardCondition: z.string().nullable(),
|
||||||
calcBrokerRewardSum: z.number(),
|
calcBrokerRewardSum: z.number().min(0).max(20),
|
||||||
calcFinDepartment: z.string().nullable(),
|
calcFinDepartment: z.string().nullable(),
|
||||||
finDepartmentRewardCondtion: z.string().nullable(),
|
finDepartmentRewardCondtion: z.string().nullable(),
|
||||||
finDepartmentRewardSumm: z.number(),
|
finDepartmentRewardSumm: z.number().min(0).max(20),
|
||||||
GPSBrand: z.string().nullable(),
|
GPSBrand: z.string().nullable(),
|
||||||
GPSModel: z.string().nullable(),
|
GPSModel: z.string().nullable(),
|
||||||
regionRegistration: z.string().nullable(),
|
regionRegistration: z.string().nullable(),
|
||||||
@ -74,7 +76,7 @@ const ValuesSchema = z.object({
|
|||||||
infuranceOPF: z.number().nullable(),
|
infuranceOPF: z.number().nullable(),
|
||||||
insKaskoType: z.number().nullable(),
|
insKaskoType: z.number().nullable(),
|
||||||
insDecentral: z.boolean(),
|
insDecentral: z.boolean(),
|
||||||
insFranchise: z.number(),
|
insFranchise: z.number().min(0).max(MAX_FRANCHISE),
|
||||||
insUnlimitDrivers: z.boolean(),
|
insUnlimitDrivers: z.boolean(),
|
||||||
insAgeDrivers: z.number(),
|
insAgeDrivers: z.number(),
|
||||||
insExpDrivers: z.number(),
|
insExpDrivers: z.number(),
|
||||||
@ -92,26 +94,26 @@ const ValuesSchema = z.object({
|
|||||||
quoteRedemptionGraph: z.boolean(),
|
quoteRedemptionGraph: z.boolean(),
|
||||||
showFinGAP: z.boolean(),
|
showFinGAP: z.boolean(),
|
||||||
tarif: z.string().nullable(),
|
tarif: z.string().nullable(),
|
||||||
creditRate: z.number(),
|
creditRate: z.number().min(0).max(99.99),
|
||||||
rate: z.string().nullable(),
|
rate: z.string().nullable(),
|
||||||
requirementTelematic: z.number().nullable(),
|
requirementTelematic: z.number().nullable(),
|
||||||
minPriceChange: z.number(),
|
minPriceChange: z.number().min(0).max(34_999_990),
|
||||||
maxPriceChange: z.number(),
|
maxPriceChange: z.number().min(0).max(34_999_990),
|
||||||
importerRewardPerc: z.number(),
|
importerRewardPerc: z.number().min(0).max(99.99),
|
||||||
importerRewardRub: z.number(),
|
importerRewardRub: z.number().min(0).max(1_000_000_000),
|
||||||
disableChecks: z.boolean(),
|
disableChecks: z.boolean(),
|
||||||
registration: z.string().nullable(),
|
registration: z.string().nullable(),
|
||||||
insNSIB: z.string().nullable(),
|
insNSIB: z.string().nullable(),
|
||||||
technicalCard: z.string().nullable(),
|
technicalCard: z.string().nullable(),
|
||||||
telematic: z.string().nullable(),
|
telematic: z.string().nullable(),
|
||||||
tracker: z.string().nullable(),
|
tracker: z.string().nullable(),
|
||||||
mileage: z.number(),
|
mileage: z.number().min(0),
|
||||||
calcType: z.number().nullable(),
|
calcType: z.number().nullable(),
|
||||||
totalPayments: z.number(),
|
totalPayments: z.number().min(0),
|
||||||
objectRegistration: z.number().nullable(),
|
objectRegistration: z.number().nullable(),
|
||||||
objectRegionRegistration: z.string().nullable(),
|
objectRegionRegistration: z.string().nullable(),
|
||||||
vehicleTaxInYear: z.number(),
|
vehicleTaxInYear: z.number().min(0).max(9_999_999),
|
||||||
vehicleTaxInLeasingPeriod: z.number(),
|
vehicleTaxInLeasingPeriod: z.number().min(0).max(9_999_999),
|
||||||
objectCategoryTax: z.number().nullable(),
|
objectCategoryTax: z.number().nullable(),
|
||||||
objectTypeTax: z.number().nullable(),
|
objectTypeTax: z.number().nullable(),
|
||||||
typePTS: z.number().nullable(),
|
typePTS: z.number().nullable(),
|
||||||
@ -119,9 +121,9 @@ const ValuesSchema = z.object({
|
|||||||
legalClientTown: z.string().nullable(),
|
legalClientTown: z.string().nullable(),
|
||||||
subsidy: z.string().nullable(),
|
subsidy: z.string().nullable(),
|
||||||
fuelCard: z.string().nullable(),
|
fuelCard: z.string().nullable(),
|
||||||
leaseObjectPriceWthtVAT: z.number(),
|
leaseObjectPriceWthtVAT: z.number().min(0).max(1_000_000_000),
|
||||||
VATInLeaseObjectPrice: z.number(),
|
VATInLeaseObjectPrice: z.number().min(0).max(1_000_000_000),
|
||||||
engineHours: z.number(),
|
engineHours: z.number().min(0).max(10),
|
||||||
bonusCoefficient: z.number(),
|
bonusCoefficient: z.number(),
|
||||||
|
|
||||||
/** Link Values */
|
/** Link Values */
|
||||||
@ -132,11 +134,11 @@ const ValuesSchema = z.object({
|
|||||||
|
|
||||||
/** Readonly Values */
|
/** Readonly Values */
|
||||||
leaseObjectRiskName: z.string().nullable(),
|
leaseObjectRiskName: z.string().nullable(),
|
||||||
insKaskoPriceLeasePeriod: z.number(),
|
insKaskoPriceLeasePeriod: z.number().min(0),
|
||||||
irrInfo: z.string().nullable(),
|
irrInfo: z.string().nullable(),
|
||||||
registrationDescription: z.string().nullable(),
|
registrationDescription: z.string().nullable(),
|
||||||
depreciationGroup: z.string().nullable(),
|
depreciationGroup: z.string().nullable(),
|
||||||
subsidySum: z.number(),
|
subsidySum: z.number().min(0),
|
||||||
plPriceRub: z.number(),
|
plPriceRub: z.number(),
|
||||||
discountRub: z.number(),
|
discountRub: z.number(),
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user