깜놀하는 해므찌로

@Prisma Client 활용 예시 / type 본문

IT

@Prisma Client 활용 예시 / type

agnusdei1207 2023. 8. 10. 00:48
반응형
SMALL
npm i @prisma/client

1. 설치 CLI

 

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

enum SocialProvider {
  KAKAO
  NAVER
  APPLE
  GOOGLE
}

model OAuthAccount {
  id        String         @id @default(uuid())
  provider  SocialProvider @default(KAKAO)
  createdAt DateTime       @default(now())
  user      User           @relation(fields: [userId], references: [id])
  userId    String
}

2. 기본적인 Prisma client 구성 예시

 

 

import { SocialProvider } from "@prisma/client";

export interface IOAuthAccountDTO {
  id: string;
  provider: SocialProvider;
  createdAt: Date;
  userId: string;
}

3. 필요한 enum 혹은 model 만 import 하여 사용 가능

 

 

import { IOAuthAccountDTO } from '@namdorang/interface';
import { Exclude, Expose } from 'class-transformer';
import { SocialProvider } from "@prisma/client";

@Exclude()
export class OAuthAccountDTO implements IOAuthAccountDTO {
  @Expose()
  id: string;
  @Expose()
  provider: SocialProvider;
  @Expose()
  createdAt: Date;
  @Expose()
  userId: string;
}

4. 위의 interface 를 DTO 로 구현한 모습 (마찬가지로 필요한 enum만 가져와서 type으로 사용)

 

 

반응형
LIST