# Оценки задач из TODO_NEXT_DAY.md

## Извлеченный список задач

1. **Интеграционные тесты системы уведомлений**: Создание интеграционного теста для полной цепочки от пользователя до уведомления, включая тестирование сценариев модерации и проверку зависимостей (UserRepository, ScoreRepository).

2. **Улучшение обработки ошибок в NotificationService**: Добавление специфической обработки сетевых ошибок (ConnectionError, TimeoutError), rate limiting для Telegram API и логирование ошибок.

3. **Мониторинг отправки уведомлений**: Добавление счетчиков успешных/неудачных отправок, метод для получения статистики и интеграция с системой метрик.

4. **Повторные попытки отправки уведомлений**: Реализация механизма повторных попыток с экспоненциальной задержкой и ограничением максимального количества попыток.

5. **Добавить контекстные меню с учетом прав доступа**: Реализация отображения контекстных меню на основе ролей пользователя, интеграция проверок разрешений и тестирование для разных уровней доступа.

6. **Добавить реакцию на сообщения пользователей в чате**: Реализация обработки сообщений на наличие "+" и автоматическая реакция с эмодзи рукопожатия в групповых чатах.

## Оценки для каждой задачи

1. **Интеграционные тесты системы уведомлений**  
   **Сложность**: Средняя (требует понимания архитектуры, интеграции с репозиториями и настройки тестового окружения).  
   **Зависимости**: Зависит от существующих репозиториев (UserRepository, ScoreRepository) и системы модерации; может выполняться параллельно с другими задачами по уведомлениям.  
   **Оценка времени на написание тестов**: 2-4 часа (средняя сложность интеграции, включая mock-объекты и проверку состояния базы данных).

2. **Улучшение обработки ошибок в NotificationService**  
   **Сложность**: Высокая (требует глубокого понимания Telegram API, асинхронной обработки и логирования).  
   **Зависимости**: Связана с задачей 1 (интеграционные тесты) и задачей 4 (повторные попытки); должна выполняться после базовой интеграции уведомлений.  
   **Оценка времени на написание тестов**: 4-6 часов (высокая сложность, включая mock-сервисы для симуляции сетевых сбоев и проверки логирования).

3. **Мониторинг отправки уведомлений**  
   **Сложность**: Средняя (требует работы с метриками и счетчиками, но опирается на существующие компоненты).  
   **Зависимости**: Интегрируется с существующими метриками; зависит от задачи 2 (улучшение обработки ошибок) для корректного учета неудач.  
   **Оценка времени на написание тестов**: 2-4 часа (средняя сложность, включая mock-метрики и проверку счетчиков).

4. **Повторные попытки отправки уведомлений**  
   **Сложность**: Высокая (требует работы с асинхронными таймерами и обработкой исключений).  
   **Зависимости**: Требует задачи 2 (улучшение обработки ошибок); критически зависит от NotificationService.  
   **Оценка времени на написание тестов**: 4-6 часов (высокая сложность, включая сценарии сбоев, проверку задержек и максимального числа попыток).

5. **Добавить контекстные меню с учетом прав доступа**  
   **Сложность**: Средняя (требует интеграции с системой ролей и UI-компонентами).  
   **Зависимости**: Требует наличия системы ролей; не зависит от задач по уведомлениям, может выполняться параллельно.  
   **Оценка времени на написание тестов**: 2-4 часа (средняя сложность, включая сценарии с разными ролями и mock-пользователями).

6. **Добавить реакцию на сообщения пользователей в чате**
   **Сложность**: Низкая (простая логика парсинга и API-вызов).
   **Зависимости**: Независимая задача; может быть выполнена в любое время.
   **Оценка времени на написание тестов**: 1-2 часа (низкая сложность, включая парсинг сообщений и реакцию в различных контекстах).

## План выполнения задач

На основе оценок сложности и зависимостей, составлен план выполнения с учетом параллелизма. Зависимости: задача 2 зависит от 1, задачи 3 и 4 зависят от 2, задачи 5 и 6 независимы. Время на реализацию оценено по сложности (низкая: 1-2ч, средняя: 2-4ч, высокая: 4-6ч), плюс время на тесты из файла. Общее время на задачу = реализация + тесты.

### Оценки задач с временами

1. **Интеграционные тесты системы уведомлений**
   - Реализация: 3ч (средняя сложность)
   - Тесты: 3ч (среднее из 2-4ч)
   - Итого: 6ч

2. **Улучшение обработки ошибок в NotificationService**
   - Реализация: 5ч (высокая сложность)
   - Тесты: 5ч (среднее из 4-6ч)
   - Итого: 10ч

3. **Мониторинг отправки уведомлений**
   - Реализация: 3ч (средняя сложность)
   - Тесты: 3ч (среднее из 2-4ч)
   - Итого: 6ч

4. **Повторные попытки отправки уведомлений**
   - Реализация: 5ч (высокая сложность)
   - Тесты: 5ч (среднее из 4-6ч)
   - Итого: 10ч

5. **Добавить контекстные меню с учетом прав доступа**
   - Реализация: 3ч (средняя сложность)
   - Тесты: 3ч (среднее из 2-4ч)
   - Итого: 6ч

6. **Добавить реакцию на сообщения пользователей в чате**
   - Реализация: 1.5ч (низкая сложность)
   - Тесты: 1.5ч (среднее из 1-2ч)
   - Итого: 3ч

### Диаграмма Ганта (Markdown-таблица)
Параллелизм: задачи 5 и 6 могут идти параллельно с 1-4, но для простоты стартуют после 1. Задачи 3 и 4 параллельно после 2. Общий срок: 16ч (сумма критического пути: 1→2→3/4 + параллельные 5/6).

| Задача | Старт (день) | Конец (день) | Продолжительность (ч) | Зависимости |
|--------|--------------|--------------|------------------------|-------------|
| 1. Интеграционные тесты | 1 | 1 | 6 | - |
| 2. Обработка ошибок | 2 | 3 | 10 | 1 |
| 3. Мониторинг | 4 | 4 | 6 | 2 |
| 4. Повторные попытки | 4 | 5 | 10 | 2 |
| 5. Контекстные меню | 2 | 2 | 6 | - |
| 6. Реакция на сообщения | 2 | 2 | 3 | - |

Общий срок: 16ч (критический путь: 1+2+4=16ч, другие параллельно).