feat: Implement order flow management with backend logic, configuration UI, and order timeline display.
This commit is contained in:
@@ -112,5 +112,46 @@ export const pedidosTables = {
|
||||
})
|
||||
.index('by_requestId', ['requestId'])
|
||||
.index('by_pedidoId', ['pedidoId'])
|
||||
.index('by_criadoPor', ['criadoPor'])
|
||||
.index('by_criadoPor', ['criadoPor']),
|
||||
|
||||
// ========== FLUXO DE PEDIDOS ==========
|
||||
|
||||
// Configuração das etapas do fluxo de pedidos (dinâmico)
|
||||
pedidoFluxoEtapa: defineTable({
|
||||
nome: v.string(), // Nome da etapa (ex: "Rascunho", "Aguardando Aceite")
|
||||
codigo: v.string(), // Código único (ex: "rascunho", "aguardando_aceite")
|
||||
descricao: v.optional(v.string()),
|
||||
setorId: v.optional(v.id('setores')), // Setor responsável por esta etapa
|
||||
tempoEstimadoDias: v.optional(v.number()), // Tempo estimado em dias
|
||||
incluirNoTimeline: v.boolean(), // Se false, não aparece no timeline (ex: rascunho)
|
||||
ordem: v.number(), // Ordem de exibição
|
||||
criadoEm: v.number(),
|
||||
atualizadoEm: v.number()
|
||||
})
|
||||
.index('by_codigo', ['codigo'])
|
||||
.index('by_ordem', ['ordem']),
|
||||
|
||||
// Transições possíveis entre etapas
|
||||
pedidoFluxoTransicao: defineTable({
|
||||
etapaOrigemId: v.id('pedidoFluxoEtapa'),
|
||||
etapaDestinoId: v.id('pedidoFluxoEtapa'),
|
||||
isPadrao: v.boolean(), // Se é a transição padrão quando há múltiplas opções
|
||||
criadoEm: v.number()
|
||||
})
|
||||
.index('by_etapaOrigemId', ['etapaOrigemId'])
|
||||
.index('by_etapaOrigemId_isPadrao', ['etapaOrigemId', 'isPadrao']),
|
||||
|
||||
// Histórico de etapas do pedido
|
||||
pedidoEtapasHistorico: defineTable({
|
||||
pedidoId: v.id('pedidos'),
|
||||
etapaId: v.id('pedidoFluxoEtapa'),
|
||||
inicioData: v.number(),
|
||||
fimData: v.optional(v.number()),
|
||||
funcionarioId: v.optional(v.id('funcionarios')),
|
||||
atual: v.boolean()
|
||||
})
|
||||
.index('by_pedidoId', ['pedidoId'])
|
||||
.index('by_pedidoId_atual', ['pedidoId', 'atual'])
|
||||
.index('by_etapaId', ['etapaId'])
|
||||
.index('by_funcionarioId', ['funcionarioId'])
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user