> ## Documentation Index
> Fetch the complete documentation index at: https://kiran.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Database Tables

> NextAPI use PostgreSQL as the database. Here are the tables required for the project.

```bash MemberRole
enum MemberRole {
  MEMBER
  ADMIN
  OWNER
}
```

```bash User
model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  firstName String
  lastName  String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  teams   TeamMember[]
  invites Invitation[]
}
```

```bash Team
model Team {
  id        Int      @id @default(autoincrement())
  name      String
  slug      String   @unique
  logo      String?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  members TeamMember[]
  invites Invitation[]
}
```

```bash TeamMember
model TeamMember {
  id        Int      @id @default(autoincrement())
  teamId    Int
  userId    Int
  role      MemberRole
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
  user User @relation(fields: [userId], references: [id])

  @@unique([teamId, userId])
}
```

```bash Invitation
model Invitation {
  id        Int      @id @default(autoincrement())
  teamId    Int
  email     String
  role      MemberRole
  InvitedBy Int
  token     String   @unique
  expiresAt DateTime
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
  user User @relation(fields: [InvitedBy], references: [id], onDelete: Cascade)

  @@unique([teamId, email])
}
```
