Files
toir-light-v16/backend/src/employee/dto/create-employee.dto.ts
2026-04-25 16:04:45 +00:00

42 lines
1.2 KiB
TypeScript

import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { IsString, IsNotEmpty, IsEnum, IsOptional, IsNumber } from 'class-validator';
import { Role } from '@prisma/client';
export class CreateEmployeeDto {
@ApiProperty({ description: 'Номер сотрудника (Табельный номер)' })
@IsString()
@IsNotEmpty()
code: string;
@ApiProperty({ description: 'ФИО сотрудника' })
@IsString()
@IsNotEmpty()
fullName: string;
@ApiProperty({ enum: Role, enumName: 'Role', description: 'Роль сотрудника' })
@IsEnum(Role)
role: Role;
@ApiProperty({ description: 'Должность сотрудника' })
@IsString()
@IsNotEmpty()
position: string;
@ApiProperty({ required: false, description: 'Код руководителя' })
@IsString()
@IsOptional()
bossId?: string;
@ApiProperty({ required: false, description: 'Стоимость часа работы сотрудника' })
@IsNumber()
@IsOptional()
@Type(() => Number)
price?: number;
@ApiProperty({ required: false, description: 'Номер телефона' })
@IsNumber()
@IsOptional()
@Type(() => Number)
phoneNumber?: number;
}