bp/TASKS_MODULE_ROADMAP.md

2.7 KiB
Raw Blame History

План доработки модуля 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 + валидация Готово
2 Подзадачи Готово
3 Вложения В процессе
4 Комментарии + @mentions 12ч -
5 Зависимости -
6 CRM → Tasks -
7 Booking → Tasks -

Готово: 12ч | Осталось: ~38ч