summaryrefslogtreecommitdiff
path: root/packages/backend/src/models/entities/instance.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /packages/backend/src/models/entities/instance.ts
parentupdate deps (diff)
downloadmisskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'packages/backend/src/models/entities/instance.ts')
-rw-r--r--packages/backend/src/models/entities/instance.ts180
1 files changed, 180 insertions, 0 deletions
diff --git a/packages/backend/src/models/entities/instance.ts b/packages/backend/src/models/entities/instance.ts
new file mode 100644
index 0000000000..7c8719e06a
--- /dev/null
+++ b/packages/backend/src/models/entities/instance.ts
@@ -0,0 +1,180 @@
+import { Entity, PrimaryColumn, Index, Column } from 'typeorm';
+import { id } from '../id';
+
+@Entity()
+export class Instance {
+ @PrimaryColumn(id())
+ public id: string;
+
+ /**
+ * このインスタンスを捕捉した日時
+ */
+ @Index()
+ @Column('timestamp with time zone', {
+ comment: 'The caught date of the Instance.'
+ })
+ public caughtAt: Date;
+
+ /**
+ * ホスト
+ */
+ @Index({ unique: true })
+ @Column('varchar', {
+ length: 128,
+ comment: 'The host of the Instance.'
+ })
+ public host: string;
+
+ /**
+ * インスタンスのユーザー数
+ */
+ @Column('integer', {
+ default: 0,
+ comment: 'The count of the users of the Instance.'
+ })
+ public usersCount: number;
+
+ /**
+ * インスタンスの投稿数
+ */
+ @Column('integer', {
+ default: 0,
+ comment: 'The count of the notes of the Instance.'
+ })
+ public notesCount: number;
+
+ /**
+ * このインスタンスのユーザーからフォローされている、自インスタンスのユーザーの数
+ */
+ @Column('integer', {
+ default: 0,
+ })
+ public followingCount: number;
+
+ /**
+ * このインスタンスのユーザーをフォローしている、自インスタンスのユーザーの数
+ */
+ @Column('integer', {
+ default: 0,
+ })
+ public followersCount: number;
+
+ /**
+ * ドライブ使用量
+ */
+ @Column('bigint', {
+ default: 0,
+ })
+ public driveUsage: number;
+
+ /**
+ * ドライブのファイル数
+ */
+ @Column('integer', {
+ default: 0,
+ })
+ public driveFiles: number;
+
+ /**
+ * 直近のリクエスト送信日時
+ */
+ @Column('timestamp with time zone', {
+ nullable: true,
+ })
+ public latestRequestSentAt: Date | null;
+
+ /**
+ * 直近のリクエスト送信時のHTTPステータスコード
+ */
+ @Column('integer', {
+ nullable: true,
+ })
+ public latestStatus: number | null;
+
+ /**
+ * 直近のリクエスト受信日時
+ */
+ @Column('timestamp with time zone', {
+ nullable: true,
+ })
+ public latestRequestReceivedAt: Date | null;
+
+ /**
+ * このインスタンスと最後にやり取りした日時
+ */
+ @Column('timestamp with time zone')
+ public lastCommunicatedAt: Date;
+
+ /**
+ * このインスタンスと不通かどうか
+ */
+ @Column('boolean', {
+ default: false
+ })
+ public isNotResponding: boolean;
+
+ /**
+ * このインスタンスへの配信を停止するか
+ */
+ @Index()
+ @Column('boolean', {
+ default: false
+ })
+ public isSuspended: boolean;
+
+ @Column('varchar', {
+ length: 64, nullable: true, default: null,
+ comment: 'The software of the Instance.'
+ })
+ public softwareName: string | null;
+
+ @Column('varchar', {
+ length: 64, nullable: true, default: null,
+ })
+ public softwareVersion: string | null;
+
+ @Column('boolean', {
+ nullable: true, default: null,
+ })
+ public openRegistrations: boolean | null;
+
+ @Column('varchar', {
+ length: 256, nullable: true, default: null,
+ })
+ public name: string | null;
+
+ @Column('varchar', {
+ length: 4096, nullable: true, default: null,
+ })
+ public description: string | null;
+
+ @Column('varchar', {
+ length: 128, nullable: true, default: null,
+ })
+ public maintainerName: string | null;
+
+ @Column('varchar', {
+ length: 256, nullable: true, default: null,
+ })
+ public maintainerEmail: string | null;
+
+ @Column('varchar', {
+ length: 256, nullable: true, default: null,
+ })
+ public iconUrl: string | null;
+
+ @Column('varchar', {
+ length: 256, nullable: true, default: null,
+ })
+ public faviconUrl: string | null;
+
+ @Column('varchar', {
+ length: 64, nullable: true, default: null,
+ })
+ public themeColor: string | null;
+
+ @Column('timestamp with time zone', {
+ nullable: true,
+ })
+ public infoUpdatedAt: Date | null;
+}