import { ValidationArguments, ValidatorConstraint, ValidatorConstraintInterface, } from "class-validator"; @ValidatorConstraint({ name: "hasObjectionEntries", async: false }) export class HasObjectionEntriesConstraint implements ValidatorConstraintInterface { validate(_value: unknown, args: ValidationArguments): boolean { const o = args.object as { objectionParts?: unknown[]; newParts?: unknown[]; }; const partsLen = Array.isArray(o.objectionParts) ? o.objectionParts.length : 0; const newLen = Array.isArray(o.newParts) ? o.newParts.length : 0; return partsLen > 0 || newLen > 0; } defaultMessage(): string { return "Provide at least one entry in objectionParts and/or newParts."; } }