User service: ```generator client { provider = "...
# random
m
User service:
Copy code
generator client {
  provider = "prisma-client-js"
}

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

model User {
  id          Int       @id @default(autoincrement())
  email       String    @unique
  firstName   String
  lastName    String?
  birthDate   DateTime
  phoneNumber Int       @unique
  verified    Boolean   @default(false)
  address     Address[]
  password    String    @default("None")
  createdAt   DateTime  @default(now())
  updatedAt   DateTime  @updatedAt
}

model Owner {
  id           Int       @id @default(autoincrement())
  email        String    @unique
  firstName    String
  lastName     String?
  birthDate    DateTime
  phoneNumber  Int       @unique
  verified     Boolean   @default(false)
  address      Address[]
  restaurantId Int[]
  createdAt    DateTime  @default(now())
  updatedAt    DateTime  @updatedAt
}

model Admin {
  id          Int       @id @default(autoincrement())
  email       String    @unique
  firstName   String
  lastName    String?
  birthDate   DateTime
  phoneNumber Int       @unique
  verified    Boolean   @default(false)
  address     Address[]
  createdAt   DateTime  @default(now())
  updatedAt   DateTime  @updatedAt
}

model Address {
  id      Int         @id @default(autoincrement())
  User    User?       @relation(fields: [userId], references: [id])
  userId  Int?
  line1   String
  line2   String
  area    String
  city    String
  type    AddressType @default(HOME)
  Owner   Owner?      @relation(fields: [ownerId], references: [id])
  ownerId Int?
  Admin   Admin?      @relation(fields: [adminId], references: [id])
  adminId Int?
}

enum AddressType {
  HOME
  OFFICE
  OTHER
}
Order Service:
Copy code
generator client {
    provider = "prisma-client-js"
}

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

model Order {
    id                 Int          @id @default(autoincrement())
    user               Int
    rider              Int?
    restaurant         Restaurant   @relation(fields: [restaurantId], references: [id])
    restaurantId       Int
    orderPickedTime    DateTime?
    orderDeliveredTime DateTime?
    total              Int
    deliveryFee        Int
    couponDiscount     Int
    finalTotal         Int
    dishes             Dishes[]
    orderStatus        ORDER_STATUS @default(CREATED)
    address            Address      @relation(fields: [addressId], references: [id])
    addressId          Int
    createdAt          DateTime     @default(now())
    updatedAt          DateTime     @updatedAt
}

model Address {
    id           Int          @id @default(autoincrement())
    line1        String
    line2        String
    area         String
    city         String
    userId       Int[]
    order        Order[]
    Restaurant   Restaurant?  @relation(fields: [restaurantId], references: [id])
    restaurantId Int?         @unique
    type         ADDRESS_TYPE @default(HOME)
    createdAt    DateTime     @default(now())
    updatedAt    DateTime     @updatedAt
}

model Restaurant {
    id               Int            @id @default(autoincrement())
    name             String
    vegOnly          Boolean        @default(false)
    ownerId          Int
    dishes           Dishes[]
    address          Address?
    restaurantStatus CURRENT_STATUS @default(OFFLINE)
    createdAt        DateTime       @default(now())
    updatedAt        DateTime       @updatedAt
    Order            Order[]
}

model Dishes {
    id           Int        @id @default(autoincrement())
    name         String
    veg          Boolean    @default(false)
    glutenFree   Boolean    @default(false)
    order        Order[]
    category     category[]
    restaurant   Restaurant @relation(fields: [restaurantId], references: [id])
    restaurantId Int
    cost         Int
    createdAt    DateTime   @default(now())
    updatedAt    DateTime   @updatedAt
}

model category {
    id        Int      @id @default(autoincrement())
    name      String   @unique
    dishes    Dishes[]
    createdAt DateTime @default(now())
    updatedAt DateTime @updatedAt
}

enum ORDER_STATUS {
    CREATED
    PICKEDUP
    DELIVERED
    CANCELLED
}

enum DISH_STATUS {
    AVAILABLE
    UNAVAILABLE
}

enum CURRENT_STATUS {
    OFFLINE
    ONLINE
}

enum ADDRESS_TYPE {
    HOME
    OFFICE
    RESTAURANT
    OTHER
}