/* * Copyright © 2025 Hexastack. All rights reserved. * * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ import { registerDecorator, ValidationArguments, ValidationOptions, } from 'class-validator'; export function IsLessThanDate( property: string, validationOptions?: ValidationOptions, ) { return (object: object, propertyName: string) => { registerDecorator({ target: object.constructor, propertyName, constraints: [property], options: validationOptions, validator: { validate(value: any, args: ValidationArguments) { const [relatedPropertyName] = args.constraints; const relatedValue = args.object[relatedPropertyName]; if (relatedValue) { return value <= relatedValue; } return true; }, }, }); }; }