Skip to content

Manager Time Tracker DTO ​

Описание сущностей и типов из src/dto/managerTimeTracker/.

Обогащено snapshot-данными бэкенд-DTO (19 из 45 типов сопоставлено, snapshot от 2026-05-05T13:21:51.699Z).

Содержание ​


AbsenceDayHalfDto ​

Which part of the scheduled working day an absence occupies. NotFound is reserved for unexpected/unset values — always send a real value. FullDay = whole-day absence; Morning/Afternoon = half-day vacation (single day, consumes 0.5 of the day; allowed only for Vacation).

Значения ​

ИмяЗначениеОписание
NotFound0—
FullDay1—
Morning2—
Afternoon3—

Пример ​

json
0


AbsenceEntryDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/AbsenceEntryDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
userIdnumberда—int
typeAbsenceTypeDtoда—AbsenceTypeDto
dateFromstringдаISO YYYY-MM-DDDateOnly
dateTostringдаISO YYYY-MM-DDDateOnly
dayHalfAbsenceDayHalfDtoдаFullDay for whole-day absences; Morning/Afternoon for half-day vacation.—
statusWorkTimeStatusDtoда—WorkTimeStatusDto
reasonstring | nullда—string?
attachmentFileUrlstring | nullдаURL returned by FileApiClient on upload; null if no AU document attached. Use the file service to resolve a temp signed URL when displaying.string?
enteredBynumberда—int
approvedBynumber | nullда—int?
approvedAtstring | nullдаISO 8601 datetime; null until approved.DateTimeOffset?

Пример ​

json
{
  "id": 0,
  "userId": 0,
  "type": "<AbsenceTypeDto>",
  "dateFrom": "2026-05-05T08:00:00Z",
  "dateTo": "2026-05-05T08:00:00Z",
  "dayHalf": "<AbsenceDayHalfDto>",
  "status": "<WorkTimeStatusDto>",
  "reason": "string",
  "attachmentFileUrl": "https://...",
  "enteredBy": 0,
  "approvedBy": 0,
  "approvedAt": "2026-05-05T08:00:00Z"
}


AbsenceTypeDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Enums/AbsenceTypeDto.cs (feature.managertimetrackerservice).

Значения ​

ИмяЗначение (TS)ОписаниеКод (C#)
NotFound0—0
Vacation1—1
SickLeave2—2
SpecialLeave3—3
UnpaidLeave4—4
TimeOffInLieu5—5

Пример ​

json
0


CloseWorkScheduleRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/CloseWorkScheduleRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
closeOnstringдаISO YYYY-MM-DD — sets validTo and ends the schedule on this date.DateOnly

Пример ​

json
{
  "id": 0,
  "closeOn": "string"
}


CreateAbsenceEntryRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/Requests/CreateAbsenceEntryRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
userIdnumberда—int
typeAbsenceTypeDtoда—AbsenceTypeDto
dateFromstringдаISO YYYY-MM-DDDateOnly
dateTostringдаISO YYYY-MM-DDDateOnly
dayHalfAbsenceDayHalfDtoдаSend FullDay for whole-day absences. Morning/Afternoon mark a half-day vacation: allowed only for Vacation, must be a single day (dateFrom === dateTo), and consumes 0.5 of the day.—
reasonstring | nullнет—string?
attachmentFileUrlstring | nullнетURL of the AU document returned by FileApiClient on upload (required for SickLeave when settings.RequireAuDocument is on).string?

Пример ​

json
{
  "userId": 0,
  "type": "<AbsenceTypeDto>",
  "dateFrom": "2026-05-05T08:00:00Z",
  "dateTo": "2026-05-05T08:00:00Z",
  "dayHalf": "<AbsenceDayHalfDto>",
  "reason": "string",
  "attachmentFileUrl": "https://..."
}


CreateAbsenceEntryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
idnumberда—

Пример ​

json
{
  "id": 0
}


CreateWorkScheduleRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/CreateWorkScheduleRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
userIdnumberда—int
validFromstringдаISO YYYY-MM-DDDateOnly
validTostring | nullнетISO YYYY-MM-DD or null for an open-ended schedule.DateOnly?
isFullTimebooleanда—bool
employmentRatenumberдаDecimal between 0 and 1 (e.g. 0.5 = half-time).decimal
mondayStartstring | nullнетISO HH:mm:ss; null if no shift on that weekday.TimeOnly?
mondayEndstring | nullнет—TimeOnly?
tuesdayStartstring | nullнет—TimeOnly?
tuesdayEndstring | nullнет—TimeOnly?
wednesdayStartstring | nullнет—TimeOnly?
wednesdayEndstring | nullнет—TimeOnly?
thursdayStartstring | nullнет—TimeOnly?
thursdayEndstring | nullнет—TimeOnly?
fridayStartstring | nullнет—TimeOnly?
fridayEndstring | nullнет—TimeOnly?
saturdayStartstring | nullнет—TimeOnly?
saturdayEndstring | nullнет—TimeOnly?
sundayStartstring | nullнет—TimeOnly?
sundayEndstring | nullнет—TimeOnly?
lunchBreakMinutesnumberда—int
annualVacationDaysnumberда—int
notestring | nullнет—string?

Пример ​

json
{
  "userId": 0,
  "validFrom": "2026-05-05T08:00:00Z",
  "validTo": "2026-05-05T08:00:00Z",
  "isFullTime": false,
  "employmentRate": 0,
  "mondayStart": "string",
  "mondayEnd": "string",
  "tuesdayStart": "string",
  "tuesdayEnd": "string",
  "wednesdayStart": "string",
  "wednesdayEnd": "string",
  "thursdayStart": "string",
  "thursdayEnd": "string",
  "fridayStart": "string",
  "fridayEnd": "string",
  "saturdayStart": "string",
  "saturdayEnd": "string",
  "sundayStart": "string",
  "sundayEnd": "string",
  "lunchBreakMinutes": 0,
  "annualVacationDays": 0,
  "note": "string"
}


CreateWorkScheduleResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
idnumberда—

Пример ​

json
{
  "id": 0
}


CreateWorkTimeEntryRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/CreateWorkTimeEntryRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
userIdnumberда—int
typeWorkTimeEntryTypeDtoда—WorkTimeEntryTypeDto
startedAtstringдаISO 8601 UTC instant, e.g. 2026-05-04T08:00:00ZDateTime
endedAtstringдаISO 8601 UTC instant; must fall on the same UTC calendar day as startedAt.DateTime
breakMinutesnumberда—int
statusWorkTimeStatusDtoда—WorkTimeStatusDto
notestring | nullнет—string?
backlogReasonstring | 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"
}


CreateWorkTimeEntryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
idnumberда—
problemsWorkTimeProblemDto[]даSoft warnings emitted by the validation pipeline (ArbZG break, backlog tier, etc.).

Пример ​

json
{
  "id": 0,
  "problems": []
}


GetAbsenceEntriesByUserResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
absencesAbsenceEntryDto[]да—
countnumberда—

Пример ​

json
{
  "absences": [],
  "count": 0
}


GetAbsenceEntryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
absenceAbsenceEntryDtoда—

Пример ​

json
{
  "absence": "<AbsenceEntryDto>"
}


GetActiveWorkScheduleResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
scheduleWorkScheduleDto | nullдаnull when the user has no schedule covering the requested date.

Пример ​

json
{
  "schedule": "<workscheduledto>"
}


GetActiveWorkSchedulesRequestDto ​

Query parameters for GET /Api/WorkSchedules/Active.

userIds: omitted/null - filter is not applied; empty array - explicit filter, no rows are returned.

date: ISO YYYY-MM-DD; defaults to today (UTC) on the server when omitted.

Поля ​

ПолеТипОбязательноеОписание
datestring | nullнет—
userIdsnumber[] | nullнет—
currentPagenumberда1-based page number.
rowsPerPagenumberдаItems per page.
sortBystring | nullнетServer-side field name to sort by.
descendingbooleanдаtrue for DESC, false for ASC.

Пример ​

json
{
  "date": "2026-05-05T08:00:00Z",
  "userIds": [],
  "currentPage": 0,
  "rowsPerPage": 0,
  "sortBy": "string",
  "descending": false
}


GetActiveWorkSchedulesResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
paginationPaginationResult<WorkScheduleDto>да—

Пример ​

json
{
  "pagination": "<PaginationResult<WorkScheduleDto>>"
}


GetCurrentTimerResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
entryWorkTimeEntryDto | nullдаnull when no timer is currently running for the calling user.

Пример ​

json
{
  "entry": "<worktimeentrydto>"
}


GetWorkScheduleResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
scheduleWorkScheduleDtoда—

Пример ​

json
{
  "schedule": "<WorkScheduleDto>"
}


GetWorkSchedulesByUserResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
schedulesWorkScheduleDto[]да—
countnumberда—

Пример ​

json
{
  "schedules": [],
  "count": 0
}


GetWorkTimeBacklogStateResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
stateWorkTimeBacklogStateDtoда—

Пример ​

json
{
  "state": "<WorkTimeBacklogStateDto>"
}


GetWorkTimeDaySummaryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
dayWorkTimeDaySummaryDtoда—

Пример ​

json
{
  "day": "<WorkTimeDaySummaryDto>"
}


GetWorkTimeEntriesByUserResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
entriesWorkTimeEntryDto[]да—
countnumberда—

Пример ​

json
{
  "entries": [],
  "count": 0
}


GetWorkTimeEntriesRequestDto ​

Query parameters for GET /Api/WorkTimeEntries.

Все фильтры опциональны: при отсутствии — соответствующее условие не применяется. dateTimeFrom / dateTimeTo сравниваются с startedAt записи (ISO 8601 UTC).

Поля ​

ПолеТипОбязательноеОписание
paginationPaginationда—
dateTimeFromstring | nullнет—
dateTimeTostring | nullнет—
userIdnumber | nullнет—

Пример ​

json
{
  "pagination": "<Pagination>",
  "dateTimeFrom": "2026-05-05T08:00:00Z",
  "dateTimeTo": "2026-05-05T08:00:00Z",
  "userId": 0
}


GetWorkTimeEntriesResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
paginationPaginationResult<WorkTimeEntryDto>да—

Пример ​

json
{
  "pagination": "<PaginationResult<WorkTimeEntryDto>>"
}


GetWorkTimeEntryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
entryWorkTimeEntryDtoда—

Пример ​

json
{
  "entry": "<WorkTimeEntryDto>"
}


GetWorkTimeMonthSummaryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
summaryWorkTimeMonthSummaryDtoда—

Пример ​

json
{
  "summary": "<WorkTimeMonthSummaryDto>"
}


GetWorkTimeReportsResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
yearnumberда—
monthnumberда—
summariesWorkTimeMonthSummaryDto[]да—
countnumberда—

Пример ​

json
{
  "year": 0,
  "month": 0,
  "summaries": [],
  "count": 0
}


GetWorkTimeSettingsResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
settingsWorkTimeSettingsDtoда—

Пример ​

json
{
  "settings": "<WorkTimeSettingsDto>"
}


StartTimerRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/StartTimerRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
notestring | nullнет—string?

Пример ​

json
{
  "note": "string"
}


StartTimerResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
entryWorkTimeEntryDtoдаEither the freshly-created running entry or — when a timer was already running — the existing one (idempotent). Distinguish via id/startTime if you need to know which case fired.

Пример ​

json
{
  "entry": "<WorkTimeEntryDto>"
}


StopTimerRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/StopTimerRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
breakMinutesnumber | nullнетBreak minutes to record on the entry. null/omitted is treated as 0.int?
notestring | nullнетOptional override for the running entry's stored Note. When provided, used as the Note on the resulting WorkTimeEntry instead of whatever was passed to Start. Useful for unblocking validation failures that need a Note (e.g. an approved-absence-day override) without restarting the timer.string?
backlogReasonstring | nullнетОбъяснение пропуска прошлых рабочих дней. Для StopTimer практически не нужен (таймер всегда финализирует запись на сегодняшнюю дату — cross-midnight отбрасывается отдельно), но оставлен для симметрии с Create/Update. Сохраняется в финальной записи (WorkTimeEntryDto.backlogReason).—

Пример ​

json
{
  "breakMinutes": 0,
  "note": "string",
  "backlogReason": "string"
}


StopTimerResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
idnumberдаId of the finalised WorkTimeEntry.
problemsWorkTimeProblemDto[]даSoft warnings emitted by the validation pipeline (ArbZG break, backlog tier, etc.).

Пример ​

json
{
  "id": 0,
  "problems": []
}


UpdateAbsenceEntryRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/Requests/UpdateAbsenceEntryRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
typeAbsenceTypeDtoда—AbsenceTypeDto
dateFromstringдаISO YYYY-MM-DDDateOnly
dateTostringдаISO YYYY-MM-DDDateOnly
dayHalfAbsenceDayHalfDtoдаSend FullDay for whole-day absences. Morning/Afternoon mark a half-day vacation: allowed only for Vacation, must be a single day (dateFrom === dateTo), and consumes 0.5 of the day.—
reasonstring | nullнет—string?
attachmentFileUrlstring | nullнетURL of the AU document returned by FileApiClient on upload.string?

Пример ​

json
{
  "id": 0,
  "type": "<AbsenceTypeDto>",
  "dateFrom": "2026-05-05T08:00:00Z",
  "dateTo": "2026-05-05T08:00:00Z",
  "dayHalf": "<AbsenceDayHalfDto>",
  "reason": "string",
  "attachmentFileUrl": "https://..."
}


UpdateWorkScheduleRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/UpdateWorkScheduleRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
validFromstringдаISO YYYY-MM-DDDateOnly
validTostring | nullнетISO YYYY-MM-DD or null for an open-ended schedule.DateOnly?
isFullTimebooleanда—bool
employmentRatenumberда—decimal
mondayStartstring | nullнет—TimeOnly?
mondayEndstring | nullнет—TimeOnly?
tuesdayStartstring | nullнет—TimeOnly?
tuesdayEndstring | nullнет—TimeOnly?
wednesdayStartstring | nullнет—TimeOnly?
wednesdayEndstring | nullнет—TimeOnly?
thursdayStartstring | nullнет—TimeOnly?
thursdayEndstring | nullнет—TimeOnly?
fridayStartstring | nullнет—TimeOnly?
fridayEndstring | nullнет—TimeOnly?
saturdayStartstring | nullнет—TimeOnly?
saturdayEndstring | nullнет—TimeOnly?
sundayStartstring | nullнет—TimeOnly?
sundayEndstring | nullнет—TimeOnly?
lunchBreakMinutesnumberда—int
annualVacationDaysnumberда—int
notestring | nullнет—string?

Пример ​

json
{
  "id": 0,
  "validFrom": "2026-05-05T08:00:00Z",
  "validTo": "2026-05-05T08:00:00Z",
  "isFullTime": false,
  "employmentRate": 0,
  "mondayStart": "string",
  "mondayEnd": "string",
  "tuesdayStart": "string",
  "tuesdayEnd": "string",
  "wednesdayStart": "string",
  "wednesdayEnd": "string",
  "thursdayStart": "string",
  "thursdayEnd": "string",
  "fridayStart": "string",
  "fridayEnd": "string",
  "saturdayStart": "string",
  "saturdayEnd": "string",
  "sundayStart": "string",
  "sundayEnd": "string",
  "lunchBreakMinutes": 0,
  "annualVacationDays": 0,
  "note": "string"
}


UpdateWorkTimeEntryRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/UpdateWorkTimeEntryRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
typeWorkTimeEntryTypeDtoда—WorkTimeEntryTypeDto
startedAtstringдаISO 8601 UTC instant, e.g. 2026-05-04T08:00:00ZDateTime
endedAtstringдаISO 8601 UTC instant; must fall on the same UTC calendar day as startedAt.DateTime
breakMinutesnumberда—int
statusWorkTimeStatusDtoда—WorkTimeStatusDto
notestring | nullнет—string?
backlogReasonstring | nullнетСм. CreateWorkTimeEntryRequestDto.backlogReason. Та же gate-семантика — требуется только когда IsSoftBlocked и новая startedAt < сегодня (UTC).—
unfreezeReasonstring | 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"
}


UpdateWorkTimeEntryResponseDto ​

Поля ​

ПолеТипОбязательноеОписание
problemsWorkTimeProblemDto[]да—

Пример ​

json
{
  "problems": []
}


UpdateWorkTimeSettingsRequestDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeSettings/Requests/UpdateWorkTimeSettingsRequestDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
backlogMonthCloseDaynumberда——
softBlockGraceDaysnumberда——
hardBlockGraceDaysnumberда——
monthCloseDayOfMonthnumberда—int
defaultLunchMinutesnumberда—int
maxDailyMinutesnumberда—int
weeklyOvertimeWarningMinutesnumberда—int
notificationEmailstring | nullнет—string?
requireAuDocumentbooleanда—bool
defaultRegionCodeIdnumber | nullнет—int?

Пример ​

json
{
  "backlogMonthCloseDay": 0,
  "softBlockGraceDays": 0,
  "hardBlockGraceDays": 0,
  "monthCloseDayOfMonth": 0,
  "defaultLunchMinutes": 0,
  "maxDailyMinutes": 0,
  "weeklyOvertimeWarningMinutes": 0,
  "notificationEmail": "user@example.com",
  "requireAuDocument": false,
  "defaultRegionCodeId": 0
}


WorkScheduleDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/WorkScheduleDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
userIdnumberда—int
validFromstringдаISO YYYY-MM-DDDateOnly
validTostring | nullдаISO YYYY-MM-DD or null for an open-ended schedule.DateOnly?
isFullTimebooleanда—bool
employmentRatenumberдаDecimal between 0 and 1 (e.g. 0.5 = half-time).decimal
mondayStartstring | nullдаISO HH:mm:ss; null if no shift on that weekday.TimeOnly?
mondayEndstring | nullда—TimeOnly?
tuesdayStartstring | nullда—TimeOnly?
tuesdayEndstring | nullда—TimeOnly?
wednesdayStartstring | nullда—TimeOnly?
wednesdayEndstring | nullда—TimeOnly?
thursdayStartstring | nullда—TimeOnly?
thursdayEndstring | nullда—TimeOnly?
fridayStartstring | nullда—TimeOnly?
fridayEndstring | nullда—TimeOnly?
saturdayStartstring | nullда—TimeOnly?
saturdayEndstring | nullда—TimeOnly?
sundayStartstring | nullда—TimeOnly?
sundayEndstring | nullда—TimeOnly?
lunchBreakMinutesnumberда—int
annualVacationDaysnumberда—int
notestring | nullда—string?
mondayMinutesnumberдаComputed: planned minutes per weekday (start-to-end minus lunch break).int
tuesdayMinutesnumberда—int
wednesdayMinutesnumberда—int
thursdayMinutesnumberда—int
fridayMinutesnumberда—int
saturdayMinutesnumberда—int
sundayMinutesnumberда—int
weeklyMinutesnumberдаSum of the 7 weekday minutes.int

Пример ​

json
{
  "id": 0,
  "userId": 0,
  "validFrom": "2026-05-05T08:00:00Z",
  "validTo": "2026-05-05T08:00:00Z",
  "isFullTime": false,
  "employmentRate": 0,
  "mondayStart": "string",
  "mondayEnd": "string",
  "tuesdayStart": "string",
  "tuesdayEnd": "string",
  "wednesdayStart": "string",
  "wednesdayEnd": "string",
  "thursdayStart": "string",
  "thursdayEnd": "string",
  "fridayStart": "string",
  "fridayEnd": "string",
  "saturdayStart": "string",
  "saturdayEnd": "string",
  "sundayStart": "string",
  "sundayEnd": "string",
  "lunchBreakMinutes": 0,
  "annualVacationDays": 0,
  "note": "string",
  "mondayMinutes": 0,
  "tuesdayMinutes": 0,
  "wednesdayMinutes": 0,
  "thursdayMinutes": 0,
  "fridayMinutes": 0,
  "saturdayMinutes": 0,
  "sundayMinutes": 0,
  "weeklyMinutes": 0
}


WorkTimeBacklogStateDto ​

Поля ​

ПолеТипОбязательноеОписание
userIdnumberда—
isSoftBlockedbooleanдаУ юзера есть незаполненные рабочие дни старше grace-периода. Письмо HeadOffice летит один раз на переходе false → true, повторные сохранения в том же состоянии email не триггерят (anti-spam через persisted-флаги). Гейт backlogReason срабатывает только на back-dated записях (startedAt < сегодня (UTC)). Сегодняшние записи проходят без коммента — флаг используется фронтом для UI-баннера и для preset'а поля «Причина» на форме при выборе прошлой даты.
isHardBlockedbooleanдаСохранение собственных записей запрещено (400 work-time-entry-backlog-hard-block). Разблокировка только через HeadOffice (POST WorkTimeEntries с enteredBy != userId) — он добивает пропущенные дни за заблокированного менеджера.
earliestMissingDatestring | nullдаСамый ранний незаполненный рабочий день в окне оценки. Для UI-баннера и подстановки в текст письма HeadOffice. null, когда пропусков нет.
lastEvaluatedAtstring | nullдаКогда последний раз пересчитывалось состояние. ISO 8601 UTC. null, если для юзера ни разу не было события-триггера и daily scheduler ещё не пробежал по нему — в этом случае состояние подаётся как clean-slate.

Пример ​

json
{
  "userId": 0,
  "isSoftBlocked": false,
  "isHardBlocked": false,
  "earliestMissingDate": "2026-05-05T08:00:00Z",
  "lastEvaluatedAt": "2026-05-05T08:00:00Z"
}


WorkTimeDaySummaryDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Summary/WorkTimeDaySummaryDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
datestringдаISO YYYY-MM-DDDateOnly
dayOfWeeknumberда.NET DayOfWeek: 0=Sunday … 6=Saturday.DayOfWeek
isWorkdaybooleanда—bool
isHolidaybooleanда—bool
isVacationbooleanда—bool
isSickLeavebooleanда—bool
isSpecialLeavebooleanда—bool
isTimeOffInLieubooleanда—bool
plannedMinutesnumberда—int
actualMinutesnumberда—int
overtimeMinutesnumberда—int
undertimeMinutesnumberда—int
isLockedbooleanда—bool

Пример ​

json
{
  "date": "2026-05-05T08:00:00Z",
  "dayOfWeek": 0,
  "isWorkday": false,
  "isHoliday": false,
  "isVacation": false,
  "isSickLeave": false,
  "isSpecialLeave": false,
  "isTimeOffInLieu": false,
  "plannedMinutes": 0,
  "actualMinutes": 0,
  "overtimeMinutes": 0,
  "undertimeMinutes": 0,
  "isLocked": false
}


WorkTimeEntryDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/WorkTimeEntryDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
idnumberда—int
userIdnumberда—int
typeWorkTimeEntryTypeDtoда—WorkTimeEntryTypeDto
startedAtstringдаISO 8601 UTC instant, e.g. 2026-05-04T08:00:00ZDateTime
endedAtstring | nullдаISO 8601 UTC instant; null means the entry is currently a running timer (and durationMinutes is 0).DateTime?
breakMinutesnumberда—int
durationMinutesnumberда—int
statusWorkTimeStatusDtoда—WorkTimeStatusDto
notestring | nullда—string?
backlogReasonstring | nullдаAudit-комментарий, заполненный юзером при сохранении записи в состоянии soft-block (см. backlog state). null для обычных записей вне блокировки.—
unfreezeReasonstring | nullдаAudit-причина последней разморозки Locked-записи (docx §8.8). null, если запись никогда не редактировалась после lock'а.—
enteredBynumberда—int
correlationIdstring | nullдаСвободно-форматный correlation-ID входящего HTTP-запроса (заголовок X-Correlation-Id), под которым запись была создана/финализирована. Используется для привязки логов к конкретной записи.Guid?

Пример ​

json
{
  "id": 0,
  "userId": 0,
  "type": "<WorkTimeEntryTypeDto>",
  "startedAt": "2026-05-05T08:00:00Z",
  "endedAt": "2026-05-05T08:00:00Z",
  "breakMinutes": 0,
  "durationMinutes": 0,
  "status": "<WorkTimeStatusDto>",
  "note": "string",
  "backlogReason": "string",
  "unfreezeReason": "string",
  "enteredBy": 0,
  "correlationId": "uuid"
}


WorkTimeEntryTypeDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Enums/WorkTimeEntryTypeDto.cs (feature.managertimetrackerservice).

Значения ​

ИмяЗначение (TS)ОписаниеКод (C#)
NotFound0—0
Regular1—1
Overtime2—2
Lunch3—3
Travel4—4

Пример ​

json
0


WorkTimeMonthSummaryDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Summary/WorkTimeMonthSummaryDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
userIdnumberда—int
yearnumberда—int
monthnumberда—int
plannedMinutesnumberда—int
actualMinutesnumberда—int
overtimeMinutesnumberда—int
undertimeMinutesnumberда—int
vacationDaysUsednumberда—int
vacationDaysRemainingnumberда—int
sickLeaveDaysnumberда—int
specialLeaveDaysnumberда—int
timeOffInLieuDaysnumberда—int
isLockedbooleanда—bool
daysWorkTimeDaySummaryDto[]да—List<WorkTimeDaySummaryDto>

Пример ​

json
{
  "userId": 0,
  "year": 0,
  "month": 0,
  "plannedMinutes": 0,
  "actualMinutes": 0,
  "overtimeMinutes": 0,
  "undertimeMinutes": 0,
  "vacationDaysUsed": 0,
  "vacationDaysRemaining": 0,
  "sickLeaveDays": 0,
  "specialLeaveDays": 0,
  "timeOffInLieuDays": 0,
  "isLocked": false,
  "days": []
}


WorkTimeProblemDto ​

Soft-warning emitted by WorkTime write endpoints alongside a successful response. Mirrors ASP.NET Core's ProblemDetails JSON shape but used for non-blocking advisories — e.g. work-time-entry-break-below-arbzg-6h (ArbZG break warning), work-time-entry-backlog-warning, …-backlog-soft-block.

Hard validation failures (overlap, daily-limit, no-running-timer, …) come back as regular 4xx error responses and surface as ProblemDetailsError from the http client, not in this list.

Поля ​

ПолеТипОбязательноеОписание
typestring | nullдаRFC-7807 type identifier (e.g. work-time-entry-break-below-arbzg-9h).
titlestring | nullда—
detailstring | nullда—
statusnumber | nullда—
instancestring | nullда—

Пример ​

json
{
  "type": "string",
  "title": "string",
  "detail": "string",
  "status": 0,
  "instance": "string"
}


WorkTimeSettingsDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeSettings/WorkTimeSettingsDto.cs (feature.managertimetrackerservice).

Поля ​

ПолеТип (TS)ОбязательноеОписаниеТип (C#)
backlogMonthCloseDaynumberдаДень месяца, разделяющий окно проверки backlog'а: до этого числа включаемся с 1-го числа прошлого месяца, начиная с него — только текущий месяц. По умолчанию 10 — синхронно с monthCloseDayOfMonth.—
softBlockGraceDaysnumberдаСколько рабочих дней (отсчёт от сегодня) дозволено не заполнять без последствий. При первом необъяснённом пропуске за пределами этого окна юзер становится IsSoftBlocked = true (требуется BacklogReason при следующем сохранении). По умолчанию 5.—
hardBlockGraceDaysnumberдаСколько рабочих дней дозволено не заполнять до жёсткой блокировки. При наличии пропуска за пределами этого окна юзер становится IsHardBlocked = true — сохранение собственных записей запрещено, разрешение через EnteredBy != UserId (HeadOffice). По умолчанию 10.—
monthCloseDayOfMonthnumberда—int
defaultLunchMinutesnumberда—int
maxDailyMinutesnumberда—int
weeklyOvertimeWarningMinutesnumberда—int
notificationEmailstring | nullда—string?
requireAuDocumentbooleanда—bool
defaultRegionCodeIdnumber | nullда—int?

Пример ​

json
{
  "backlogMonthCloseDay": 0,
  "softBlockGraceDays": 0,
  "hardBlockGraceDays": 0,
  "monthCloseDayOfMonth": 0,
  "defaultLunchMinutes": 0,
  "maxDailyMinutes": 0,
  "weeklyOvertimeWarningMinutes": 0,
  "notificationEmail": "user@example.com",
  "requireAuDocument": false,
  "defaultRegionCodeId": 0
}


WorkTimeStatusDto ​

Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Enums/WorkTimeStatusDto.cs (feature.managertimetrackerservice).

Значения ​

ИмяЗначение (TS)ОписаниеКод (C#)
NotFound0—0
Draft1—1
Submitted2—2
Approved3—3
Rejected4—4
Locked5—5

Пример ​

json
0