dhatGuy
02/13/2022, 4:18 PMorder
.datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model user {
id Int @id @default(autoincrement())
username String @unique
email String @unique
hash String
role UserRole @default(USER)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt()
cart cart[]
order order[]
}
model order {
id Int @id @default(autoincrement())
userId Int
user user @relation(fields: [userId], references: [id], onDelete: Cascade)
cafeteriaId Int
cafeteria cafeteria @relation(fields: [cafeteriaId], references: [id], onDelete: Cascade)
totalPrice Float @default(0.00)
status OrderStatus @default(PENDING)
order_item order_item[]
date DateTime @default(now())
}
model order_item {
id Int @id @default(autoincrement())
orderId Int
order order @relation(fields: [orderId], references: [id], onDelete: Cascade)
menuId Int
menu menu @relation(fields: [menuId], references: [id], onDelete: Cascade)
quantity Int
price Float
}
model cart {
userId Int
user user @relation(fields: [userId], references: [id], onDelete: Cascade)
cafeteriaId Int
cafeteria cafeteria @relation(fields: [cafeteriaId], references: [id], onDelete: Cascade)
totalPrice Float @default(0.00)
cart_item cart_item[]
@@id([userId, cafeteriaId])
}
model cart_item {
id Int @id @default(autoincrement())
// cartId Int
cart cart @relation(fields: [userId, cafeId], references: [userId, cafeteriaId], onDelete: Cascade)
userId Int @map("userId")
cafeId Int @map("cafeId")
menuId Int
menu menu @relation(fields: [menuId], references: [id], onDelete: Cascade)
quantity Int @default(1)
totalPrice Float @default(0.00)
@@unique([userId, cafeId, menuId])
}
model menu {
id Int @id @default(autoincrement())
title String @unique
price Float
description String?
available Boolean @default(true)
featured Boolean @default(false)
imageUrl String?
category category @relation(fields: [categoryId], references: [id], onDelete: SetNull)
categoryId Int
// TODO remove optional
cafeteria cafeteria? @relation(fields: [cafeteriaId], references: [id], onDelete: Cascade)
cafeteriaId Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt()
cart_item cart_item[]
order_item order_item[]
}
model category {
id Int @id @default(autoincrement())
name String
menus menu[]
cafeteria cafeteria? @relation(fields: [cafeteriaId], references: [id])
cafeteriaId Int?
@@unique([name, cafeteriaId])
}
model cafeteria {
id Int @id @default(autoincrement())
name String @unique
delivery_hours String[]
delivery_fee Float @default(0.00)
min_delivery_time Int @default(30)
max_delivery_time Int @default(60)
menus menu[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt()
category category[]
cart cart[]
order order[]
}
enum OrderStatus {
PENDING
COMPLETED
CANCELLED
}
enum UserRole {
CAFE_ADMIN
USER
DELIVERY
}
enum PaymentMethod {
PAY_ON_DELIVERY
PAYSTACK
}
await prisma.order.create({
data: {
userId,
cafeteriaId: cafeId,
},
});
This returns error
Unknown arg `cafeteriaId` in data.cafeteriaId for type orderCreateInput. Did you mean `cafeteria`?
Argument user for data.user is missing.
Argument cafeteria for data.cafeteria is missing.
await prisma.order.create({
data: {
user: {
connect: {
id: userId,
},
},
cafeteria: {
connect: {
id: cafeId,
},
},
},
});
Running this also gives an error
Argument data.user.connect of type userWhereUniqueInput needs at least one argument. Available args are listed in green.