beta/prisma/schema.prisma
Christopher Arraya 53c3cd3d6e initial commit
2023-11-04 14:57:25 -04:00

446 lines
18 KiB
Plaintext

generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
schemas = ["auth", "public"]
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model audit_log_entries {
instance_id String? @db.Uuid
id String @id @db.Uuid
payload Json? @db.Json
created_at DateTime? @db.Timestamptz(6)
ip_address String @default("") @db.VarChar(64)
@@index([instance_id], map: "audit_logs_instance_id_idx")
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model flow_state {
id String @id @db.Uuid
user_id String? @db.Uuid
auth_code String
code_challenge_method code_challenge_method
code_challenge String
provider_type String
provider_access_token String?
provider_refresh_token String?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
authentication_method String
@@index([created_at(sort: Desc)])
@@index([auth_code], map: "idx_auth_code")
@@index([user_id, authentication_method], map: "idx_user_id_auth_method")
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model identities {
id String
user_id String @db.Uuid
identity_data Json
provider String
last_sign_in_at DateTime? @db.Timestamptz(6)
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
email String? @default(dbgenerated("lower((identity_data ->> 'email'::text))"))
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@id([provider, id])
@@index([email])
@@index([user_id])
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model instances {
id String @id @db.Uuid
uuid String? @db.Uuid
raw_base_config String?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model mfa_amr_claims {
session_id String @db.Uuid
created_at DateTime @db.Timestamptz(6)
updated_at DateTime @db.Timestamptz(6)
authentication_method String
id String @id(map: "amr_id_pk") @db.Uuid
sessions sessions @relation(fields: [session_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@unique([session_id, authentication_method], map: "mfa_amr_claims_session_id_authentication_method_pkey")
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model mfa_challenges {
id String @id @db.Uuid
factor_id String @db.Uuid
created_at DateTime @db.Timestamptz(6)
verified_at DateTime? @db.Timestamptz(6)
ip_address String @db.Inet
mfa_factors mfa_factors @relation(fields: [factor_id], references: [id], onDelete: Cascade, onUpdate: NoAction, map: "mfa_challenges_auth_factor_id_fkey")
@@index([created_at(sort: Desc)], map: "mfa_challenge_created_at_idx")
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model mfa_factors {
id String @id @db.Uuid
user_id String @db.Uuid
friendly_name String?
factor_type factor_type
status factor_status
created_at DateTime @db.Timestamptz(6)
updated_at DateTime @db.Timestamptz(6)
secret String?
mfa_challenges mfa_challenges[]
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([user_id, created_at], map: "factor_id_created_at_idx")
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model refresh_tokens {
instance_id String? @db.Uuid
id BigInt @id @default(autoincrement())
token String? @unique(map: "refresh_tokens_token_unique") @db.VarChar(255)
user_id String? @db.VarChar(255)
revoked Boolean?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
parent String? @db.VarChar(255)
session_id String? @db.Uuid
sessions sessions? @relation(fields: [session_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([instance_id])
@@index([instance_id, user_id])
@@index([parent])
@@index([session_id, revoked])
@@index([updated_at(sort: Desc)])
@@schema("auth")
}
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model saml_providers {
id String @id @db.Uuid
sso_provider_id String @db.Uuid
entity_id String @unique
metadata_xml String
metadata_url String?
attribute_mapping Json?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
sso_providers sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([sso_provider_id])
@@schema("auth")
}
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model saml_relay_states {
id String @id @db.Uuid
sso_provider_id String @db.Uuid
request_id String
for_email String?
redirect_to String?
from_ip_address String? @db.Inet
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
sso_providers sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([created_at(sort: Desc)])
@@index([for_email])
@@index([sso_provider_id])
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model schema_migrations {
version String @id @db.VarChar(255)
@@schema("auth")
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model sessions {
id String @id @db.Uuid
user_id String @db.Uuid
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
factor_id String? @db.Uuid
aal aal_level?
not_after DateTime? @db.Timestamptz(6)
mfa_amr_claims mfa_amr_claims[]
refresh_tokens refresh_tokens[]
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([not_after(sort: Desc)])
@@index([user_id])
@@index([user_id, created_at], map: "user_id_created_at_idx")
@@schema("auth")
}
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
/// This model contains an expression index which requires additional setup for migrations. Visit https://pris.ly/d/expression-indexes for more info.
model sso_domains {
id String @id @db.Uuid
sso_provider_id String @db.Uuid
domain String
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
sso_providers sso_providers @relation(fields: [sso_provider_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
@@index([sso_provider_id])
@@schema("auth")
}
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
/// This model contains an expression index which requires additional setup for migrations. Visit https://pris.ly/d/expression-indexes for more info.
model sso_providers {
id String @id @db.Uuid
resource_id String?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
saml_providers saml_providers[]
saml_relay_states saml_relay_states[]
sso_domains sso_domains[]
@@schema("auth")
}
/// This table contains check constraints and requires additional setup for migrations. Visit https://pris.ly/d/check-constraints for more info.
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
/// This model contains an expression index which requires additional setup for migrations. Visit https://pris.ly/d/expression-indexes for more info.
model users {
instance_id String? @db.Uuid
id String @id @db.Uuid
aud String? @db.VarChar(255)
role String? @db.VarChar(255)
email String? @db.VarChar(255)
encrypted_password String? @db.VarChar(255)
email_confirmed_at DateTime? @db.Timestamptz(6)
invited_at DateTime? @db.Timestamptz(6)
confirmation_token String? @db.VarChar(255)
confirmation_sent_at DateTime? @db.Timestamptz(6)
recovery_token String? @db.VarChar(255)
recovery_sent_at DateTime? @db.Timestamptz(6)
email_change_token_new String? @db.VarChar(255)
email_change String? @db.VarChar(255)
email_change_sent_at DateTime? @db.Timestamptz(6)
last_sign_in_at DateTime? @db.Timestamptz(6)
raw_app_meta_data Json?
raw_user_meta_data Json?
is_super_admin Boolean?
created_at DateTime? @db.Timestamptz(6)
updated_at DateTime? @db.Timestamptz(6)
phone String? @unique
phone_confirmed_at DateTime? @db.Timestamptz(6)
phone_change String? @default("")
phone_change_token String? @default("") @db.VarChar(255)
phone_change_sent_at DateTime? @db.Timestamptz(6)
confirmed_at DateTime? @default(dbgenerated("LEAST(email_confirmed_at, phone_confirmed_at)")) @db.Timestamptz(6)
email_change_token_current String? @default("") @db.VarChar(255)
email_change_confirm_status Int? @default(0) @db.SmallInt
banned_until DateTime? @db.Timestamptz(6)
reauthentication_token String? @default("") @db.VarChar(255)
reauthentication_sent_at DateTime? @db.Timestamptz(6)
is_sso_user Boolean @default(false)
deleted_at DateTime? @db.Timestamptz(6)
identities identities[]
mfa_factors mfa_factors[]
sessions sessions[]
profile profile?
@@index([instance_id])
@@schema("auth")
}
model workspace {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
name String @db.VarChar
icon String? @db.VarChar
profile_workspace profile_workspace[]
project project[]
team team[]
@@schema("public")
}
model documents {
id BigInt @id @default(autoincrement())
content String?
metadata Json?
embedding Unsupported("vector")?
@@schema("public")
}
model feature {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
name String @db.VarChar
description String? @db.VarChar
project_id BigInt
project project @relation(fields: [project_id], references: [id], onDelete: Cascade)
task task[]
@@schema("public")
}
model message {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
user_id String? @db.Uuid
content String @db.VarChar
task_id BigInt
task task @relation(fields: [task_id], references: [id], onDelete: Cascade)
profile profile? @relation(fields: [user_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model profile {
id String @id @db.Uuid
created_at DateTime @default(now()) @db.Timestamptz(6)
name String? @db.VarChar
email String @db.VarChar
message message[]
users users @relation(fields: [id], references: [id], onDelete: Cascade)
profile_project profile_project[]
profile_task profile_task[]
profile_team profile_team[]
profile_workspace profile_workspace[]
@@schema("public")
}
model profile_project {
id BigInt @id @default(autoincrement())
profile_id String @db.Uuid
project_id BigInt
profile profile @relation(fields: [profile_id], references: [id], onDelete: Cascade)
project project @relation(fields: [project_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model profile_task {
id BigInt @id @default(autoincrement())
profile_id String @db.Uuid
task_id BigInt
profile profile @relation(fields: [profile_id], references: [id], onDelete: Cascade)
task task @relation(fields: [task_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model profile_team {
id BigInt @id @default(autoincrement())
profile_id String @db.Uuid
team_id BigInt
profile profile @relation(fields: [profile_id], references: [id], onDelete: Cascade)
team team @relation(fields: [team_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model profile_workspace {
id BigInt @id @default(autoincrement())
profile_id String @db.Uuid
workspace_id BigInt
profile profile @relation(fields: [profile_id], references: [id], onDelete: Cascade)
workspace workspace @relation(fields: [workspace_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model project {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
name String @db.VarChar
description String? @db.VarChar
stack String[] @db.VarChar
workspace_id BigInt
feature feature[]
profile_project profile_project[]
workspace workspace @relation(fields: [workspace_id], references: [id], onDelete: Cascade)
task task[]
@@schema("public")
}
model task {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
name String @db.VarChar
description String? @db.VarChar
project_id BigInt
feature_id BigInt?
message message[]
profile_task profile_task[]
feature feature? @relation(fields: [feature_id], references: [id])
project project @relation(fields: [project_id], references: [id], onDelete: Cascade)
@@schema("public")
}
model team {
id BigInt @id @default(autoincrement())
created_at DateTime @default(now()) @db.Timestamptz(6)
name String @db.VarChar
description String? @db.VarChar
workspace_id BigInt
profile_team profile_team[]
workspace workspace @relation(fields: [workspace_id], references: [id], onDelete: Cascade)
@@schema("public")
}
enum aal_level {
aal1
aal2
aal3
@@schema("auth")
}
enum code_challenge_method {
s256
plain
@@schema("auth")
}
enum factor_status {
unverified
verified
@@schema("auth")
}
enum factor_type {
totp
webauthn
@@schema("auth")
}