47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import * as mongo from 'mongodb';
|
|
import db from '../../db/mongodb';
|
|
import { IUser } from './user';
|
|
|
|
export default db.get('notifications') as any; // fuck type definition
|
|
|
|
export interface INotification {
|
|
_id: mongo.ObjectID;
|
|
created_at: Date;
|
|
|
|
/**
|
|
* 通知の受信者
|
|
*/
|
|
notifiee?: IUser;
|
|
|
|
/**
|
|
* 通知の受信者
|
|
*/
|
|
notifiee_id: mongo.ObjectID;
|
|
|
|
/**
|
|
* イニシエータ(initiator)。通知を行う原因となったユーザー
|
|
*/
|
|
notifier?: IUser;
|
|
|
|
/**
|
|
* イニシエータ(initiator)。通知を行う原因となったユーザー
|
|
*/
|
|
notifier_id: mongo.ObjectID;
|
|
|
|
/**
|
|
* 通知の種類。
|
|
* follow - フォローされた
|
|
* mention - 投稿で自分が言及された
|
|
* reply - (自分または自分がWatchしている)投稿が返信された
|
|
* repost - (自分または自分がWatchしている)投稿がRepostされた
|
|
* quote - (自分または自分がWatchしている)投稿が引用Repostされた
|
|
* reaction - (自分または自分がWatchしている)投稿にリアクションされた
|
|
* poll_vote - (自分または自分がWatchしている)投稿の投票に投票された
|
|
*/
|
|
type: 'follow' | 'mention' | 'reply' | 'repost' | 'quote' | 'reaction' | 'poll_vote';
|
|
|
|
/**
|
|
* 通知が読まれたかどうか
|
|
*/
|
|
is_read: Boolean;
|
|
}
|