schema.prisma•1.29 kB
generator client {
provider = "prisma-client-js"
output = "../src/generated/prisma"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model UserApiKey {
id String @id @default(cuid())
userId String
name String
key String @unique
scopes String
createdAt DateTime @default(now())
lastUsed DateTime?
totalRequests Int @default(0)
requestLogs ApiKeyRequestLog[]
@@map("user_api_keys")
}
model ApiKeyRequestLog {
id String @id @default(cuid())
apiKeyId String?
userId String
timestamp DateTime @default(now())
endpoint String?
userAgent String?
ipAddress String?
apiKey UserApiKey? @relation(fields: [apiKeyId], references: [id], onDelete: SetNull)
@@map("api_key_request_logs")
@@index([apiKeyId])
@@index([userId])
@@index([timestamp])
@@index([apiKeyId, timestamp])
@@index([userId, timestamp])
}
model WebhookEvent {
id String @id @default(cuid())
userId String
eventType String
payload Json
timestamp DateTime @default(now())
processed Boolean @default(false)
@@map("webhook_events")
@@index([userId, timestamp])
@@index([processed])
}