egirlskey/src/models/stats.ts
2018-08-23 15:40:24 +09:00

155 lines
2.7 KiB
TypeScript

import * as mongo from 'mongodb';
import db from '../db/mongodb';
const Stats = db.get<IStats>('stats');
Stats.createIndex({ date: -1 }, { unique: true });
export default Stats;
export interface IStats {
_id: mongo.ObjectID;
date: Date;
span: 'day' | 'hour';
/**
* ユーザーに関する統計
*/
users: {
local: {
/**
* この日時点での、ローカルのユーザーの総計
*/
total: number;
/**
* ローカルのユーザー数の前日比
*/
diff: number;
};
remote: {
/**
* この日時点での、リモートのユーザーの総計
*/
total: number;
/**
* リモートのユーザー数の前日比
*/
diff: number;
};
};
/**
* 投稿に関する統計
*/
notes: {
local: {
/**
* この日時点での、ローカルの投稿の総計
*/
total: number;
/**
* ローカルの投稿数の前日比
*/
diff: number;
diffs: {
/**
* ローカルの通常の投稿数の前日比
*/
normal: number;
/**
* ローカルのリプライの投稿数の前日比
*/
reply: number;
/**
* ローカルのRenoteの投稿数の前日比
*/
renote: number;
};
};
remote: {
/**
* この日時点での、リモートの投稿の総計
*/
total: number;
/**
* リモートの投稿数の前日比
*/
diff: number;
diffs: {
/**
* リモートの通常の投稿数の前日比
*/
normal: number;
/**
* リモートのリプライの投稿数の前日比
*/
reply: number;
/**
* リモートのRenoteの投稿数の前日比
*/
renote: number;
};
};
};
/**
* ドライブ(のファイル)に関する統計
*/
drive: {
local: {
/**
* この日時点での、ローカルのドライブファイル数の総計
*/
totalCount: number;
/**
* この日時点での、ローカルのドライブファイルサイズの総計
*/
totalSize: number;
/**
* ローカルのドライブファイル数の前日比
*/
diffCount: number;
/**
* ローカルのドライブファイルサイズの前日比
*/
diffSize: number;
};
remote: {
/**
* この日時点での、リモートのドライブファイル数の総計
*/
totalCount: number;
/**
* この日時点での、リモートのドライブファイルサイズの総計
*/
totalSize: number;
/**
* リモートのドライブファイル数の前日比
*/
diffCount: number;
/**
* リモートのドライブファイルサイズの前日比
*/
diffSize: number;
};
};
}