paricafe/src/models/instance.ts
2019-02-08 20:56:16 +09:00

90 lines
1.7 KiB
TypeScript

import * as mongo from 'mongodb';
import db from '../db/mongodb';
const Instance = db.get<IInstance>('instances');
Instance.createIndex('host', { unique: true });
export default Instance;
export interface IInstance {
_id: mongo.ObjectID;
/**
* ホスト
*/
host: string;
/**
* このインスタンスを捕捉した日時
*/
caughtAt: Date;
/**
* このインスタンスのシステム (MastodonとかMisskeyとかPleromaとか)
*/
system: string;
/**
* このインスタンスのユーザー数
*/
usersCount: number;
/**
* このインスタンスから受け取った投稿数
*/
notesCount: number;
/**
* このインスタンスのユーザーからフォローされている、自インスタンスのユーザーの数
*/
followingCount: number;
/**
* このインスタンスのユーザーをフォローしている、自インスタンスのユーザーの数
*/
followersCount: number;
/**
* ドライブ使用量
*/
driveUsage: number;
/**
* ドライブのファイル数
*/
driveFiles: number;
/**
* 直近のリクエスト送信日時
*/
latestRequestSentAt?: Date;
/**
* 直近のリクエスト送信時のHTTPステータスコード
*/
latestStatus?: number;
/**
* 直近のリクエスト受信日時
*/
latestRequestReceivedAt?: Date;
/**
* このインスタンスと不通かどうか
*/
isNotResponding: boolean;
/**
* このインスタンスと最後にやり取りした日時
*/
lastCommunicatedAt: Date;
/**
* このインスタンスをブロックしているか
*/
isBlocked: boolean;
/**
* このインスタンスが閉鎖済みとしてマークされているか
*/
isMarkedAsClosed: boolean;
}