Fields not required on the generated createDto but @unique in my prisma schema with prisma-generator-nestjs-dto

38 Views Asked by At

I am creating a nest-js server with prisma. I am using @carlundmahren/prisma-generator-nestjs-dto as dto generator.

The thing is that on the generated create-dto fields @unique in my schema prisma are required: false, nullable: true. To me it should be required in creation...

Here is my prisma.schema

generator nestjsDto {
  provider                        = "prisma-generator-nestjs-dto"
  output                          = "../src/generated/nestjs-dto"
  outputToNestJsResourceStructure = "true"
  flatResourceStructure           = "false"
  exportRelationModifierClasses   = "true"
  reExport                        = "true"
  createDtoPrefix                 = "Create"
  updateDtoPrefix                 = "Update"
  dtoSuffix                       = "Dto"
  entityPrefix                    = ""
  entitySuffix                    = ""
  classValidation                 = "true"
  fileNamingStyle                 = "camel"
  noDependencies                  = "false"
  outputType                      = "class"
  definiteAssignmentAssertion     = "true"
  prettier                        = "true"
  forceIdOnConnect                = "true"
}

model User {
  id          String       @id @default(cuid())
  createdAt   DateTime     @default(now())
  email       String       @unique()
  phone       String       @unique()
  firstname   String
}

and here is the generated file /src/generated/nestjs-dto/users/dto/create-user.dto.ts

export class CreateUserDto {
    @ApiProperty({
        required: false,
        nullable: true,
    })
    @IsOptional()
    @IsString()
    email?: string;

    @ApiProperty({
        required: false,
        nullable: true,
    })
    @IsOptional()
    @IsString()
    phone?: string;

    @ApiProperty({
        required: true,
    })
    @IsNotEmpty()
    @IsString()
    firstname!: string;
}

Both fields email and phone are @unique, so always required in a creation. But they are not in the generated dto...

Am I missing something ? Thanks a lot in advance for your time Hopefully someone can help me

0

There are 0 best solutions below