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(), historicoAlteracoes: v.optional( v.array( v.object({ data: v.number(), usuarioId: v.id('usuarios'), acao: v.string() }) ) ) }) .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']) };