DTO модуля tasks

Все DTO модуля: поля, типы, примеры JSON. DTO создаются ассемблерами из AR-моделей.

1. TaskDto

Файл: modules/tasks/application/dto/TaskDto.php

СвойствоТипОписание
idintID задачи
titlestringНазвание
description?stringОписание
columnIdintКолонка
priorityIdintПриоритет
dueDate?stringДедлайн
plannedStart?stringПланируемое начало (Y-m-d H:i:s)
plannedEnd?stringПланируемый конец
createdByintСоздатель
assignedTo?intИсполнитель
boardIdintДоска
parentId?intРодительская задача
overdueboolПросрочена
createdAtstringСоздана
updatedAtstringОбновлена
deletedAt?stringМягкое удаление
{
  "item": {
    "id": 100,
    "title": "Сверстать страницу",
    "description": "По макету",
    "columnId": 12,
    "priorityId": 2,
    "dueDate": "2026-04-01 18:00:00",
    "plannedStart": "2026-03-30 09:00:00",
    "plannedEnd": "2026-03-30 13:00:00",
    "createdBy": 12,
    "assignedTo": 7,
    "boardId": 5,
    "parentId": null,
    "overdue": false,
    "createdAt": "2026-03-17 10:00:00",
    "updatedAt": "2026-03-17 10:00:00",
    "deletedAt": null
  }
}

2. CommentDto

ПолеТип
idint
taskIdint
userIdint
contentstring
createdAtstring
updatedAtstring

3. StickerDto

ПолеТипОписание
idint
namestringИмя
typestringТип
projectId?intПроект (для user-стикеров)
data?arrayJSON-данные
color?stringЦвет
createdByintСоздатель
createdAt / updatedAtstringДаты

4. TimeIntervalDto

ПолеТипОписание
idint
taskIdint
userIdint
startTimestring Y-m-d H:i:sНачало
endTime?stringКонец (null — активный)
duration?intСекунды
comment?stringКомментарий
createdAt / updatedAtstringДаты

5. DailySummaryDto

ПолеТипОписание
idint
taskIdint
userIdint
datestring Y-m-dДата
totalDurationintСекунды суммарно
updatedAtstring

6. TaskTimeSummaryDto

ПолеТипОписание
taskIdint
taskTitlestring
blocksTimeBlockDto[]Блоки времени
totalDurationintВсего секунд

7. TimeBlockDto

ПолеТипОписание
startstringНачало
endstringКонец
type?stringsingle, merged, overlap
taskIds?arrayЗадачи (при пересечениях)
duration?intСекунды

8. BusySegmentDto

ПолеТипОписание
startstringH:i или Y-m-d H:i:s (в зависимости от детализации)
endstring
taskIds?arrayПересекающиеся задачи
anchorPoints?arrayПромежуточные якорные значения

Создаётся BusyChartService (см. time-tracking.md).

9. TaskPriorityDto

ПолеТип
idint
valueint
labelstring
color?string

10. BoardColumnDto

ПолеТипОписание
idint
boardIdint
namestringСистемное имя
labelstringОтображаемое название
sortOrderintПорядок
isActiveboolАктивная
isFinalboolФинальная
color?string
workflowId?int
createdAt / updatedAtstringДаты

11. Ассемблеры

АссемблерDTO
TaskDtoAssemblerTaskDto
CommentDtoAssemblerCommentDto
StickerDtoAssemblerStickerDto
TimeIntervalDtoAssemblerTimeIntervalDto
DailySummaryDtoAssemblerDailySummaryDto
BoardColumnDtoAssemblerBoardColumnDto
TaskPriorityDtoAssemblerTaskPriorityDto
TaskTimeSummaryDtoAssemblerTaskTimeSummaryDto
TimeIntervalDtoAssemblerTimeIntervalDto