]>
Commit | Line | Data |
---|---|---|
2cb03dc1 | 1 | import { PickWith } from '@shared/core-utils' |
7d9ba5c0 | 2 | import { ActorFollowModel } from '../../../models/actor/actor-follow' |
0283eaac C |
3 | import { |
4 | MActor, | |
0283eaac C |
5 | MActorChannelAccountActor, |
6 | MActorDefault, | |
d7a25329 | 7 | MActorDefaultAccountChannel, |
2cb03dc1 | 8 | MActorDefaultChannelId, |
1ca9f7c3 | 9 | MActorFormattable, |
0283eaac C |
10 | MActorHost, |
11 | MActorUsername | |
12 | } from './actor' | |
0283eaac C |
13 | |
14 | type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M> | |
15 | ||
16 | // ############################################################################ | |
453e83ea C |
17 | |
18 | export type MActorFollow = Omit<ActorFollowModel, 'ActorFollower' | 'ActorFollowing'> | |
19 | ||
0283eaac C |
20 | // ############################################################################ |
21 | ||
a1587156 C |
22 | export type MActorFollowFollowingHost = |
23 | MActorFollow & | |
0283eaac C |
24 | Use<'ActorFollowing', MActorUsername & MActorHost> |
25 | ||
26 | // ############################################################################ | |
27 | ||
28 | // With actors or actors default | |
29 | ||
a1587156 C |
30 | export type MActorFollowActors = |
31 | MActorFollow & | |
0283eaac C |
32 | Use<'ActorFollower', MActor> & |
33 | Use<'ActorFollowing', MActor> | |
453e83ea | 34 | |
a1587156 C |
35 | export type MActorFollowActorsDefault = |
36 | MActorFollow & | |
0283eaac C |
37 | Use<'ActorFollower', MActorDefault> & |
38 | Use<'ActorFollowing', MActorDefault> | |
453e83ea | 39 | |
a1587156 C |
40 | export type MActorFollowFull = |
41 | MActorFollow & | |
8424c402 C |
42 | Use<'ActorFollower', MActorDefaultAccountChannel> & |
43 | Use<'ActorFollowing', MActorDefaultAccountChannel> | |
453e83ea | 44 | |
0283eaac C |
45 | // ############################################################################ |
46 | ||
47 | // For subscriptions | |
48 | ||
a1587156 C |
49 | export type MActorFollowActorsDefaultSubscription = |
50 | MActorFollow & | |
0283eaac | 51 | Use<'ActorFollower', MActorDefault> & |
2cb03dc1 | 52 | Use<'ActorFollowing', MActorDefaultChannelId> |
0283eaac | 53 | |
a1587156 C |
54 | export type MActorFollowSubscriptions = |
55 | MActorFollow & | |
0283eaac | 56 | Use<'ActorFollowing', MActorChannelAccountActor> |
1ca9f7c3 C |
57 | |
58 | // ############################################################################ | |
59 | ||
60 | // Format for API or AP object | |
61 | ||
a1587156 C |
62 | export type MActorFollowFormattable = |
63 | Pick<MActorFollow, 'id' | 'score' | 'state' | 'createdAt' | 'updatedAt'> & | |
1ca9f7c3 C |
64 | Use<'ActorFollower', MActorFormattable> & |
65 | Use<'ActorFollowing', MActorFormattable> |