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