2.7 KiB
2.7 KiB
План доработки модуля Tasks
На основе ТЗ п.3.6
Этап 1: RBAC + валидация (Готово ✅)
canCreate()в create(), store()canEdit()в edit(), update(), moveColumn(), complete(), reopen()canDelete()в destroy()- Валидация в store(), update()
- Исправлен нейминг событий:
task.*(singular)
Этап 2: Подзадачи (Subtasks) - Готово ✅
2.1 Миграция
task_subtasks (id, task_id, title, is_completed, order_index, created_at)
2.2 Модель + API
- TaskSubtaskModel
- addSubtask(), toggleSubtask(), deleteSubtask()
2.3 View
- Отображение подзадач в task/show.twig
- Чекбоксы для toggle
Commit: cee6c63, 5bf25d9, 85a920b, f6aebd8
Этап 3: Вложения (Attachments)
Этап 4: Вложения
4.1 Миграция
task_attachments (id, task_id, file_name, file_path, file_size, uploaded_by, created_at)
4.2 API
- uploadAttachment(), deleteAttachment()
Этап 5: Комментарии + @mentions
5.1 Миграция
task_comments (id, task_id, user_id, content, mentioned_users(JSON), created_at)
5.2 Обработка @mentions
- Парсинг
@user_idиз текста - Создание уведомлений для упомянутых
Этап 6: Зависимости задач
6.1 Миграция
task_dependencies (id, blocking_task_id, blocked_task_id, type)
6.2 Логика
- Проверка при completeTask(): если есть незавершённые blocking tasks — ошибка
Этап 7: Интеграция CRM → Tasks
7.1 Events
Events::on('deal.created') → создать задачу "Первичный контакт"
Events::on('deal.stage_changed') → при этапе "КП" создать задачу
Events::on('deal.won') → создать задачу "Благодарность клиенту"
Этап 8: Интеграция Booking → Tasks
Events::on('booking.created') → создать задачу "Подготовка к встрече"
Приоритеты
| Этап | Задача | Оценка | Статус |
|---|---|---|---|
| 1 | RBAC + валидация | 4ч | ✅ Готово |
| 2 | Подзадачи | 8ч | ✅ Готово |
| 3 | Вложения | 8ч | В процессе |
| 4 | Комментарии + @mentions | 12ч | - |
| 5 | Зависимости | 6ч | - |
| 6 | CRM → Tasks | 8ч | - |
| 7 | Booking → Tasks | 4ч | - |
Готово: 12ч | Осталось: ~38ч