export function makePaginationQuery(q, sinceId, untilId, sinceDate, untilDate) {
    if (sinceId && untilId) {
        q.andWhere(`${q.alias}.id > :sinceId`, {
            sinceId: sinceId
        });
        q.andWhere(`${q.alias}.id < :untilId`, {
            untilId: untilId
        });
        q.orderBy(`${q.alias}.id`, "DESC");
    } else if (sinceId) {
        q.andWhere(`${q.alias}.id > :sinceId`, {
            sinceId: sinceId
        });
        q.orderBy(`${q.alias}.id`, "ASC");
    } else if (untilId) {
        q.andWhere(`${q.alias}.id < :untilId`, {
            untilId: untilId
        });
        q.orderBy(`${q.alias}.id`, "DESC");
    } else if (sinceDate && untilDate) {
        q.andWhere(`${q.alias}.createdAt > :sinceDate`, {
            sinceDate: new Date(sinceDate)
        });
        q.andWhere(`${q.alias}.createdAt < :untilDate`, {
            untilDate: new Date(untilDate)
        });
        q.orderBy(`${q.alias}.createdAt`, "DESC");
    } else if (sinceDate) {
        q.andWhere(`${q.alias}.createdAt > :sinceDate`, {
            sinceDate: new Date(sinceDate)
        });
        q.orderBy(`${q.alias}.createdAt`, "ASC");
    } else if (untilDate) {
        q.andWhere(`${q.alias}.createdAt < :untilDate`, {
            untilDate: new Date(untilDate)
        });
        q.orderBy(`${q.alias}.createdAt`, "DESC");
    } else {
        q.orderBy(`${q.alias}.id`, "DESC");
    }
    return q;
}
