datasource db { provider = "mysql" } model attachment { id Int @id @default(autoincrement()) @db.UnsignedInt note_id Int? @db.UnsignedInt user_id Int @db.UnsignedInt attachment_type Int? @db.UnsignedInt text String? @db.MediumText url String? @default("") @db.VarChar(1000) last_indexed Int? file_location String? @db.VarChar(500) visible Int? @default(1) @db.TinyInt scrape_state Int @default(2) @db.TinyInt scrape_attempts Int @default(0) @db.TinyInt enqueued_at Int? @@index([scrape_state, enqueued_at], map: "attachment_scrape_state") @@index([attachment_type], map: "attachment_type") @@index([note_id], map: "note_id") @@index([user_id], map: "user_id") @@fulltext([text], map: "attachment_text_index") } model attachment_type { id Int @id @default(autoincrement()) @db.UnsignedInt mime_type String? @db.VarChar(500) extension String? @db.VarChar(10) name String? @db.VarChar(50) } model note { id Int @id @default(autoincrement()) @db.UnsignedInt user_id Int? @db.UnsignedInt note_raw_text_id Int? opened Int? created Int? pinned Int? @default(0) archived Int? @default(0) trashed Int? @default(0) @db.TinyInt color String? @db.VarChar(500) shared Int? @default(0) share_user_id Int? quick_note Int? @default(0) indexed Int? @default(0) @db.TinyInt snippet String? @db.VarChar(1300) snippet_salt String? @db.VarChar(1300) encrypted_share_password_key String? @db.VarChar(1300) @@index([user_id], map: "user_note") } /// 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 note_raw_text { id Int @id @default(autoincrement()) text String? @db.LongText updated BigInt? salt String? @db.VarChar(1300) last_decrypted_date Int? decrypt_attempts_count Int? @default(0) } model note_tag { id Int @id @default(autoincrement()) @db.UnsignedInt note_id Int? @db.UnsignedInt tag_id Int? @db.UnsignedInt user_id Int? @db.UnsignedInt @@index([note_id], map: "note_id") @@index([tag_id], map: "tag_id") @@index([user_id], map: "user_id") } model scrape_cache { id Int @id @default(autoincrement()) @db.UnsignedInt url_hash String @unique(map: "scrape_cache_url_hash") @db.Char(64) url String @default("") @db.VarChar(1000) canonical_url String? @db.VarChar(1000) status Int @default(0) @db.SmallInt title String? @db.VarChar(512) site_name String? @db.VarChar(255) description String? @db.MediumText keywords String? @db.VarChar(512) search_text String? @db.MediumText image_url String? @db.VarChar(1000) file_location String? @db.VarChar(500) etag String? @db.VarChar(255) last_modified String? @db.VarChar(128) content_type String? @db.VarChar(128) fetch_state String @default("pending") @db.VarChar(20) failure_count Int @default(0) last_error String? @db.VarChar(255) fetched_at Int? expires_at Int? @@index([expires_at], map: "scrape_cache_expires_at") @@index([fetch_state], map: "scrape_cache_fetch_state") } model tag { id Int @id @default(autoincrement()) @db.UnsignedInt text String? @db.VarChar(400) hash Int? @@index([hash], map: "hash") } model user { id Int @id @unique(map: "id_UNIQUE") @default(autoincrement()) @db.UnsignedInt username String @unique(map: "username_UNIQUE") @default("") @db.VarChar(150) password String @db.Text salt String @default("") @db.VarChar(500) iterations Int last_login DateTime? @db.DateTime(0) created DateTime? @db.DateTime(0) two_fa_secret String? @db.VarChar(50) two_fa_enabled Int? @default(0) @db.TinyInt two_fa_every_login Int? @default(0) @db.TinyInt pushkey String? @db.VarChar(100) } model user_active_session { id Int @id @default(autoincrement()) salt String? @db.VarChar(100) encrypted_master_password String? @db.VarChar(500) created Int? uses Int? user_hash String? @db.VarChar(500) active Int? @default(1) @db.TinyInt session_id String? @db.VarChar(100) last_used Int? } model user_encrypted_search_index { id Int @id @default(autoincrement()) user_id Int? salt String? @db.VarChar(100) index String? @db.LongText last_update Int? } model user_key { id Int @id @default(autoincrement()) user_id Int? salt String? @db.VarChar(1300) key String? @db.VarChar(5000) created Int? public_key String? @db.VarChar(5000) private_key_encrypted String? @db.VarChar(5000) }