feat: integrate user usage into apis (#5075)

This commit is contained in:
DarkSky
2023-12-14 09:50:36 +00:00
parent 63de73a815
commit ad23ead5e4
36 changed files with 984 additions and 282 deletions

View File

@@ -28,6 +28,7 @@ model User {
invoices UserInvoice[]
workspacePermissions WorkspaceUserPermission[]
pagePermissions WorkspacePageUserPermission[]
UserQuotaGates UserQuotaGates[]
@@map("users")
}
@@ -157,6 +158,33 @@ model Features {
@@map("features")
}
// quota gates is a way to enable/disable quotas for a user
// for example, pro plan is a quota that allow some users access to more resources after they pay
model UserQuotaGates {
id String @id @default(uuid()) @db.VarChar
userId String @map("user_id") @db.VarChar
quotaId String? @db.VarChar
reason String @db.VarChar
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
quota UserQuotas? @relation(fields: [quotaId], references: [id])
@@map("user_quota_gates")
}
model UserQuotas {
id String @id @default(uuid()) @db.VarChar
quota String @db.VarChar
configs Json @db.Json
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
UserQuotaGates UserQuotaGates[]
@@map("user_quotas")
}
model Account {
id String @id @default(cuid())
userId String @map("user_id")