1 import { ServerModel } from '../../../models/server/server'
2 import { FunctionProperties, PickWith } from '../../utils'
3 import { MAccountBlocklistId } from '../account'
5 type Use<K extends keyof ServerModel, M> = PickWith<ServerModel, K, M>
7 // ############################################################################
9 export type MServer = Omit<ServerModel, 'Actors' | 'BlockedByAccounts'>
11 // ############################################################################
13 export type MServerHost = Pick<MServer, 'host'>
14 export type MServerRedundancyAllowed = Pick<MServer, 'redundancyAllowed'>
16 export type MServerHostBlocks =
18 Use<'BlockedByAccounts', MAccountBlocklistId[]>
20 // ############################################################################
22 // Format for API or AP object
24 export type MServerFormattable =
25 FunctionProperties<MServer> &