2023-04-04 14:06:57 +09:00
|
|
|
import { notificationTypes } from '@/types.js';
|
2022-09-18 03:27:08 +09:00
|
|
|
import { User } from './User.js';
|
|
|
|
import { Note } from './Note.js';
|
|
|
|
import { FollowRequest } from './FollowRequest.js';
|
|
|
|
import { AccessToken } from './AccessToken.js';
|
2019-04-07 21:50:36 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
export type Notification = {
|
|
|
|
id: string;
|
2019-04-07 21:50:36 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
// RedisのためDateではなくstring
|
|
|
|
createdAt: string;
|
2019-04-07 21:50:36 +09:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 通知の送信者(initiator)
|
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
notifierId: User['id'] | null;
|
2019-04-07 21:50:36 +09:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 通知の種類。
|
|
|
|
* follow - フォローされた
|
|
|
|
* mention - 投稿で自分が言及された
|
2023-01-08 10:54:45 +09:00
|
|
|
* reply - 投稿に返信された
|
|
|
|
* renote - 投稿がRenoteされた
|
|
|
|
* quote - 投稿が引用Renoteされた
|
|
|
|
* reaction - 投稿にリアクションされた
|
2022-03-06 16:06:27 +09:00
|
|
|
* pollEnded - 自分のアンケートもしくは自分が投票したアンケートが終了した
|
2020-01-30 04:37:25 +09:00
|
|
|
* receiveFollowRequest - フォローリクエストされた
|
|
|
|
* followRequestAccepted - 自分の送ったフォローリクエストが承認された
|
2023-01-21 13:14:55 +09:00
|
|
|
* achievementEarned - 実績を獲得
|
2020-03-28 18:07:41 +09:00
|
|
|
* app - アプリ通知
|
2019-04-07 21:50:36 +09:00
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
type: typeof notificationTypes[number];
|
2019-04-07 21:50:36 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
noteId: Note['id'] | null;
|
2019-04-07 21:50:36 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
followRequestId: FollowRequest['id'] | null;
|
2020-01-30 04:37:25 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
reaction: string | null;
|
2020-01-30 04:37:25 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
choice: number | null;
|
2019-04-07 21:50:36 +09:00
|
|
|
|
2023-04-04 14:06:57 +09:00
|
|
|
achievement: string | null;
|
2023-01-21 13:14:55 +09:00
|
|
|
|
2020-03-28 18:07:41 +09:00
|
|
|
/**
|
|
|
|
* アプリ通知のbody
|
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
customBody: string | null;
|
2020-03-28 18:07:41 +09:00
|
|
|
|
|
|
|
/**
|
|
|
|
* アプリ通知のheader
|
|
|
|
* (省略時はアプリ名で表示されることを期待)
|
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
customHeader: string | null;
|
2020-03-28 18:07:41 +09:00
|
|
|
|
|
|
|
/**
|
|
|
|
* アプリ通知のicon(URL)
|
|
|
|
* (省略時はアプリアイコンで表示されることを期待)
|
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
customIcon: string | null;
|
2020-03-28 18:07:41 +09:00
|
|
|
|
|
|
|
/**
|
|
|
|
* アプリ通知のアプリ(のトークン)
|
|
|
|
*/
|
2023-04-04 14:06:57 +09:00
|
|
|
appAccessTokenId: AccessToken['id'] | null;
|
2019-04-07 21:50:36 +09:00
|
|
|
}
|