CreateWorkTimeEntryRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/CreateWorkTimeEntryRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
userId | 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 | нет | Объяснение пропуска прошлых рабочих дней. Обязательно, если одновременно: (1) юзер сейчас IsSoftBlocked (см. workTimeBacklogStateAccessService.GetMy()) и (2) startedAt < сегодня (UTC) — то есть запись back-dated. Для записи на текущий день поле опционально даже в soft-block. При пустом backlogReason для back-dated записи сервер вернёт 400 work-time-entry-backlog-soft-block-reason-required. При IsHardBlocked поле не помогает — сервер вернёт 400 work-time-entry-backlog-hard-block, разрешение возможно только через HeadOffice (EnteredBy != UserId). Сохраняется на самой записи (WorkTimeEntryDto.backlogReason) для аудита. | — |
Пример
json
{
"userId": 0,
"type": "<WorkTimeEntryTypeDto>",
"startedAt": "2026-05-05T08:00:00Z",
"endedAt": "2026-05-05T08:00:00Z",
"breakMinutes": 0,
"status": "<WorkTimeStatusDto>",
"note": "string",
"backlogReason": "string"
}