давай поступим так покажи мне полным кодом, как можно изменить код так, чтобы при нажатии кнопки ДА текст Вы действительно хотите удалить все заявки? Это действие необратимо. заменялся на Пожалуйста, введите пароль для подтверждения: а кнопк ДА и НЕТ исчезали

Вот полный код

import html
import logging
import os
import requests
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import (
    ContextTypes,
    ConversationHandler,
    MessageHandler,
    filters,
    CallbackQueryHandler,
    CommandHandler,
)
from dotenv import load_dotenv

from utils import process_telegram_input  # Импортируем функцию из utils.py
import globals  # Импортируем модуль globals для доступа к ADMIN_CHAT_ID
from reader import JsonRead  # Предполагается, что reader.py содержит класс JsonRead

# Определение состояний для ConversationHandler
ADMIN_USERNAME, ADMIN_PASSWORD, ADMIN_MAIN, ADMIN_DELETE_IDENTIFIER, ADMIN_CLEAR_PASSWORD = range(5)

# Настройка логирования для данного модуля
logger = logging.getLogger(__name__)

# Загрузка переменных окружения и настройка серверного URL
path_env = r"d:\VsCodeProjects\.Projects\BotSIP\Package\.env"
path_json = r"d:\VsCodeProjects\.Projects\BotSIP\Package\text.json"
load_dotenv(dotenv_path=path_env)

SERVER_URL = f"http://{os.getenv('FASTAPI_HOST', '127.0.0.1')}:{os.getenv('FASTAPI_PORT', '8000')}"
reader = JsonRead(path_json)  # Предполагается, что reader.py содержит класс JsonRead

async def admin_start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Начало процесса авторизации администратора."""
    try:
        await update.message.reply_text("Введите логин:")
        return ADMIN_USERNAME
    except Exception as e:
        logger.error(f"Ошибка при запросе логина администратора: {e}")
        await update.message.reply_text("Произошла ошибка при обработке запроса.")
        return ConversationHandler.END

async def admin_username(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка введённого логина администратора."""
    username = update.message.text.strip()
    context.user_data["admin_username"] = username
    try:
        await update.message.reply_text("Введите пароль:")
        return ADMIN_PASSWORD
    except Exception as e:
        logger.error(f"Ошибка при запросе пароля администратора: {e}")
        await update.message.reply_text("Произошла ошибка при обработке запроса.")
        return ConversationHandler.END

async def admin_password(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка введённого пароля администратора и проверка учетных данных."""
    password = update.message.text.strip()
    username = context.user_data.get("admin_username")
    credentials = {"username": username, "password": password}
    try:
        response = requests.post(f"{SERVER_URL}/admin_login/", json=credentials)
        if response.status_code == 200:
            await update.message.reply_text(
                "Получен доступ к админ панели. Нажмите на 'ЗАЯВКИ' для просмотра заявок."
            )
            keyboard = [
                [InlineKeyboardButton("ЗАЯВКИ", callback_data="applications")],
                [InlineKeyboardButton("ПОСЛЕДНЯЯ", callback_data="last_application")],
                [InlineKeyboardButton("УДАЛИТЬ", callback_data="delete_application")],
                [InlineKeyboardButton("ОЧИСТИТЬ", callback_data="clear_applications")]
            ]
            reply_markup = InlineKeyboardMarkup(keyboard)
            await update.effective_message.reply_text("Меню администратора:", reply_markup=reply_markup)
            # Установка ADMIN_CHAT_ID в глобальной переменной
            globals.ADMIN_CHAT_ID = update.effective_chat.id
            logger.info(f"ADMIN_CHAT_ID установлен: {globals.ADMIN_CHAT_ID}")
            return ADMIN_MAIN
        else:
            await update.message.reply_text("Неверный логин или пароль!")
            logger.warning(f"Неудачная попытка входа: {credentials}")
            return ConversationHandler.END
    except Exception as e:
        logger.error(f"Ошибка при входе администратора: {e}")
        await update.message.reply_text("Произошла ошибка при попытке входа. Попробуйте позже.")
        return ConversationHandler.END

async def admin_main_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка основных действий администратора после авторизации."""
    query = update.callback_query
    if query:
        await query.answer()

        if query.data == "applications":
            await ViewApplications(update, context)
            return ADMIN_MAIN
        elif query.data == "last_application":
            await send_last_application(update, context)
            return ADMIN_MAIN
        elif query.data == "delete_application":
            await prompt_delete_application(update, context)
            return ADMIN_DELETE_IDENTIFIER
        elif query.data == "clear_applications":
            await prompt_clear_applications(update, context)
            return ADMIN_CLEAR_PASSWORD
        else:
            await query.message.reply_text("Неизвестная команда.")
            return ADMIN_MAIN
    return ADMIN_MAIN

async def prompt_delete_application(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Запрос идентификатора заявки для удаления."""
    query = update.callback_query
    await query.answer()
    try:
        await query.message.reply_text(
            "Введите ФИО или ссылку на Telegram аккаунт заявки, которую хотите удалить:"
        )
        context.user_data["admin_action"] = "delete_application"
    except Exception as e:
        logger.error(f"Ошибка при запросе удаления заявки: {e}")
        await query.message.reply_text("Произошла ошибка при обработке запроса.")

async def delete_application_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка введённого идентификатора заявки и удаление заявки."""
    text = update.message.text
    identifier = text.strip()
    try:
        response = requests.post(f"{SERVER_URL}/delete_application/", json={"identifier": identifier})
        if response.status_code == 200:
            await update.message.reply_text("Заявка успешно удалена.")
            logger.info(f"Заявка с идентификатором '{identifier}' успешно удалена.")
        elif response.status_code == 404:
            await update.message.reply_text("Заявка не найдена.")
            logger.warning(f"Попытка удаления несуществующей заявки с идентификатором '{identifier}'.")
        else:
            await update.message.reply_text("Не удалось удалить заявку.")
            logger.error(f"Не удалось удалить заявку с идентификатором '{identifier}': статус {response.status_code}")
    except Exception as e:
        logger.error(f"Ошибка при удалении заявки: {e}")
        await update.message.reply_text("Произошла ошибка при удалении заявки.")
    finally:
        context.user_data.pop("admin_action", None)
    return ADMIN_MAIN

async def prompt_clear_applications(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Запрос подтверждения очистки всех заявок."""
    query = update.callback_query
    await query.answer()
    keyboard = [
        [InlineKeyboardButton("ДА", callback_data="confirm_clear_yes")],
        [InlineKeyboardButton("НЕТ", callback_data="confirm_clear_no")]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    try:
        await query.message.reply_text(
            "Вы действительно хотите удалить все заявки? Это действие необратимо.",
            reply_markup=reply_markup
        )
    except Exception as e:
        logger.error(f"Ошибка при запросе очистки заявок: {e}")
        await query.message.reply_text("Произошла ошибка при обработке запроса.")

async def confirm_clear_yes(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка подтверждения очистки всех заявок и запрос пароля."""
    try:
        query = update.callback_query
        await query.answer()

        context.user_data["admin_action"] = "clear_applications_password"
        await query.message.reply_text("Пожалуйста, введите пароль для подтверждения:")
        return ADMIN_CLEAR_PASSWORD

    except Exception as e:
        logger.error(f"Ошибка при запросе пароля для очистки заявок: {e}")
        await query.message.reply_text("Произошла ошибка при обработке запроса.")
        return ADMIN_MAIN

async def confirm_clear_no(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка отказа от очистки заявок."""
    query = update.callback_query
    await query.answer()
    try:
        await query.message.reply_text("Очистка заявок отменена.")
    except Exception as e:
        logger.error(f"Ошибка при отмене очистки заявок: {e}")
        await query.message.reply_text("Произошла ошибка при отмене очистки заявок.")
    return ADMIN_MAIN

async def clear_applications_password_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Обработка введённого пароля и очистка всех заявок."""
    password = update.message.text.strip()
    try:
        response = requests.post(f"{SERVER_URL}/clear_applications/", json={"password": password})
        if response.status_code == 200:
            await update.message.reply_text("Все заявки успешно удалены.")
            logger.info("Все заявки успешно удалены.")
        elif response.status_code == 401:
            await update.message.reply_text("Неверный пароль. Очистка заявок отменена.")
            logger.warning("Попытка очистки заявок с неверным паролем.")
        else:
            await update.message.reply_text("Не удалось очистить заявки.")
            logger.error(f"Не удалось очистить заявки: статус {response.status_code}")
    except Exception as e:
        logger.error(f"Ошибка при очистке заявок: {e}")
        await update.message.reply_text("Произошла ошибка при очистке заявок.")
    finally:
        context.user_data.pop("admin_action", None)
    return ADMIN_MAIN

async def ViewApplications(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Отправка всех заявок администратору."""
    query = update.callback_query
    await query.answer()
    try:
        response = requests.get(f"{SERVER_URL}/get_applications/")
        if response.status_code == 200:
            applications = response.json()
            if not applications:
                await query.message.reply_text("Нет доступных заявок.")
                return
            for app in applications:
                try:
                    telegram_url = app.get('telegram', '')
                    if not telegram_url.startswith('http://') and not telegram_url.startswith('https://'):
                        telegram_url = process_telegram_input(telegram_url)
                    if not telegram_url.startswith('http'):
                        raise ValueError(f"Некорректный URL: {telegram_url}")

                    message = (
                        f"📋 <b>Новая заявка!</b>\n\n"
                        f"<b>ФИО:</b> {html.escape(app.get('fio', 'Не указано'))}\n"
                        f"<b>Взгляды:</b> {html.escape(app.get('views', 'Не указано'))}\n"
                        f"<b>Место проживания:</b> {html.escape(app.get('city', 'Не указано'))}\n"
                        f"<b>Ссылка:</b> <a href=\"{telegram_url}\">{html.escape(app.get('telegram', 'Не указано'))}</a>"
                    )
                    button = InlineKeyboardButton("🔗 СВЯЗАТЬСЯ", url=telegram_url)
                    reply_markup = InlineKeyboardMarkup([[button]])
                    await query.message.reply_text(message, reply_markup=reply_markup, parse_mode='HTML')
                except Exception as e:
                    logger.error(f"Ошибка при отправке заявки: {e}")
                    await query.message.reply_text("Произошла ошибка при отображении одной из заявок.")
        else:
            logger.error(f"Ошибка при получении заявок: статус {response.status_code}")
            await query.message.reply_text("Не удалось получить заявки.")
    except Exception as e:
        logger.error(f"Ошибка при получении заявок: {e}")
        await query.message.reply_text("Произошла ошибка при получении заявок.")

async def send_last_application(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Отправка последней заявки администратору."""
    query = update.callback_query
    await query.answer()
    try:
        response = requests.get(f"{SERVER_URL}/get_last_application/")
        if response.status_code == 200:
            app_data = response.json()
            message = (
                f"📋 <b>Последняя заявка:</b>\n\n"
                f"<b>ФИО:</b> {html.escape(app_data.get('fio', 'Не указано'))}\n"
                f"<b>Взгляды:</b> {html.escape(app_data.get('views', 'Не указано'))}\n"
                f"<b>Место проживания:</b> {html.escape(app_data.get('city', 'Не указано'))}\n"
                f"<b>Telegram:</b> <a href=\"{html.escape(app_data.get('telegram', 'Не указано'))}\">{html.escape(app_data.get('telegram', 'Не указано'))}</a>"
            )
            await query.message.reply_text(message, parse_mode='HTML', disable_web_page_preview=True)
        elif response.status_code == 404:
            await query.message.reply_text("Нет доступных заявок.")
        else:
            await query.message.reply_text("Не удалось получить последнюю заявку.")
    except Exception as e:
        logger.error(f"Ошибка при получении последней заявки: {e}")
        await query.message.reply_text("Произошла ошибка при получении заявки.")

async def admin_cancel(update: Update, context: ContextTypes.DEFAULT_TYPE):
    """Отмена административной сессии."""
    await update.message.reply_text("Административная сессия завершена.")
    return ConversationHandler.END

# Создаём ConversationHandler для администратора
admin_conv_handler = ConversationHandler(
    entry_points=[CommandHandler('admin', admin_start)],
    states={
        ADMIN_USERNAME: [MessageHandler(filters.TEXT & ~filters.COMMAND, admin_username)],
        ADMIN_PASSWORD: [MessageHandler(filters.TEXT & ~filters.COMMAND, admin_password)],
        ADMIN_MAIN: [
            CallbackQueryHandler(admin_main_handler, pattern='^(applications|last_application|delete_application|clear_applications)$'),
            CallbackQueryHandler(confirm_clear_yes, pattern='^confirm_clear_yes$'),
            CallbackQueryHandler(confirm_clear_no, pattern='^confirm_clear_no$'),
        ],
        ADMIN_DELETE_IDENTIFIER: [MessageHandler(filters.TEXT & ~filters.COMMAND, delete_application_handler)],
        ADMIN_CLEAR_PASSWORD: [MessageHandler(filters.TEXT & ~filters.COMMAND, clear_applications_password_handler)],
    },
    fallbacks=[CommandHandler('cancel', admin_cancel)],
    allow_reentry=True,  # Позволяет повторно запускать ConversationHandler
)