import { Transform } from 'class-transformer'; import { ArrayUnique, IsArray, IsString, IsUUID, Matches, MaxLength, MinLength, } from 'class-validator'; export class CreateRoleDto { @Transform(({ value }) => typeof value === 'string' ? value.trim().toLowerCase() : value, ) @IsString() @MinLength(3) @MaxLength(80) @Matches(/^[a-z][a-z0-9_-]+$/) code!: string; @Transform(({ value }) => (typeof value === 'string' ? value.trim() : value)) @IsString() @MinLength(1) @MaxLength(120) name!: string; @Transform(({ value }) => (typeof value === 'string' ? value.trim() : value)) @IsString() @MinLength(1) @MaxLength(1000) description!: string; @IsArray() @ArrayUnique() @IsUUID('4', { each: true }) permissionIds!: string[]; }