import { v } from "convex/values";
import { internalQuery, query } from "./_generated/server";

export const get = query({
  args: { roomId: v.id("rooms") },
  handler: async (ctx, args) => {
    const clips = await ctx.db
      .query("clips")
      .filter((q) => q.eq(q.field("roomId"), args.roomId))
      .order("desc")
      .take(20);

    return Promise.all(
      clips.map(async (clip) => {
        const user = await ctx.db.get(clip.userId);
        return {
          user: {
            name: user?.name,
          },
          ...clip,
        };
      })
    );
  },
});

export const getByIds = internalQuery({
  args: { clipIds: v.array(v.id("clips")) },
  handler: async (ctx, args) => {
    return Promise.all(args.clipIds.map((clipId) => ctx.db.get(clipId)));
  },
});
