]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/types/models/actor/actor-follow.ts
Merge branch 'release/3.2.0' into develop
[github/Chocobozzz/PeerTube.git] / server / types / models / actor / actor-follow.ts
CommitLineData
2cb03dc1 1import { PickWith } from '@shared/core-utils'
7d9ba5c0 2import { ActorFollowModel } from '../../../models/actor/actor-follow'
0283eaac
C
3import {
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
14type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M>
15
16// ############################################################################
453e83ea
C
17
18export type MActorFollow = Omit<ActorFollowModel, 'ActorFollower' | 'ActorFollowing'>
19
0283eaac
C
20// ############################################################################
21
a1587156
C
22export type MActorFollowFollowingHost =
23 MActorFollow &
0283eaac
C
24 Use<'ActorFollowing', MActorUsername & MActorHost>
25
26// ############################################################################
27
28// With actors or actors default
29
a1587156
C
30export type MActorFollowActors =
31 MActorFollow &
0283eaac
C
32 Use<'ActorFollower', MActor> &
33 Use<'ActorFollowing', MActor>
453e83ea 34
a1587156
C
35export type MActorFollowActorsDefault =
36 MActorFollow &
0283eaac
C
37 Use<'ActorFollower', MActorDefault> &
38 Use<'ActorFollowing', MActorDefault>
453e83ea 39
a1587156
C
40export 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
49export type MActorFollowActorsDefaultSubscription =
50 MActorFollow &
0283eaac 51 Use<'ActorFollower', MActorDefault> &
2cb03dc1 52 Use<'ActorFollowing', MActorDefaultChannelId>
0283eaac 53
a1587156
C
54export type MActorFollowSubscriptions =
55 MActorFollow &
0283eaac 56 Use<'ActorFollowing', MActorChannelAccountActor>
1ca9f7c3
C
57
58// ############################################################################
59
60// Format for API or AP object
61
a1587156
C
62export type MActorFollowFormattable =
63 Pick<MActorFollow, 'id' | 'score' | 'state' | 'createdAt' | 'updatedAt'> &
1ca9f7c3
C
64 Use<'ActorFollower', MActorFormattable> &
65 Use<'ActorFollowing', MActorFormattable>