@@ -10,75 +10,132 @@ datasource db {
}
model Organization {
- id String @id @default(cuid())
- slug String @unique
- createdAt DateTime @default(now())
- updatedAt DateTime @updatedAt
- avatarUri String?
- displayName String?
- websiteUrl String?
- ownerId String
- visibility ResourceVisibility @default(PRIVATE)
- kind OrganizationKind @default(PERSONAL)
- owner User @relation("ManyOwnedOrganizationsToOneOwnerUser", fields: [ownerId], references: [id])
+ id String @id @default(cuid())
+ ownerId String
+ slug String @unique
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ kind OrganizationKind @default(PERSONAL)
+ visibility ResourceVisibility @default(PRIVATE)
+ avatarUri String?
+ displayName String?
+ websiteUrl String?
+
memberships OrganizationMembership[] @relation("OneOrganizationMembershipToOneOrganization")
+ owner User @relation("ManyOwnedOrganizationsToOneOwnerUser", fields: [ownerId], references: [id])
repositories Repository[] @relation("ManyRepositoriesToOneOrganization")
}
model OrganizationMembership {
- id String @id @default(cuid())
- createdAt DateTime @default(now())
- updatedAt DateTime @updatedAt
- expiresAt DateTime?
- revokedAt DateTime?
+ id String @id @default(cuid())
organizationId String
userId String
- role OrganizationRole @default(REVIEWER)
- organization Organization @relation("OneOrganizationMembershipToOneOrganization", fields: [organizationId], references: [id])
- user User @relation("OneOrganizationMembershipToOneUser", fields: [userId], references: [id])
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ expiresAt DateTime?
+ revokedAt DateTime?
+
+ role OrganizationRole @default(REVIEWER)
+
+ organization Organization @relation("OneOrganizationMembershipToOneOrganization", fields: [organizationId], references: [id])
+ user User @relation("OneOrganizationMembershipToOneUser", fields: [userId], references: [id])
+}
+
+model PullRequest {
+ id String @id @default(cuid())
+ uid Int @default(0)
+ authorId String
+ sourceRepositoryId String
+ targetRepositoryId String
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ closedAt DateTime
+
+ state PullRequestState @default(OPEN)
+ sourceBranch String
+ targetBranch String
+
+ summary String
+ textMd String
+
+ author User @relation("OnePullRequestToOneUser", fields: [authorId], references: [id])
+ comments PullRequestComment[] @relation("OnePullRequestCommentToOnePullRequest")
+ sourceRepository Repository @relation("OneSourceRepositoryToManyPullRequests", fields: [sourceRepositoryId], references: [id])
+ targetRepository Repository @relation("OneTargetRepositoryToManyPullRequests", fields: [targetRepositoryId], references: [id])
+}
+
+model PullRequestComment {
+ id String @id @default(cuid())
+ authorId String
+ pullRequestId String
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ textMd String
+
+ author User @relation("OnePullRequestToOnePRCommenterUser", fields: [authorId], references: [id])
+ pullRequest PullRequest @relation("OnePullRequestCommentToOnePullRequest", fields: [pullRequestId], references: [id])
}
model Repository {
- id String @id @default(cuid())
- slug String @unique
- createdAt DateTime @default(now())
- updatedAt DateTime @updatedAt
+ id String @id @default(cuid())
+ forkedFromRepoId String?
+ organizationId String
+ slug String @unique
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ lastPushedAt DateTime?
+
+ visibility ResourceVisibility @default(PRIVATE)
+ isFork Boolean @default(false)
+ keywords String[]
avatarUri String?
displayName String?
- keywords String[]
shortDescription String?
websiteUrl String?
- organizationId String
- visibility ResourceVisibility @default(PRIVATE)
- forkedFromRepoId String?
- isFork Boolean @default(false)
- lastPushedAt DateTime?
- organization Organization @relation("ManyRepositoriesToOneOrganization", fields: [organizationId], references: [id])
+
+ organization Organization @relation("ManyRepositoriesToOneOrganization", fields: [organizationId], references: [id])
+ pullRequestsWhereSource PullRequest[] @relation("OneSourceRepositoryToManyPullRequests")
+ pullRequestsWhereTarget PullRequest[] @relation("OneTargetRepositoryToManyPullRequests")
}
model Session {
- id String @id @default(cuid())
- sessionId String @unique
- createdAt DateTime @default(now())
- updatedAt DateTime @updatedAt
- expiresAt DateTime?
- data Json?
- detectedUserAgent String @default("")
- detectedIPAddress String @default("")
+ id String @id @default(cuid())
+ sessionId String @unique
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+ expiresAt DateTime?
+
+ data Json?
+
+ detectedIPAddress String @default("")
+ detectedUserAgent String @default("")
}
model User {
- id String @id @default(cuid())
- role GlobalRole @default(CUSTOMER)
- createdAt DateTime @default(now())
- updatedAt DateTime @updatedAt
- username String @unique
- email String @unique
- hashedPassword String
- displayName String?
- avatarUri String?
- organizations Organization[] @relation("ManyOwnedOrganizationsToOneOwnerUser")
- organizationMemberships OrganizationMembership[] @relation("OneOrganizationMembershipToOneUser")
+ id String @id @default(cuid())
+
+ createdAt DateTime @default(now())
+ updatedAt DateTime @updatedAt
+
+ role GlobalRole @default(CUSTOMER)
+ username String @unique
+ email String @unique
+ hashedPassword String
+ displayName String?
+ avatarUri String?
+
+ organizations Organization[] @relation("ManyOwnedOrganizationsToOneOwnerUser")
+ organizationMemberships OrganizationMembership[] @relation("OneOrganizationMembershipToOneUser")
+ pullRequestsWhereAuthor PullRequest[] @relation("OnePullRequestToOneUser")
+ pullRequestCommentsWhereAuthor PullRequestComment[] @relation("OnePullRequestToOnePRCommenterUser")
}
enum GlobalRole {
...