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;
}