// Path: src/modules/common/decorators/exists-on-database.decorator.ts import { registerDecorator, ValidationOptions } from 'class-validator'; import { ExistsOnDatabaseValidator } from '../rules/exists-on-database.rule'; interface existsOnDatabaseOptions { model: string; column: string; } /** * Check if the value already exists for a entity on database. */ export function ExistsOnDatabase( existsOnDatabaseOptions: existsOnDatabaseOptions, validationOptions?: ValidationOptions, ) { return function (object: Object, propertyName: string) { registerDecorator({ target: object.constructor, propertyName: propertyName, options: validationOptions, constraints: [existsOnDatabaseOptions], validator: ExistsOnDatabaseValidator, }); }; } // Defining a decorator to use the custom rule