В код добавлены новые методы для работы с настройками пользователя, включая создание таблицы `UserSettings`, отображение настроек и изменение состояния уведомлений.
Метод `CreateUserSettingsTableIfNotExists` создает таблицу, если она не существует, и обрабатывает возможные ошибки при создании. Метод `ShowUserSettings` загружает текущие настройки пользователя из базы данных и отправляет сообщение с возможностью изменения состояния уведомлений.
В обработке обновлений добавлена логика для обработки нажатий на кнопки, связанных с настройками пользователя и переключением уведомлений. Метод `NotifyUserAboutStatusChange` теперь проверяет, включены ли уведомления для пользователя, перед отправкой сообщения о смене статуса заявки.
Метод `ToggleNotifications` изменяет состояние уведомлений для пользователя и обновляет соответствующую запись в базе данных, а также отображает обновленные настройки. В меню добавлена кнопка для перехода к настройкам пользователя.
Внесены изменения в класс `Program` для улучшения управления администраторами:
- Добавлено поле `adminFullNames` для хранения полных имен администраторов.
- Изменена логика авторизации: теперь требуется указание полного имени.
- Обновлена база данных для хранения полных имен в таблице `Admins`.
- Изменены SQL-запросы для работы с новым полем `FullName`.
- Обновлены сообщения пользователям с информацией о полном имени администратора.
- Добавлен метод `SaveReportToDatabase` для сохранения отчетов.
- Обновлена логика изменения статуса отчетов с сохранением ID администратора.
В коде реализованы новые команды для администраторов, включая добавление администраторов, просмотр списка администраторов, доступ к админ-панели, а также управление отчетами (просмотр, изменение статуса и удаление). Добавлена обработка неверного пароля при авторизации. Удалена лишняя проверка на команду "/admins" для улучшения читаемости кода.