Files
sgse-app/packages/backend/convex/tables/ausencias.ts

37 lines
1.2 KiB
TypeScript

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