+ whereActorAnd.push({
+ id: {
+ [Op.in]: literal(`(SELECT "actor".id FROM actor LEFT JOIN server on server.id = actor."serverId" WHERE ${or.join(' OR ')})`)
+ }
+ })
+ }
+
+ const channelInclude: Includeable[] = []
+ const accountInclude: Includeable[] = []
+
+ if (options.forCount !== true) {
+ accountInclude.push({
+ model: ServerModel,
+ required: false
+ })
+
+ accountInclude.push({
+ model: ActorImageModel,
+ as: 'Avatars',
+ required: false
+ })
+
+ channelInclude.push({
+ model: ActorImageModel,
+ as: 'Avatars',
+ required: false
+ })
+
+ channelInclude.push({
+ model: ActorImageModel,
+ as: 'Banners',
+ required: false
+ })
+ }
+
+ if (options.forCount !== true || serverRequired) {
+ channelInclude.push({
+ model: ServerModel,
+ duplicating: false,
+ required: serverRequired,
+ where: whereServer
+ })