29 lines
946 B
TypeScript
29 lines
946 B
TypeScript
import type { ValidationContext } from '../types';
|
||
import ValuesSchema from '@/config/schema/values';
|
||
import { z } from 'zod';
|
||
|
||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||
export function createValidationSchema(context: ValidationContext) {
|
||
return ValuesSchema.pick({
|
||
requirementTelematic: true,
|
||
telematic: true,
|
||
tracker: true,
|
||
}).superRefine(async ({ requirementTelematic, telematic, tracker }, ctx) => {
|
||
if (requirementTelematic !== 100_000_004 && !telematic && !tracker) {
|
||
ctx.addIssue({
|
||
code: z.ZodIssueCode.custom,
|
||
message: 'Не заполнено поле',
|
||
path: ['selectTracker', 'selectTelematic'],
|
||
});
|
||
}
|
||
|
||
if (requirementTelematic === 100_000_004 && (telematic || tracker)) {
|
||
ctx.addIssue({
|
||
code: z.ZodIssueCode.custom,
|
||
message: 'Не требуется',
|
||
path: ['selectTracker', 'selectTelematic'],
|
||
});
|
||
}
|
||
});
|
||
}
|