diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..e197618 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,66 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model User { + id Int @id @default(autoincrement()) + email String @unique + passwordHash String + passwordSalt String + role Role @default(USER) + organization Organization @relation(fields: [organizationId], references: [id]) + organizationId Int + orders Order[] +} + +model Restaurant { + id Int @id @default(autoincrement()) + name String @unique + description String? + pizzas Pizza[] +} + +model Pizza { + id Int @id @default(autoincrement()) + name String @unique + description String? + restaurant Restaurant @relation(fields: [restaurantId], references: [id]) + restaurantId Int + orders PizzaToOrder[] +} + +model Order { + id Int @id @default(autoincrement()) + user User @relation(fields: [userId], references: [id]) + userId Int + pizzas PizzaToOrder[] +} + +model PizzaToOrder { + id Int @id @default(autoincrement()) + order Order @relation(fields: [orderId], references: [id]) + orderId Int + pizza Pizza @relation(fields: [pizzaId], references: [id]) + pizzaId Int +} + +model Organization { + id Int @id @default(autoincrement()) + name String + domain String + users User[] + userId Int +} + +enum Role { + USER + ADMIN +}