diff --git a/backend/src/api/directors/directors.service.ts b/backend/src/api/directors/directors.service.ts
index 8a5374d891430d649b43115deecba26ec096caf1..417b72b7b154f802916de8fa7503a86beec70c20 100644
--- a/backend/src/api/directors/directors.service.ts
+++ b/backend/src/api/directors/directors.service.ts
@@ -2,14 +2,17 @@ import { Injectable } from '@nestjs/common';
 import { CreateDirectorDto } from './dto/create-director.dto';
 import { UpdateDirectorDto } from './dto/update-director.dto';
 import { PrismaService } from '../../prisma.service';
+import { plainToClass } from 'class-transformer';
+import { DirectorEntity } from './entities/director.entity';
 
 @Injectable()
 export class DirectorsService {
   constructor(private prisma: PrismaService) {}
 
   async create(createDirectorDto: CreateDirectorDto) {
+    const director = plainToClass(DirectorEntity, createDirectorDto);
     return await this.prisma.director.create({
-      data: createDirectorDto,
+      data: director,
     });
   }
 
@@ -26,12 +29,16 @@ export class DirectorsService {
   }
 
   async update(id: string, updateDirectorDto: UpdateDirectorDto) {
+    const updatedDirector = {
+      ...await this.findOne(id),
+      ...plainToClass(DirectorEntity, updateDirectorDto),
+    };
     return await this.prisma.director.update({
       where: {
         id,
       },
       data: {
-        ...updateDirectorDto,
+        ...updatedDirector,
       },
     });
   }
@@ -43,8 +50,8 @@ export class DirectorsService {
         deletedAt: null,
       },
       select: {
-        id: true
-      }
+        id: true,
+      },
     });
 
     if (directorMovie === undefined) {
diff --git a/backend/src/api/directors/dto/create-director.dto.ts b/backend/src/api/directors/dto/create-director.dto.ts
index f1c2bc82cf286ab2a88cd439b9d7abe6837e6021..35a268cb9eb49fd8307ee99323035f4472a1c8db 100644
--- a/backend/src/api/directors/dto/create-director.dto.ts
+++ b/backend/src/api/directors/dto/create-director.dto.ts
@@ -1,5 +1,23 @@
+import {
+  IsDate,
+  IsNotEmpty,
+  IsOptional,
+  IsString,
+  MaxDate,
+} from 'class-validator';
+
 export class CreateDirectorDto {
+  @IsNotEmpty()
+  @IsString()
   readonly name: string;
+
+  @IsNotEmpty()
+  @IsString()
   readonly surname: string;
-  readonly birthDate?: string;
+
+  @IsNotEmpty()
+  @IsDate()
+  @IsOptional()
+  @MaxDate(new Date())
+  readonly birthDate?: Date;
 }