-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstream-event.ts
47 lines (44 loc) · 1.07 KB
/
stream-event.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import type { PageId, ProjectId, StringLc, UnixTime, UserId } from "./base.ts";
export type ProjectUpdatesStreamEvent =
| PageDeleteEvent
| MemberJoinEvent
| MemberAddEvent
| AdminAddEvent
| AdminDeleteEvent
| OwnerSetEvent
| InvitationResetEvent;
export interface ProjectEvent {
id: string;
pageId: PageId;
userId: UserId;
projectId: ProjectId;
created: UnixTime;
updated: UnixTime;
}
export interface PageDeleteEvent extends ProjectEvent {
type: "page.delete";
data: {
titleLc: StringLc;
};
}
export interface MemberJoinEvent extends ProjectEvent {
type: "member.join";
}
export interface MemberAddEvent extends ProjectEvent {
type: "member.add";
}
export interface InvitationResetEvent extends ProjectEvent {
type: "invitation.reset";
}
export interface AdminAddEvent extends ProjectEvent {
type: "admin.add";
targetUserId: UserId;
}
export interface AdminDeleteEvent extends ProjectEvent {
type: "admin.delete";
targetUserId: UserId;
}
export interface OwnerSetEvent extends ProjectEvent {
type: "owner.set";
targetUserId: UserId;
}