import { v } from "convex/values"; import type { Doc } from "./_generated/dataModel"; import { query } from "./_generated/server"; import { requireArtifactMember, requireWorkMember } from "./authz"; export const get = query({ args: { artifactId: v.id("artifacts") }, handler: async (ctx, args): Promise | null> => { await requireArtifactMember(ctx, args.artifactId); return await ctx.db.get(args.artifactId); }, }); export const listForWork = query({ args: { limit: v.optional(v.number()), workId: v.id("works") }, handler: async (ctx, args): Promise[]> => { const { organizationId } = await requireWorkMember(ctx, args.workId); const limit = Math.min(Math.max(Math.floor(args.limit ?? 50), 1), 100); return await ctx.db .query("artifacts") .withIndex("by_workId_and_createdAt", (q) => q.eq("workId", args.workId)) .filter((q) => q.eq(q.field("organizationId"), organizationId)) .order("desc") .take(limit); }, });