import { ChannelFollowings } from "../../../models/index.js";
import { Brackets } from "typeorm";
export function generateChannelQuery(q, me) {
    if (me == null) {
        q.andWhere("note.channelId IS NULL");
    } else {
        q.leftJoinAndSelect("note.channel", "channel");
        const channelFollowingQuery = ChannelFollowings.createQueryBuilder("channelFollowing").select("channelFollowing.followeeId").where("channelFollowing.followerId = :followerId", {
            followerId: me.id
        });
        q.andWhere(new Brackets((qb)=>{
            qb// チャンネルのノートではない
            .where("note.channelId IS NULL")// または自分がフォローしているチャンネルのノート
            .orWhere(`note.channelId IN (${channelFollowingQuery.getQuery()})`);
        }));
        q.setParameters(channelFollowingQuery.getParameters());
    }
}
