feat: Introduce structured table definitions in convex/tables for various entities and remove the todos example table.

This commit is contained in:
2025-12-02 09:55:07 -03:00
parent 1c0bd219b2
commit 05e7f1181d
30 changed files with 2700 additions and 2535 deletions

View File

@@ -0,0 +1,36 @@
import { defineTable } from 'convex/server';
import { v } from 'convex/values';
export const ausenciasTables = {
// Solicitações de Ausências
solicitacoesAusencias: defineTable({
funcionarioId: v.id('funcionarios'),
dataInicio: v.string(),
dataFim: v.string(),
motivo: v.string(),
status: v.union(
v.literal('aguardando_aprovacao'),
v.literal('aprovado'),
v.literal('reprovado')
),
gestorId: v.optional(v.id('usuarios')),
dataAprovacao: v.optional(v.number()),
dataReprovacao: v.optional(v.number()),
motivoReprovacao: v.optional(v.string()),
observacao: v.optional(v.string()),
criadoEm: v.number()
})
.index('by_funcionario', ['funcionarioId'])
.index('by_status', ['status'])
.index('by_funcionario_and_status', ['funcionarioId', 'status']),
notificacoesAusencias: defineTable({
destinatarioId: v.id('usuarios'),
solicitacaoAusenciaId: v.id('solicitacoesAusencias'),
tipo: v.union(v.literal('nova_solicitacao'), v.literal('aprovado'), v.literal('reprovado')),
lida: v.boolean(),
mensagem: v.string()
})
.index('by_destinatario', ['destinatarioId'])
.index('by_destinatario_and_lida', ['destinatarioId', 'lida'])
};