Cascade

Cascade를 통해서 user가 삭제될 때 token도 자동으로 삭제 되도록 할 수 있다.

model Token {
  id        Int      @id @default(autoincrement())
  payload   String   @unique
  user      User     @relation(fields: [userId], references: [id], onDelete: **Cascade**)
	userId    Int
}

관계된 테이블 데이터를 객체로 받는 법

await client.token.findUnique({
		where: {
				payload: token
		},
		include: { user: true }
})

선택적으로 객체의 데이터를 가져오고 싶다면?

include: { 
	user: {
		select: {
				id: true,
				name: true,
				avatar: true
		}
	}
} 

typescript 모델 인터페이스를 구성하려면?

interface ProductWithUser extends Product {
		user: User
}

관계된 모든 칼럼을 지우는 법

await client.token.deleteMany({
  where: {
    userId: exists.userId,
  },
});