25 lines
880 B
TypeScript
25 lines
880 B
TypeScript
import { IsEmail, IsString, MinLength, IsOptional, IsEnum } from 'class-validator';
|
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { Role } from '@prisma/client';
|
|
|
|
export class RegistroDto {
|
|
@ApiProperty({ example: 'usuario@duorigin.com', description: 'Email do usuário' })
|
|
@IsEmail({}, { message: 'Email inválido' })
|
|
email: string;
|
|
|
|
@ApiProperty({ example: 'Senha123!', description: 'Senha do usuário' })
|
|
@IsString()
|
|
@MinLength(6, { message: 'Senha deve ter no mínimo 6 caracteres' })
|
|
password: string;
|
|
|
|
@ApiProperty({ example: 'João Silva', description: 'Nome completo do usuário' })
|
|
@IsString()
|
|
@MinLength(2, { message: 'Nome deve ter no mínimo 2 caracteres' })
|
|
nome: string;
|
|
|
|
@ApiPropertyOptional({ enum: Role, example: 'OPERADOR', description: 'Papel do usuário' })
|
|
@IsOptional()
|
|
@IsEnum(Role)
|
|
role?: Role;
|
|
}
|