Função:
Retorna a lista de moedas/cédulas em fila de pregão aberta.
Inclui imagens, lance inicial, status e estatísticas de lances.
Observações Técnicas:
Subqueries para COUNT e MAX podem ser substituídas por LEFT JOIN em tabelas agregadas para melhorar performance em grandes filas.
Ordenação coloca primeiro as peças em leilão ativo (fimPregao IS NOT NULL) e depois as aguardando.
Função:
Registra um novo lance no pregão.
Regras importantes implementadas no PHP:
Aceita apenas lances maiores que o último.
Em caso de lance igual, apenas o primeiro é aceito (não há empate).
Sugestões:
Adicionar triggers ou constraints para reforçar a regra de lances maiores diretamente no banco.
Indexar (idMoeda, idAnuncio, valor_lance) para acelerar consultas de MAX(valor_lance).
Função:
Recupera o maior lance atual para exibição.
data_hora ASC garante que, em caso de empate de valores, o primeiro lance vence.
Observações:
Essencial para validar regras de empate do pregão.
Pode ser otimizada com índice em (idMoeda, idAnuncio, valor_lance, data_hora).
Função:
Retorna informações detalhadas das peças que estão na fila de pregão, usadas no catálogo e ficha técnica.
Sugestões:
Usar JOIN ao invés de IN para performance em grandes volumes.
Padronizar campos exibidos (nome, pais, ano, descricao) para facilitar front-end.
Função:
Fornece quantidade total de peças na fila para exibição no cabeçalho do catálogo.
Sugestão:
Criar query preparada com cache periódico, evitando contagem repetida em cada refresh da página.
Função:
Marca pregão como encerrado e define hora de finalização.
Observações:
Essencial para sincronização com front-end (ex.: destaque da próxima moeda).
Recomenda-se criar função PHP centralizada para atualização, evitando inconsistências.
Use Prepared Statements em todas as queries com parâmetros externos.
Indices adequados: (idMoeda, idAnuncio, valor_lance, data_hora) para performance.
Evitar subqueries em SELECT quando possível; substituir por JOIN + GROUP BY.
Auditoria: registrar logs de lances e alterações de status para rastreabilidade.
Paginação: sempre que listar grandes volumes, usar LIMIT OFFSET para reduzir carga.
Nilton Romani