import { v } from "convex/values"; import { query, mutation } from "./_generated/server"; export const listarPorFuncionario = query({ args: { funcionarioId: v.id("funcionarios"), }, returns: v.array( v.object({ _id: v.id("cursos"), _creationTime: v.number(), funcionarioId: v.id("funcionarios"), descricao: v.string(), data: v.string(), certificadoId: v.optional(v.id("_storage")), }) ), handler: async (ctx, args) => { return await ctx.db .query("cursos") .withIndex("by_funcionario", (q) => q.eq("funcionarioId", args.funcionarioId) ) .collect(); }, }); export const criar = mutation({ args: { funcionarioId: v.id("funcionarios"), descricao: v.string(), data: v.string(), certificadoId: v.optional(v.id("_storage")), }, returns: v.id("cursos"), handler: async (ctx, args) => { const cursoId = await ctx.db.insert("cursos", args); return cursoId; }, }); export const atualizar = mutation({ args: { id: v.id("cursos"), descricao: v.string(), data: v.string(), certificadoId: v.optional(v.id("_storage")), }, returns: v.null(), handler: async (ctx, args) => { const { id, ...updates } = args; await ctx.db.patch(id, updates); return null; }, }); export const excluir = mutation({ args: { id: v.id("cursos"), }, returns: v.null(), handler: async (ctx, args) => { await ctx.db.delete(args.id); return null; }, });