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 processa_pedido(pedido):
print()
print(f'Processando pedido # {pedido['id']}...')
if pedido['pagamento_aprovado'] :
print(f"Pagamento aprovado para o pedido #{pedido['id']}.")
else:
print(f"Pagamento recusado para o pedido #{pedido['id']}. Pedido cancelado.")
return
if pedido['estoque_disponivel'] :
print(f"Estoque disponível para o pedido #{pedido['id']}.")
else:
print(f"Estoque indisponível para o pedido #{pedido['id']}. Pedido cancelado.")
return
if (not pedido['pagamento_aprovado']) & (not pedido['estoque_disponivel']):
print(f"Pagamento recusado para o pedido #{pedido['id']}. Pedido cancelado.")
else:
print(f"Pedido # {pedido['id']} confirmado! Enviado para entrega")
async def main():
tasks = [asyncio.create_task(processa_pedido(pedido)) for pedido in pedidos]
await asyncio.gather(*tasks)
print()
print("Todos os pedidos foram processados!")
asyncio.run(main())