68 lines
1.5 KiB
TypeScript
68 lines
1.5 KiB
TypeScript
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;
|
|
},
|
|
});
|
|
|