import { Transform } from 'class-transformer'; import { IsInt, IsString, Length, Matches, Max, Min } from 'class-validator'; const trim = ({ value }: { value: unknown }) => (typeof value === 'string' ? value.trim() : value); /** Anlegen und Aendern eines Kontos der Kontenliste (quick-261002-fm5). */ export class HandelswareAccountDto { @Transform(trim) @IsString({ message: 'Der Name muss angegeben werden' }) @Length(1, 120, { message: 'Der Name muss 1 bis 120 Zeichen lang sein' }) @Matches(/^[^\t\r\n]*$/, { message: 'Der Name darf keine Tabulatoren oder Zeilenumbrüche enthalten', }) name!: string; @IsInt({ message: 'Das Gegenkonto muss eine ganze Zahl sein' }) @Min(1, { message: 'Das Gegenkonto muss mindestens 1 sein' }) @Max(999999999, { message: 'Das Gegenkonto darf höchstens 999999999 sein' }) gegenkonto!: number; @IsInt({ message: 'Das Erlöskonto muss eine ganze Zahl sein' }) @Min(1, { message: 'Das Erlöskonto muss mindestens 1 sein' }) @Max(999999999, { message: 'Das Erlöskonto darf höchstens 999999999 sein' }) erloeskonto!: number; }