# Реализация удаления своих реакций

## Описание изменений

Добавлена возможность пользователям удалять свои собственные реакции на сообщения в чате.

## Внесенные изменения

### 1. MessageAdapter.kt
- Добавлен параметр `currentUserId` в конструктор для гибкого определения текущего пользователя
- Обновлена логика определения принадлежности реакции пользователю
- Добавлено уведомление пользователю, если он пытается удалить реакцию, которую не ставил
- Обновлены методы `bind()`, `showMessageActionsDialog()` и `displayReactions()` для использования переданного `currentUserId`

### 2. ChatActivity.kt
- Обновлен вызов `MessageAdapter` для передачи `currentUserId` из SharedPreferences
- Добавлено получение `user_id` из настроек приложения

### 3. ChatViewModel.kt
- Уже содержал метод `removeReaction()` для удаления реакций
- Уже содержал список разрешенных эмодзи для реакций

### 4. ChatRepository.kt
- Уже содержал метод `unreactToMessage()` для API-запроса удаления реакции

### 5. ChatApiService.kt
- Уже содержал endpoint `PUT /api/chat/chats/{chatId}/messages/{messageId}/unreact/{reactionId}` для удаления реакций

## Как это работает

1. Пользователь видит реакции на сообщения в виде эмодзи
2. При долгом нажатии на реакцию, система проверяет, принадлежит ли эта реакция текущему пользователю
3. Если реакция принадлежит пользователю:
   - Показывается диалог подтверждения удаления
   - При подтверждении вызывается `removeReaction()` в ViewModel
   - ViewModel вызывает `unreactToMessage()` в Repository
   - Repository делает API-запрос на сервер
   - После успешного удаления сообщения обновляются
4. Если реакция не принадлежит пользователю:
   - Показывается toast с сообщением "Вы не можете удалить эту реакцию"

## Технические детали

- Используется long-click для активации удаления реакции (чтобы не конфликтовать с обычным кликом для просмотра списка пользователей)
- Реакции группируются по эмодзи для компактного отображения
- При удалении реакции сообщения автоматически обновляются
- Система проверяет принадлежность реакции пользователю по `chatUserId`

## Безопасность

- Пользователь может удалять только свои собственные реакции
- Сервер также проверяет права пользователя при обработке запроса на удаление реакции
- Нет возможности удалить реакции других пользователей

## Тестирование

Для тестирования функциональности:

1. Откройте чат с другими пользователями
2. Поставьте реакцию на сообщение
3. Долго нажмите на свою реакцию
4. Подтвердите удаление в диалоге
5. Убедитесь, что реакция исчезла из списка

Также можно проверить:
- Попытку удаления чужой реакции (должен появиться toast)
- Удаление реакции с количеством > 1 (реакция должна исчезнуть полностью)
- Удаление последней реакции (реакции должны полностью исчезнуть из сообщения)
