import { db } from "../../db/postgre.js";
import { NoteFavorite } from "../entities/note-favorite.js";
import { Notes } from "../index.js";
export const NoteFavoriteRepository = db.getRepository(NoteFavorite).extend({
    async pack (src, me) {
        const favorite = typeof src === "object" ? src : await this.findOneByOrFail({
            id: src
        });
        return {
            id: favorite.id,
            createdAt: favorite.createdAt.toISOString(),
            noteId: favorite.noteId,
            // may throw error
            note: await Notes.pack(favorite.note || favorite.noteId, me)
        };
    },
    packMany (favorites, me) {
        return Promise.allSettled(favorites.map((x)=>this.pack(x, me))).then((promises)=>promises.flatMap((result)=>result.status === "fulfilled" ? [
                    result.value
                ] : []));
    }
});
