refactor: remove documentation components and related routes to streamline the application structure and improve maintainability
This commit is contained in:
@@ -1,152 +0,0 @@
|
||||
import { defineTable } from 'convex/server';
|
||||
import { v } from 'convex/values';
|
||||
|
||||
export const documentacaoTables = {
|
||||
// Documentos principais
|
||||
documentacao: defineTable({
|
||||
titulo: v.string(),
|
||||
conteudo: v.string(), // Conteúdo em Markdown
|
||||
conteudoHtml: v.optional(v.string()), // Conteúdo renderizado em HTML
|
||||
conteudoBusca: v.string(), // Versão normalizada para busca (lowercase, sem acentos)
|
||||
categoriaId: v.optional(v.id('documentacaoCategorias')),
|
||||
tags: v.array(v.string()),
|
||||
tipo: v.union(
|
||||
v.literal('query'),
|
||||
v.literal('mutation'),
|
||||
v.literal('action'),
|
||||
v.literal('component'),
|
||||
v.literal('route'),
|
||||
v.literal('modulo'),
|
||||
v.literal('manual'),
|
||||
v.literal('outro')
|
||||
),
|
||||
versao: v.string(), // Versão do documento (ex: "1.0.0")
|
||||
arquivoOrigem: v.optional(v.string()), // Caminho do arquivo que gerou este documento
|
||||
funcaoOrigem: v.optional(v.string()), // Nome da função/componente que gerou este documento
|
||||
hashOrigem: v.optional(v.string()), // Hash do arquivo/função para detectar mudanças
|
||||
metadados: v.optional(
|
||||
v.object({
|
||||
parametros: v.optional(v.array(v.string())),
|
||||
retorno: v.optional(v.string()),
|
||||
dependencias: v.optional(v.array(v.string())),
|
||||
exemplos: v.optional(v.array(v.string())),
|
||||
algoritmo: v.optional(v.string())
|
||||
})
|
||||
),
|
||||
ativo: v.boolean(),
|
||||
criadoPor: v.id('usuarios'),
|
||||
criadoEm: v.number(),
|
||||
atualizadoPor: v.optional(v.id('usuarios')),
|
||||
atualizadoEm: v.number(),
|
||||
visualizacoes: v.number(), // Contador de visualizações
|
||||
geradoAutomaticamente: v.boolean() // Se foi gerado pela varredura automática
|
||||
})
|
||||
.index('by_categoria', ['categoriaId'])
|
||||
.index('by_tipo', ['tipo'])
|
||||
.index('by_busca', ['conteudoBusca'])
|
||||
.index('by_ativo', ['ativo'])
|
||||
.index('by_criado_em', ['criadoEm'])
|
||||
.index('by_atualizado_em', ['atualizadoEm'])
|
||||
.index('by_arquivo_origem', ['arquivoOrigem'])
|
||||
.index('by_hash_origem', ['hashOrigem']),
|
||||
|
||||
// Categorias hierárquicas (Módulos, Seções, Funções)
|
||||
documentacaoCategorias: defineTable({
|
||||
nome: v.string(),
|
||||
descricao: v.optional(v.string()),
|
||||
icone: v.optional(v.string()), // Nome do ícone (lucide-svelte)
|
||||
cor: v.optional(
|
||||
v.union(
|
||||
v.literal('primary'),
|
||||
v.literal('secondary'),
|
||||
v.literal('accent'),
|
||||
v.literal('success'),
|
||||
v.literal('warning'),
|
||||
v.literal('error'),
|
||||
v.literal('info')
|
||||
)
|
||||
),
|
||||
parentId: v.optional(v.id('documentacaoCategorias')), // Para hierarquia
|
||||
ordem: v.number(), // Ordem de exibição
|
||||
ativo: v.boolean(),
|
||||
criadoPor: v.id('usuarios'),
|
||||
criadoEm: v.number(),
|
||||
atualizadoEm: v.number()
|
||||
})
|
||||
.index('by_parent', ['parentId'])
|
||||
.index('by_ordem', ['ordem'])
|
||||
.index('by_ativo', ['ativo']),
|
||||
|
||||
// Tags para busca e organização
|
||||
documentacaoTags: defineTable({
|
||||
nome: v.string(),
|
||||
descricao: v.optional(v.string()),
|
||||
cor: v.optional(
|
||||
v.union(
|
||||
v.literal('primary'),
|
||||
v.literal('secondary'),
|
||||
v.literal('accent'),
|
||||
v.literal('success'),
|
||||
v.literal('warning'),
|
||||
v.literal('error'),
|
||||
v.literal('info')
|
||||
)
|
||||
),
|
||||
usadoEm: v.number(), // Contador de quantos documentos usam esta tag
|
||||
ativo: v.boolean(),
|
||||
criadoPor: v.id('usuarios'),
|
||||
criadoEm: v.number()
|
||||
})
|
||||
.index('by_nome', ['nome'])
|
||||
.index('by_ativo', ['ativo']),
|
||||
|
||||
// Histórico de varreduras realizadas
|
||||
documentacaoVarredura: defineTable({
|
||||
tipo: v.union(v.literal('automatica'), v.literal('manual')),
|
||||
status: v.union(
|
||||
v.literal('em_andamento'),
|
||||
v.literal('concluida'),
|
||||
v.literal('erro'),
|
||||
v.literal('cancelada')
|
||||
),
|
||||
documentosEncontrados: v.number(), // Quantidade de documentos encontrados
|
||||
documentosNovos: v.number(), // Quantidade de novos documentos criados
|
||||
documentosAtualizados: v.number(), // Quantidade de documentos atualizados
|
||||
arquivosAnalisados: v.number(), // Quantidade de arquivos analisados
|
||||
erros: v.optional(v.array(v.string())), // Lista de erros encontrados
|
||||
duracaoMs: v.optional(v.number()), // Duração em milissegundos
|
||||
executadoPor: v.id('usuarios'),
|
||||
iniciadoEm: v.number(),
|
||||
concluidoEm: v.optional(v.number())
|
||||
})
|
||||
.index('by_status', ['status'])
|
||||
.index('by_tipo', ['tipo'])
|
||||
.index('by_executado_por', ['executadoPor'])
|
||||
.index('by_iniciado_em', ['iniciadoEm']),
|
||||
|
||||
// Configurações de agendamento de varredura
|
||||
documentacaoConfig: defineTable({
|
||||
ativo: v.boolean(),
|
||||
diasSemana: v.array(
|
||||
v.union(
|
||||
v.literal('domingo'),
|
||||
v.literal('segunda'),
|
||||
v.literal('terca'),
|
||||
v.literal('quarta'),
|
||||
v.literal('quinta'),
|
||||
v.literal('sexta'),
|
||||
v.literal('sabado')
|
||||
)
|
||||
), // Dias da semana para executar varredura
|
||||
horario: v.string(), // Horário no formato "HH:MM" (ex: "08:00")
|
||||
fusoHorario: v.optional(v.string()), // Fuso horário (padrão: "America/Recife")
|
||||
ultimaExecucao: v.optional(v.number()), // Timestamp da última execução
|
||||
proximaExecucao: v.optional(v.number()), // Timestamp da próxima execução agendada
|
||||
configuradoPor: v.id('usuarios'),
|
||||
configuradoEm: v.number(),
|
||||
atualizadoPor: v.optional(v.id('usuarios')),
|
||||
atualizadoEm: v.number()
|
||||
})
|
||||
.index('by_ativo', ['ativo'])
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user