import asyncio
pedidos = [
{"id": 101, "pagamento_aprovado": True, "estoque_disponivel": True},
{"id": 102, "pagamento_aprovado": True, "estoque_disponivel": False},
{"id": 103, "pagamento_aprovado": False, "estoque_disponivel": True},
{"id": 104, "pagamento_aprovado": True, "estoque_disponivel": True},
{"id": 105, "pagamento_aprovado": False, "estoque_disponivel": False},
]
async def processar_pedidos():
print("Processando pedidos...\n")
await asyncio.sleep(2)
for pedido in pedidos:
print("\n==============================")
print("Pedido {}".format(pedido["id"]))
print("==============================\n")
if pedido["estoque_disponivel"]:
print("Processando o pedido no estoque....")
await asyncio.sleep(1)
print("Pedido: {} disponível no estoque".format(pedido["id"]))
print("Processando pagamento....")
await asyncio.sleep(1)
if pedido["pagamento_aprovado"]:
print("Pagamento aprovado")
await asyncio.sleep(1)
print("Pedido: {} processado com sucesso".format(pedido["id"]))
await asyncio.sleep(1)
print("Enviando e-mail de confirmação....")
await notificar()
await asyncio.sleep(1)
print("E-mail enviado com sucesso")
await asyncio.sleep(1)
print("Pedido: {} confirmado! Enviado para entrega".format(pedido["id"]))
else:
print("Pagamento reprovado")
await asyncio.sleep(1)
print("Pedido: {} reprovado".format(pedido["id"]))
else:
print("Processando o pedido no estoque....")
await asyncio.sleep(1)
print("Pedido: {} indisponível no estoque".format(pedido["id"]))
await asyncio.sleep(1)
print("Pedido: {} reprovado".format(pedido["id"]))
# Código reaproveitado da atividade anterior
async def notificar():
print("Enviando notificações....")
await asyncio.sleep(2)
print("Notificações foram enviadas para os remetentes")
async def main():
await processar_pedidos()
asyncio.run(main())