]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/typings/models/account/actor-follow.ts
Translated using Weblate (Polish)
[github/Chocobozzz/PeerTube.git] / server / typings / models / account / actor-follow.ts
CommitLineData
453e83ea 1import { ActorFollowModel } from '../../../models/activitypub/actor-follow'
0283eaac
C
2import {
3 MActor,
0283eaac
C
4 MActorChannelAccountActor,
5 MActorDefault,
d7a25329 6 MActorDefaultAccountChannel,
1ca9f7c3 7 MActorFormattable,
0283eaac
C
8 MActorHost,
9 MActorUsername
10} from './actor'
453e83ea 11import { PickWith } from '../../utils'
0283eaac 12import { ActorModel } from '@server/models/activitypub/actor'
d7a25329 13import { MChannelDefault } from '../video/video-channels'
0283eaac
C
14
15type Use<K extends keyof ActorFollowModel, M> = PickWith<ActorFollowModel, K, M>
16
17// ############################################################################
453e83ea
C
18
19export type MActorFollow = Omit<ActorFollowModel, 'ActorFollower' | 'ActorFollowing'>
20
0283eaac
C
21// ############################################################################
22
23export type MActorFollowFollowingHost = MActorFollow &
24 Use<'ActorFollowing', MActorUsername & MActorHost>
25
26// ############################################################################
27
28// With actors or actors default
29
453e83ea 30export type MActorFollowActors = MActorFollow &
0283eaac
C
31 Use<'ActorFollower', MActor> &
32 Use<'ActorFollowing', MActor>
453e83ea
C
33
34export type MActorFollowActorsDefault = MActorFollow &
0283eaac
C
35 Use<'ActorFollower', MActorDefault> &
36 Use<'ActorFollowing', MActorDefault>
453e83ea
C
37
38export type MActorFollowFull = MActorFollow &
8424c402
C
39 Use<'ActorFollower', MActorDefaultAccountChannel> &
40 Use<'ActorFollowing', MActorDefaultAccountChannel>
453e83ea 41
0283eaac
C
42// ############################################################################
43
44// For subscriptions
45
1ca9f7c3
C
46type SubscriptionFollowing = MActorDefault &
47 PickWith<ActorModel, 'VideoChannel', MChannelDefault>
48
0283eaac
C
49export type MActorFollowActorsDefaultSubscription = MActorFollow &
50 Use<'ActorFollower', MActorDefault> &
1ca9f7c3 51 Use<'ActorFollowing', SubscriptionFollowing>
0283eaac 52
453e83ea 53export type MActorFollowSubscriptions = MActorFollow &
0283eaac 54 Use<'ActorFollowing', MActorChannelAccountActor>
1ca9f7c3
C
55
56// ############################################################################
57
58// Format for API or AP object
59
60export type MActorFollowFormattable = Pick<MActorFollow, 'id' | 'score' | 'state' | 'createdAt' | 'updatedAt'> &
61 Use<'ActorFollower', MActorFormattable> &
62 Use<'ActorFollowing', MActorFormattable>