HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/api-management/src/app/permisos/dto/parametro-menu.dto.ts
import {
  IsString,
  IsNotEmpty,
  MaxLength,
  IsBoolean,
  IsObject,
  ValidateNested,
  IsNumber,
  Max,
  IsMongoId,
} from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
import validationMessages from '../../../shared/messages/validationMessages';
import { Type } from 'class-transformer';
import { Types } from 'mongoose';

export class iconDto {
  @IsString({
    message: (args) => validationMessages.string(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.objectNotEmpty(args.property),
  })
  @MaxLength(30, {
    message: (args) => validationMessages.maxlength(args.property, 30),
  })
  codigo: string;
}

export class parametroMenuDto {
  @IsMongoId({
    message: (args) => validationMessages.isMongoId(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.required(args.property),
  })
  _id: Types.ObjectId;

  @ApiProperty({ description: 'Codigo del item que se va asignar' })
  @IsString({
    message: (args) => validationMessages.string(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.required(args.property),
  })
  @MaxLength(60, {
    message: (args) => validationMessages.maxlength(args.property, 60),
  })
  codigo: string;

  @ApiProperty({ description: 'Nombre del item que se va a asignar' })
  @IsString({
    message: (args) => validationMessages.string(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.required(args.property),
  })
  @MaxLength(50, {
    message: (args) => validationMessages.maxlength(args.property, 50),
  })
  nombre: string;

  @ApiProperty({ description: 'Codigo del icono para el item del menu' })
  @Type(() => iconDto)
  @IsObject({
    message: (args) => validationMessages.isObject(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.objectNotEmpty(args.property),
  })
  @ValidateNested({
    message: (args) => validationMessages.validateNested(args.property),
  })
  icon: iconDto;

  @ApiProperty({ description: 'Posicion del item en el menu' })
  @IsNumber(
    {},
    {
      message: (args) => validationMessages.number(args.property),
    },
  )
  @IsNotEmpty({
    message: (args) => validationMessages.objectNotEmpty(args.property),
  })
  @Max(20, {
    message: (args) => validationMessages.max(args.property, 20),
  })
  posicion: number;

  @ApiProperty({
    description: 'Define si el item hace parte del menu principal',
  })
  @IsBoolean({
    message: (args) => validationMessages.boolean(args.property),
  })
  @IsNotEmpty({
    message: (args) => validationMessages.objectNotEmpty(args.property),
  })
  showMenu: boolean;
}