Compare commits

...

1 Commits

Author SHA1 Message Date
Chika
9a73d95598 config/schema: add min/max props 2022-11-12 12:40:49 +03:00

View File

@ -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(),
}); });