65 lines
1.4 KiB
TypeScript
65 lines
1.4 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;
|
|
}
|
|
});
|