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; } });