Команды и запросы модуля tasks

Полный справочник CQRS-команд и запросов модуля tasks.

1. Задачи

КомандаПараметрыОписание / права
CreateTaskCommandtitle, columnId, priorityId, createdBy, boardId, description?, dueDate?, plannedStart?, plannedEnd?, assignedTo?, parentId?Создание задачи. Право: canCreateTask
UpdateTaskCommandid, updatedBy, + изменяемые поляОбновление. Право: canUpdateTask
DeleteTaskCommand (soft)id, deletedByМягкое удаление (deletedAt). Право: canDeleteTask
HardDeleteTaskCommandid, deletedByЖёсткое удаление. Право: canHardDeleteTask
RestoreTaskCommandid, restoredByВосстановление. Право: canRestoreTask
AssignTaskCommandtaskId, assigneeId, assignedByНазначение исполнителя. Право: canAssignTask
MoveTaskToColumnCommandid, columnId, movedByПеренос в колонку. Право: canMoveTaskToColumn

События, диспатчимые хендлерами:

graph LR
    A[MoveTaskToColumnHandler] -->|dispatch| TMC[TaskMovedToColumnEvent]
    TMC --> AT[AutoTimerListener]
    TMC --> NL[TaskNotificationListener]
    TMC --> LG[TaskLoggerListener]

2. Колонки (BoardColumn)

КомандаПараметрыПраво
CreateBoardColumnCommandboardId, name, label, sortOrder, createdBy, isActive?, isFinal?, color?, workflowId?canCreateColumn
UpdateBoardColumnCommandid, updatedBy, + поляcanUpdateColumn
DeleteBoardColumnCommandid, deletedBycanDeleteColumn (пустая колонка)
ReorderBoardColumnsCommandboardId, orderedIds (int[]), updatedBycanCreateColumn/canUpdateColumn

Запросы:

3. Комментарии

КомандаПараметрыПраво
AddCommentCommandtaskId, userId, contentcanCommentOnTask
UpdateCommentCommandid, userId, contentавтор комментария
DeleteCommentCommandid, userIdавтор комментария

Запросы: ListCommentsQuery, GetCommentQuery.

События: CommentAddedEvent, CommentUpdatedEvent (слушает TaskLoggerListener).

4. Стикеры

КомандаПараметрыПраво
CreateStickerCommandname, type, createdBy, projectId?, data?, color?создатель
UpdateStickerCommandid, + полясоздатель/админ
DeleteStickerCommandidсоздатель/админ
AttachStickerToTaskCommandtaskId, stickerIdcanAddStickerToTask
DetachStickerFromTaskCommandtaskId, stickerIdcanAddStickerToTask

Запросы: ListStickersQuery, GetStickerQuery, GetTaskStickersQuery.

Событие: StickerAttachedToTaskEvent (логирование).

5. Тайм-трекинг

5.1. StartTimerCommand → StartTimerHandler

5.2. StopTimerCommand → StopTimerHandler

5.3. LogManualIntervalCommand → LogManualIntervalHandler

5.4. Запросы

ЗапросПараметрыРезультат
ListTimeIntervalsQuerytaskId, userId, from?, to?TimeIntervalDto[]
GetTaskTimeSummaryQuerytaskIdTaskTimeSummaryDto (blocks + total)
GetDailySummaryQueryuserId, dateDailySummaryDto[]
GetUserBusyChartQueryuserId, from, to, granularity, modeBusySegmentDto[]

6. Приоритеты

ЗапросОписание
ListPrioritiesQueryСписок приоритетов (TaskPriorityDto[])

7. Фильтры ListTasksQuery

ListTasksQuery(userId, filters) поддерживает критерии (см. toCriteria()):

Ключ фильтраТипКритерий
columnIdintпо колонке
assignedTointпо исполнителю
createdByintпо создателю
boardIdintпо доске
parentIdintпо родителю
onlyCompleteboolтолько завершённые
onlyOverdueboolтолько просроченные
includeDeletedboolвключая удалённые

Пользователь может листать только задачи в проектах, где он участник (проверка canViewTask в хендлере).