В Telegram API статус пользователя в группе (например, `administrator`, `member`, `restricted`, `left`, `kicked`) меняется в зависимости от его текущего состояния в группе. Когда пользователь подает заявку на вступление в закрытую группу, у него не изменяется статус в самой группе до тех пор, пока его заявка не будет обработана администратором.
Таким образом, если пользователь отправил заявку на вступление в группу, его статус остается на уровне `left`, пока администратор не одобрит заявку. После одобрения пользователю будет присвоен статус, соответствующий его роли в группе (например, `member`).
В вашем коде, если вам нужно проверить статус пользователя, который подал заявку на вступление, вы можете использовать такой подход:
1. Проверьте текущий статус пользователя в группе (он будет `left`).
2. Учитывайте, что поданная заявка на вступление не меняет этот статус.
3. После подтверждения администратором пользователь получит новый статус (например, `member`).
Пример кода:
```python
user_status = await message.bot.get_chat_member(chat_id=chat_id, user_id=user_id) # получаем статус пользователя
if user_status.status == 'left':
# Пользователь подал заявку, но еще не состоит в группе
# Здесь можно обработать ситуацию, когда заявка ожидает одобрения
await message.reply("Ваша заявка на вступление в группу отправлена и ожидает подтверждения.")
elif user_status.status == 'member':
# Пользователь уже является членом группы
await message.reply("Вы уже состоите в группе.")
```
Таким образом, можно отслеживать, что пользователь ждет одобрения, когда его статус равен `left`.