sinka/api/prisma/platform/schema.prisma
armando 8e4203e4c9 sinka
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 03:56:18 -03:00

67 lines
1.7 KiB
Plaintext

generator client {
provider = "prisma-client-js"
output = "../../src/generated/platform"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
enum TenantStatus {
ACTIVE
SUSPENDED
}
model Tenant {
id String @id @default(uuid())
name String
slug String @unique
database String @unique
status TenantStatus @default(ACTIVE)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model PlatformUser {
id String @id @default(uuid())
name String
email String @unique
passwordHash String
googleId String? @unique
githubId String? @unique
totpSecret String?
totpEnabled Boolean @default(false)
lastLoginAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
refreshTokens PlatformRefreshToken[]
auditLogs PlatformAuditLog[]
}
model PlatformRefreshToken {
id String @id @default(uuid())
userId String
user PlatformUser @relation(fields: [userId], references: [id], onDelete: Cascade)
hashed String
expiresAt DateTime
revokedAt DateTime?
createdAt DateTime @default(now())
@@index([userId])
}
model PlatformAuditLog {
id String @id @default(uuid())
userId String?
user PlatformUser? @relation(fields: [userId], references: [id], onDelete: SetNull)
action String
entity String?
entityId String?
ip String?
metadata Json?
createdAt DateTime @default(now())
@@index([createdAt])
}