Telethon пересылка нескольких медиа

У меня есть код, который пересылает сообщения из одного телеграм канала, в другой канал и мне нужно сохранить альбом фотографий/видео чтобы отправить их все вместе, прямо как и в первом канале из которого идет пересылка(id у каждой фотографии в канале разные) и для этого нужно сохранить все полученные фотографии и после отправить их альбомом Проблема в том, что функция ассинхронная и загрузка следующего файла идет не дожидаясь окончания загрузки первого

@client.on(events.NewMessage(chats=CHAT_ID))
async def log_new_message(event):
    # если сообщение из чата то игнор
    if event.message.sender_id != CHANNEL_ID:
        return
    # если кружочек/голосовое то отправляется и сразу удаление файла
    # ТУТ У МЕНЯ ВСЕ В ПОРЯДКЕ ТАК КАК ТАКИЕ ФАЙЛЫ ОТПРАВЛЯЮТСЯ ПО ОДНОМУ
    if (event.message.video and "round_message=True" in str(event.message.media.document)) or (event.message.voice):
        try:
            file_path = await event.message.download_media()
            await client.send_file(PUBLIC_CHANNEL, file=file_path, video_note=True)
            print(f'new round/voice {datetime.datetime.now().time()}')

        finally:
            if file_path and os.path.exists(file_path):
                os.remove(file_path)
    # Для понимания, вот код который должен сохранять медиа(он может быть где то недоделанным, не обращайте внимания
    # сейв файла в список если фотка/видео/документ/аудиофайл
    elif (event.message.photo) or (event.message.video and "round_message=True" not in str(event.message.media.document)) or (event.message.document) or (event.message.audio):
        try:
            cursor.execute("""SELECT id from posts""")
            lastid = cursor.fetchall()[-1][0]
            print(lastid)
            caption = ''
            if event.message.document:
                documentbool = True
            else:
                documentbool = False
            if event.message.message:
                caption = event.message.message
            file_path = await event.message.download_media()
            post_tuple = (lastid+1, file_path, caption, documentbool)
            if file_path and os.path.exists(file_path):
                cursor.execute(SQLITE_INSERT, post_tuple)
                print(f'file saved {datetime.datetime.now().time()}')
                connection.commit()
        finally:
            ...

Я хотел бы узнать, есть ли вариант сделать так, чтобы медиа загружалось по порядку и его можно было бы например сохранить в базу данных или список (как я уже пробовал в коде выше) и после отправить все сохраненные файлы одним альбомом

У меня также есть код, который сохраняет каждый медиафайл и отправляет по одному

@client.on(events.NewMessage(chats=CHAT_ID))
async def log_new_message(event):
    if event.message.sender_id != CHANNEL_ID:
        return
    
    
    if event.message.poll:
            print("new poll message")

            poll = event.message.poll.poll
            question = TextWithEntities(text=poll.question.text, entities=poll.question.entities)
            answers = [PollAnswer(text=TextWithEntities(text=answer.text.text, entities=answer.text.entities), option=answer.option) for answer in poll.answers]
            
            await client.send_message(PUBLIC_CHANNEL, file=InputMediaPoll(
                poll=Poll(
                    id=poll.id,
                    question=question,
                    answers=answers,
                    closed=poll.closed,
                    public_voters=poll.public_voters,
                    multiple_choice=poll.multiple_choice,
                    quiz=poll.quiz,
                    close_period=poll.close_period,
                    close_date=poll.close_date
                )
            ))
    if event.message.media:
            file_path = await event.message.download_media()
            try:
                caption = event.message.message
                if event.message.photo:
                    await client.send_file(PUBLIC_CHANNEL, file=file_path, caption=caption)
                elif event.message.video:
                    if "round_message=False" in str(event.message.media.document): rounded_vidos = False
                    elif "round_message=True" in str(event.message.media.document): rounded_vidos = True
                    else: rounded_vidos = False
                    await client.send_file(PUBLIC_CHANNEL, file=file_path, video_note=rounded_vidos,caption=caption)
                    
                elif event.message.document:
                    await client.send_file(PUBLIC_CHANNEL, file=file_path, caption=caption)
                elif event.message.voice:
                    await client.send_file(PUBLIC_CHANNEL, file=file_path, caption=caption)
                elif event.message.audio:
                    await client.send_file(PUBLIC_CHANNEL, file=file_path, caption=caption)
            finally:
                if file_path and os.path.exists(file_path):
                    os.remove(file_path)