Imagine que você tem um serviço de refeições e todos os dias há uma refeição diferente que os clientes podem pedir.
Mon, Dec 12: Pasta
Tue, Dec 13: Pizza
Wed, Dec 14: Gnocci
As encomendas podem ser feitas até às 9h.
Isso significa que, segunda-feira, às 8h, os clientes podem pedir massas para hoje, às 9h15, eles não podem mais fazer pedidos para hoje.
Como lidar com isso é com o PostgreSQL.
Eu vejo duas maneiras:
- Crie um cron job que alterne a coluna "orderable" para False.
- Crie uma visão que calcule o campo "pedível" em tempo real.
Existe uma terceira ou quarta via viável?
Qual caminho é simples e robusto?
Contanto que você tenha as datas em uma coluna de datas, você pode usar um simples
CASE
para escolher, qual refeição é selecionada.O resultado se a consulta, depende de quando você olhar para o exemplo, ele vai escolher macarrão antes das 9 da manhã um minuto depois e você obteria nhoque, você só precisa entrar nos menus com antecedência
Em um evento você poderia excluir os menus antigos, mas isso não é necessário, pois você não terá milhões de linhas.
db<>fique aqui