misskey-tools/packages/backend/prisma/schema.prisma

176 lines
5.7 KiB
Plaintext
Raw Normal View History

2023-03-29 19:43:01 +09:00
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
2023-04-20 03:31:19 +09:00
/// お知らせ
2023-03-29 19:43:01 +09:00
model Announcement {
2023-04-20 03:31:19 +09:00
/// ID
2023-03-29 19:43:01 +09:00
id Int @id(map: "PK_e0ef0550174fd1099a308fd18a0") @default(autoincrement())
2023-04-20 03:31:19 +09:00
/// 作成日時
2023-03-29 19:43:01 +09:00
createdAt DateTime @db.Timestamp(6)
2023-04-20 03:31:19 +09:00
/// タイトル
2023-03-29 19:43:01 +09:00
title String @db.VarChar(128)
2023-04-20 03:31:19 +09:00
/// 本文
2023-03-29 19:43:01 +09:00
body String @db.VarChar(8192)
2023-04-20 03:31:19 +09:00
/// いいね数
2023-03-29 19:43:01 +09:00
like Int @default(0)
@@map("announcement")
}
2023-04-20 03:31:19 +09:00
/// 使用済みトークンを管理するテーブル。
/// 廃止予定
2023-03-29 19:43:01 +09:00
model UsedToken {
token String @id(map: "PK_7f2db4c33c33cd6b38e63393fe5") @unique(map: "IDX_7f2db4c33c33cd6b38e63393fe") @db.VarChar
@@map("used_token")
}
2023-04-20 03:31:19 +09:00
/// Misskey Tools アカウント
model Account {
/// ID
id String @id @default(uuid())
/// このアカウントの名前。デフォルトでは @Lutica@mk.shrimpia.network みたいな感じになる
name String @db.VarChar
/// Misskey Tools API アクセストークン
accessToken String @unique @map("access_token") @db.VarChar
/// ログイン用Eメールアドレス
/// 今後メールによる緊急ログインを実装するとき用
email String? @db.VarChar
/// ログイン用の一時的なパスワード
password String? @db.VarChar
/// このアカウントに紐付いたMisskeyセッションの一覧
misskeySessions MisskeySession[]
@@map("account")
}
/// Tools アカウントに紐づくMisskeyとの連携情報。
model MisskeySession {
/// ID
id String @id @default(uuid())
/// ユーザー名
username String @db.VarChar
/// ホスト名
host String @db.VarChar
/// Misskey APIトークン
token String @db.VarChar
/// Misskey APIトークンのバージョン。
tokenVersion Int
/// Tools アカウントID
accountId String @db.VarChar()
/// Tools アカウント
account Account @relation(fields: [accountId], references: [id])
/// ミス廃アラート機能のアカウント
misshaiAccount MisshaiAccount?
@@map("misskey_session")
}
/// ミス廃アラート アカウント
model MisshaiAccount {
/// このアカウントに紐づくMisskeyセッションのID
misskeySessionId String @id @map("misskey_session_id")
/// このアカウントに紐づくMisskeyセッション
misskeySession MisskeySession @relation(fields: [misskeySessionId], references: [id])
/// アラートをノートとして発行するかどうか
alertAsNote Boolean @default(false) @map("alert_as_note")
/// アラートを通知欄に表示するかどうか
alertAsNotification Boolean @default(true) @map("alert_as_notificaton")
/// アラートを投稿する場合のノートの公開範囲
noteVisibility String @default("home") @map("note_visibility")
/// アラートを投稿する場合にノートを連合なしとするかどうか
noteLocalOnly Boolean @default(false) @map("note_local_only")
/// アラートのテンプレート文字列
template String? @db.VarChar(1024)
/// ランキングからBANされているかどうか
bannedFromRanking Boolean @default(false) @map("banned_from_ranking")
/// 自分の名前をランキングに表示するかどうか
rankingVisible Boolean @default(false) @map("ranking_visible")
/// ミス廃ログ
records MisshaiRecord[]
@@map("misshai_account")
}
/// ミス廃アラートのログ
model MisshaiRecord {
/// ID
id String @id @default(uuid())
/// このログの日付
date DateTime @db.Date
/// ノート数
notesCount Int @map("notes_count")
/// フォロー数
followingCount Int @map("following_count")
/// フォロワー数
followersCount Int @map("followers_count")
/// レート値
rating Float @default(0) @db.Real
/// このログの所有者であるアカウントのID
accountId String @map("account_id")
/// このログの所有者であるアカウント
account MisshaiAccount @relation(fields: [accountId], references: [misskeySessionId])
@@map("misshai_record")
}
/// Misskey Tools v3以前で使用されていたユーザーモデル。
/// 廃止予定。
2023-03-29 19:43:01 +09:00
model User {
2023-04-20 03:31:19 +09:00
id Int @id(map: "PK_cace4a159ff9f2512dd42373760") @default(autoincrement())
username String @db.VarChar
host String @db.VarChar
token String @db.VarChar
prevNotesCount Int @default(0)
prevFollowingCount Int @default(0)
prevFollowersCount Int @default(0)
misshaiToken String @default("") @db.VarChar
alertMode AlertMode @default(notification)
visibility Visibility @default(home)
localOnly Boolean @default(false)
remoteFollowersOnly Boolean @default(false)
template String? @db.VarChar(1024)
prevRating Float @default(0) @db.Real
rating Float @default(0) @db.Real
bannedFromRanking Boolean @default(false)
tokenVersion Int @default(1)
useRanking Boolean @default(false)
2023-03-29 19:43:01 +09:00
@@unique([username, host], map: "IDX_6269eebacdb25de8569298a52a")
@@map("user")
}
2023-04-20 03:31:19 +09:00
/// Misskey Tools v3以前で使用していた、アラート送信モードフラグ。
/// 廃止予定。
2023-03-29 19:43:01 +09:00
enum AlertMode {
note
notification
both
nothing
@@map("user_alertmode_enum")
}
2023-04-20 03:31:19 +09:00
/// Misskey Tools v3以前で使用していた、アラートのート公開範囲。
/// 廃止予定。
2023-03-29 19:43:01 +09:00
enum Visibility {
public
home
followers
users
@@map("user_visibility_enum")
}