UpdateWorkTimeEntryRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/UpdateWorkTimeEntryRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
id | number | да | — | int |
type | WorkTimeEntryTypeDto | да | — | WorkTimeEntryTypeDto |
startedAt | string | да | ISO 8601 UTC instant, e.g. 2026-05-04T08:00:00Z | DateTime |
endedAt | string | да | ISO 8601 UTC instant; must fall on the same UTC calendar day as startedAt. | DateTime |
breakMinutes | number | да | — | int |
status | WorkTimeStatusDto | да | — | WorkTimeStatusDto |
note | string | null | нет | — | string? |
backlogReason | string | null | нет | См. CreateWorkTimeEntryRequestDto.backlogReason. Та же gate-семантика — требуется только когда IsSoftBlocked и новая startedAt < сегодня (UTC). | — |
unfreezeReason | string | null | нет | Audit-причина при разморозке Locked-записи (docx §7.7/§8.8). Обязательно, когда юзер пытается отредактировать запись со Status = Locked и имеет право RightToEditPastLockedEntries (или UserType = Admin). Без неё сервер вернёт 400 work-time-entry-locked-unfreeze-reason-required. Игнорируется на не-Locked записях. Save-flow для Manager без bypass-prava остаётся 400 work-time-entry-locked независимо от значения этого поля. | — |
Пример
json
{
"id": 0,
"type": "<WorkTimeEntryTypeDto>",
"startedAt": "2026-05-05T08:00:00Z",
"endedAt": "2026-05-05T08:00:00Z",
"breakMinutes": 0,
"status": "<WorkTimeStatusDto>",
"note": "string",
"backlogReason": "string",
"unfreezeReason": "string"
}