38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { defineTable } from 'convex/server';
|
|
import { v } from 'convex/values';
|
|
|
|
export const situacaoContrato = v.union(
|
|
v.literal('em_execucao'),
|
|
v.literal('rescendido'),
|
|
v.literal('aguardando_assinatura'),
|
|
v.literal('finalizado')
|
|
);
|
|
|
|
export const contratosTables = {
|
|
contratos: defineTable({
|
|
contratadaId: v.id('empresas'),
|
|
objeto: v.string(),
|
|
numeroNotaEmpenho: v.string(),
|
|
responsavelId: v.id('funcionarios'),
|
|
departamento: v.string(),
|
|
situacao: situacaoContrato,
|
|
numeroProcessoLicitatorio: v.string(),
|
|
modalidade: v.string(),
|
|
numeroContrato: v.string(),
|
|
anoContrato: v.number(),
|
|
dataInicioVigencia: v.string(),
|
|
dataFimVigencia: v.string(),
|
|
nomeFiscal: v.string(),
|
|
valorTotal: v.string(),
|
|
dataAditivoPrazo: v.optional(v.string()),
|
|
diasAvisoVencimento: v.number(),
|
|
criadoPor: v.id('usuarios'),
|
|
criadoEm: v.number(),
|
|
atualizadoEm: v.optional(v.number())
|
|
})
|
|
.index('by_responsavel', ['responsavelId'])
|
|
.index('by_situacao', ['situacao'])
|
|
.index('by_vigencia_inicio', ['dataInicioVigencia'])
|
|
.index('by_vigencia_fim', ['dataFimVigencia'])
|
|
};
|