Executando verificação de segurança...
1

[ RESOLVIDO ] - DÚVIDA - [ NEST JS, PRISMA] - FUNÇÃO CONNECT NA CRIAÇÃO

RESOLUÇÃO:

Descobrir que o prisma já faz por padrão o que eu queria, apenas o connect.

Tenho uma tabela de modelos de carros, um carro só pode ter um modelo mas um modelo pode ter vários carros, usando o Nest e Prisma, ao criar o carro, não consigo fazer um apenas connect, para associar o carro a um modelo já existente, mas sim, apenas o connectOrCreate(caso não tenha, ele irá criar), como resolver isso?

// Tabela de carros

model Cars {
  id           Int          @id @default(autoincrement())
  plateNumber  String
  modelKey     Model?       @relation(fields: [model], references: [modelName])
  model        String?
}
// Tabela de modelos de carros

model Model {
  id        Int    @id @default(autoincrement())
  modelName String @unique
  Cars      Cars[]
}

TABELA DE CARROS
| id | plateNumber | model |
| --- | --- | | --- |
| 1 | YBR-1025 | STRADA

TABELA DE MODELOS
| id | modelName | Cars
| --- | --- | |--- |
| 1 | STRADA |[2 CARS]
| 2 | HILUX | [1 CARS]
| 1 | PÁLIO | [5 CARS]

Conteúdo do CreateCarDto:

import { Prisma } from '@prisma/client';
import { IsString } from 'class-validator';
import { Car } from '../entities/car.entity';

export class CreateCarDto extends Car {
  @IsString()
  plateNumber: string;

  @IsString()
  model?: string;
}

**Ao tentar criar usando o connect, não consigo obviamente porque o model está como String:
**

create(data: CreateCarDto) {
    return this.prisma.cars.create({
      data: {
        model: {
          connect: data.model,
        },
      },
    });
  }

Erro que o Vs Code mostra:

O tipo '{ connect: string; }' não pode ser atribuído ao tipo 'string'.ts(2322)
index.d.ts(16797, 5): O tipo esperado vem da propriedade 'model', que é declarada aqui no tipo '(Without<CarsCreateInput, CarsUncheckedCreateInput> & CarsUncheckedCreateInput) | (Without<...> & CarsCreateInput)'
(property) model: {
    connect: string;
}
Carregando publicação patrocinada...