0
respostas

[Dúvida] Esta conforme ?

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())