Manager Time Tracker DTO
Описание сущностей и типов из src/dto/managerTimeTracker/.
Обогащено snapshot-данными бэкенд-DTO (19 из 44 типов сопоставлено, snapshot от 2026-05-05T13:21:51.699Z).
Содержание
- AbsenceEntryDto · backend ✓
- AbsenceTypeDto · backend ✓
- CloseWorkScheduleRequestDto · backend ✓
- CreateAbsenceEntryRequestDto · backend ✓
- CreateAbsenceEntryResponseDto
- CreateWorkScheduleRequestDto · backend ✓
- CreateWorkScheduleResponseDto
- CreateWorkTimeEntryRequestDto · backend ✓
- CreateWorkTimeEntryResponseDto
- GetAbsenceEntriesByUserResponseDto
- GetAbsenceEntryResponseDto
- GetActiveWorkScheduleResponseDto
- GetActiveWorkSchedulesRequestDto
- GetActiveWorkSchedulesResponseDto
- GetCurrentTimerResponseDto
- GetWorkScheduleResponseDto
- GetWorkSchedulesByUserResponseDto
- GetWorkTimeBacklogStateResponseDto
- GetWorkTimeDaySummaryResponseDto
- GetWorkTimeEntriesByUserResponseDto
- GetWorkTimeEntriesRequestDto
- GetWorkTimeEntriesResponseDto
- GetWorkTimeEntryResponseDto
- GetWorkTimeMonthSummaryResponseDto
- GetWorkTimeReportsResponseDto
- GetWorkTimeSettingsResponseDto
- StartTimerRequestDto · backend ✓
- StartTimerResponseDto
- StopTimerRequestDto · backend ✓
- StopTimerResponseDto
- UpdateAbsenceEntryRequestDto · backend ✓
- UpdateWorkScheduleRequestDto · backend ✓
- UpdateWorkTimeEntryRequestDto · backend ✓
- UpdateWorkTimeEntryResponseDto
- UpdateWorkTimeSettingsRequestDto · backend ✓
- WorkScheduleDto · backend ✓
- WorkTimeBacklogStateDto
- WorkTimeDaySummaryDto · backend ✓
- WorkTimeEntryDto · backend ✓
- WorkTimeEntryTypeDto · backend ✓
- WorkTimeMonthSummaryDto · backend ✓
- WorkTimeProblemDto
- WorkTimeSettingsDto · backend ✓
- WorkTimeStatusDto · backend ✓
AbsenceEntryDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/AbsenceEntryDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
id | number | да | — | int |
userId | number | да | — | int |
type | AbsenceTypeDto | да | — | AbsenceTypeDto |
dateFrom | string | да | ISO YYYY-MM-DD | DateOnly |
dateTo | string | да | ISO YYYY-MM-DD | DateOnly |
status | WorkTimeStatusDto | да | — | WorkTimeStatusDto |
reason | string | null | да | — | string? |
attachmentFileUrl | string | 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? |
enteredBy | number | да | — | int |
approvedBy | number | null | да | — | int? |
approvedAt | string | null | да | ISO 8601 datetime; null until approved. | DateTimeOffset? |
Пример
{
"id": 0,
"userId": 0,
"type": "<AbsenceTypeDto>",
"dateFrom": "2026-05-05T08:00:00Z",
"dateTo": "2026-05-05T08:00:00Z",
"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#) |
|---|---|---|---|
NotFound | 0 | — | 0 |
Vacation | 1 | — | 1 |
SickLeave | 2 | — | 2 |
SpecialLeave | 3 | — | 3 |
UnpaidLeave | 4 | — | 4 |
TimeOffInLieu | 5 | — | 5 |
Пример
0CloseWorkScheduleRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/CloseWorkScheduleRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
id | number | да | — | int |
closeOn | string | да | ISO YYYY-MM-DD — sets validTo and ends the schedule on this date. | DateOnly |
Пример
{
"id": 0,
"closeOn": "string"
}CreateAbsenceEntryRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/Requests/CreateAbsenceEntryRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
userId | number | да | — | int |
type | AbsenceTypeDto | да | — | AbsenceTypeDto |
dateFrom | string | да | ISO YYYY-MM-DD | DateOnly |
dateTo | string | да | ISO YYYY-MM-DD | DateOnly |
reason | string | null | нет | — | string? |
attachmentFileUrl | string | null | нет | URL of the AU document returned by FileApiClient on upload (required for SickLeave when settings.RequireAuDocument is on). | string? |
Пример
{
"userId": 0,
"type": "<AbsenceTypeDto>",
"dateFrom": "2026-05-05T08:00:00Z",
"dateTo": "2026-05-05T08:00:00Z",
"reason": "string",
"attachmentFileUrl": "https://..."
}CreateAbsenceEntryResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | — |
Пример
{
"id": 0
}CreateWorkScheduleRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/CreateWorkScheduleRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
userId | number | да | — | int |
validFrom | string | да | ISO YYYY-MM-DD | DateOnly |
validTo | string | null | нет | ISO YYYY-MM-DD or null for an open-ended schedule. | DateOnly? |
isFullTime | boolean | да | — | bool |
employmentRate | number | да | Decimal between 0 and 1 (e.g. 0.5 = half-time). | decimal |
mondayStart | string | null | нет | ISO HH:mm:ss; null if no shift on that weekday. | TimeOnly? |
mondayEnd | string | null | нет | — | TimeOnly? |
tuesdayStart | string | null | нет | — | TimeOnly? |
tuesdayEnd | string | null | нет | — | TimeOnly? |
wednesdayStart | string | null | нет | — | TimeOnly? |
wednesdayEnd | string | null | нет | — | TimeOnly? |
thursdayStart | string | null | нет | — | TimeOnly? |
thursdayEnd | string | null | нет | — | TimeOnly? |
fridayStart | string | null | нет | — | TimeOnly? |
fridayEnd | string | null | нет | — | TimeOnly? |
saturdayStart | string | null | нет | — | TimeOnly? |
saturdayEnd | string | null | нет | — | TimeOnly? |
sundayStart | string | null | нет | — | TimeOnly? |
sundayEnd | string | null | нет | — | TimeOnly? |
lunchBreakMinutes | number | да | — | int |
annualVacationDays | number | да | — | int |
note | string | null | нет | — | string? |
Пример
{
"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
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | — |
Пример
{
"id": 0
}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) для аудита. | — |
Пример
{
"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
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | — |
problems | WorkTimeProblemDto[] | да | Soft warnings emitted by the validation pipeline (ArbZG break, backlog tier, etc.). |
Пример
{
"id": 0,
"problems": []
}GetAbsenceEntriesByUserResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
absences | AbsenceEntryDto[] | да | — |
count | number | да | — |
Пример
{
"absences": [],
"count": 0
}GetAbsenceEntryResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
absence | AbsenceEntryDto | да | — |
Пример
{
"absence": "<AbsenceEntryDto>"
}GetActiveWorkScheduleResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
schedule | WorkScheduleDto | null | да | null when the user has no schedule covering the requested date. |
Пример
{
"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.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
date | string | null | нет | — |
userIds | number[] | null | нет | — |
currentPage | number | да | 1-based page number. |
rowsPerPage | number | да | Items per page. |
sortBy | string | null | нет | Server-side field name to sort by. |
descending | boolean | да | true for DESC, false for ASC. |
Пример
{
"date": "2026-05-05T08:00:00Z",
"userIds": [],
"currentPage": 0,
"rowsPerPage": 0,
"sortBy": "string",
"descending": false
}GetActiveWorkSchedulesResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
pagination | PaginationResult<WorkScheduleDto> | да | — |
Пример
{
"pagination": "<PaginationResult<WorkScheduleDto>>"
}GetCurrentTimerResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
entry | WorkTimeEntryDto | null | да | null when no timer is currently running for the calling user. |
Пример
{
"entry": "<worktimeentrydto>"
}GetWorkScheduleResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
schedule | WorkScheduleDto | да | — |
Пример
{
"schedule": "<WorkScheduleDto>"
}GetWorkSchedulesByUserResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
schedules | WorkScheduleDto[] | да | — |
count | number | да | — |
Пример
{
"schedules": [],
"count": 0
}GetWorkTimeBacklogStateResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
state | WorkTimeBacklogStateDto | да | — |
Пример
{
"state": "<WorkTimeBacklogStateDto>"
}GetWorkTimeDaySummaryResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
day | WorkTimeDaySummaryDto | да | — |
Пример
{
"day": "<WorkTimeDaySummaryDto>"
}GetWorkTimeEntriesByUserResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
entries | WorkTimeEntryDto[] | да | — |
count | number | да | — |
Пример
{
"entries": [],
"count": 0
}GetWorkTimeEntriesRequestDto
Query parameters for GET /Api/WorkTimeEntries.
Все фильтры опциональны: при отсутствии — соответствующее условие не применяется. dateTimeFrom / dateTimeTo сравниваются с startedAt записи (ISO 8601 UTC).
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
pagination | Pagination | да | — |
dateTimeFrom | string | null | нет | — |
dateTimeTo | string | null | нет | — |
userId | number | null | нет | — |
Пример
{
"pagination": "<Pagination>",
"dateTimeFrom": "2026-05-05T08:00:00Z",
"dateTimeTo": "2026-05-05T08:00:00Z",
"userId": 0
}GetWorkTimeEntriesResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
pagination | PaginationResult<WorkTimeEntryDto> | да | — |
Пример
{
"pagination": "<PaginationResult<WorkTimeEntryDto>>"
}GetWorkTimeEntryResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
entry | WorkTimeEntryDto | да | — |
Пример
{
"entry": "<WorkTimeEntryDto>"
}GetWorkTimeMonthSummaryResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
summary | WorkTimeMonthSummaryDto | да | — |
Пример
{
"summary": "<WorkTimeMonthSummaryDto>"
}GetWorkTimeReportsResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
year | number | да | — |
month | number | да | — |
summaries | WorkTimeMonthSummaryDto[] | да | — |
count | number | да | — |
Пример
{
"year": 0,
"month": 0,
"summaries": [],
"count": 0
}GetWorkTimeSettingsResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
settings | WorkTimeSettingsDto | да | — |
Пример
{
"settings": "<WorkTimeSettingsDto>"
}StartTimerRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/StartTimerRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
note | string | null | нет | — | string? |
Пример
{
"note": "string"
}StartTimerResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
entry | WorkTimeEntryDto | да | 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. |
Пример
{
"entry": "<WorkTimeEntryDto>"
}StopTimerRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeEntry/Requests/StopTimerRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
breakMinutes | number | null | нет | Break minutes to record on the entry. null/omitted is treated as 0. | int? |
note | string | 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? |
backlogReason | string | null | нет | Объяснение пропуска прошлых рабочих дней. Для StopTimer практически не нужен (таймер всегда финализирует запись на сегодняшнюю дату — cross-midnight отбрасывается отдельно), но оставлен для симметрии с Create/Update. Сохраняется в финальной записи (WorkTimeEntryDto.backlogReason). | — |
Пример
{
"breakMinutes": 0,
"note": "string",
"backlogReason": "string"
}StopTimerResponseDto
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | number | да | Id of the finalised WorkTimeEntry. |
problems | WorkTimeProblemDto[] | да | Soft warnings emitted by the validation pipeline (ArbZG break, backlog tier, etc.). |
Пример
{
"id": 0,
"problems": []
}UpdateAbsenceEntryRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/AbsenceEntry/Requests/UpdateAbsenceEntryRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
id | number | да | — | int |
type | AbsenceTypeDto | да | — | AbsenceTypeDto |
dateFrom | string | да | ISO YYYY-MM-DD | DateOnly |
dateTo | string | да | ISO YYYY-MM-DD | DateOnly |
reason | string | null | нет | — | string? |
attachmentFileUrl | string | null | нет | URL of the AU document returned by FileApiClient on upload. | string? |
Пример
{
"id": 0,
"type": "<AbsenceTypeDto>",
"dateFrom": "2026-05-05T08:00:00Z",
"dateTo": "2026-05-05T08:00:00Z",
"reason": "string",
"attachmentFileUrl": "https://..."
}UpdateWorkScheduleRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkSchedule/Requests/UpdateWorkScheduleRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
id | number | да | — | int |
validFrom | string | да | ISO YYYY-MM-DD | DateOnly |
validTo | string | null | нет | ISO YYYY-MM-DD or null for an open-ended schedule. | DateOnly? |
isFullTime | boolean | да | — | bool |
employmentRate | number | да | — | decimal |
mondayStart | string | null | нет | — | TimeOnly? |
mondayEnd | string | null | нет | — | TimeOnly? |
tuesdayStart | string | null | нет | — | TimeOnly? |
tuesdayEnd | string | null | нет | — | TimeOnly? |
wednesdayStart | string | null | нет | — | TimeOnly? |
wednesdayEnd | string | null | нет | — | TimeOnly? |
thursdayStart | string | null | нет | — | TimeOnly? |
thursdayEnd | string | null | нет | — | TimeOnly? |
fridayStart | string | null | нет | — | TimeOnly? |
fridayEnd | string | null | нет | — | TimeOnly? |
saturdayStart | string | null | нет | — | TimeOnly? |
saturdayEnd | string | null | нет | — | TimeOnly? |
sundayStart | string | null | нет | — | TimeOnly? |
sundayEnd | string | null | нет | — | TimeOnly? |
lunchBreakMinutes | number | да | — | int |
annualVacationDays | number | да | — | int |
note | string | null | нет | — | string? |
Пример
{
"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#) |
|---|---|---|---|---|
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 независимо от значения этого поля. | — |
Пример
{
"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
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
problems | WorkTimeProblemDto[] | да | — |
Пример
{
"problems": []
}UpdateWorkTimeSettingsRequestDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/WorkTimeSettings/Requests/UpdateWorkTimeSettingsRequestDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
backlogMonthCloseDay | number | да | — | — |
softBlockGraceDays | number | да | — | — |
hardBlockGraceDays | number | да | — | — |
monthCloseDayOfMonth | number | да | — | int |
defaultLunchMinutes | number | да | — | int |
maxDailyMinutes | number | да | — | int |
weeklyOvertimeWarningMinutes | number | да | — | int |
notificationEmail | string | null | нет | — | string? |
requireAuDocument | boolean | да | — | bool |
defaultRegionCodeId | number | null | нет | — | int? |
Пример
{
"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#) |
|---|---|---|---|---|
id | number | да | — | int |
userId | number | да | — | int |
validFrom | string | да | ISO YYYY-MM-DD | DateOnly |
validTo | string | null | да | ISO YYYY-MM-DD or null for an open-ended schedule. | DateOnly? |
isFullTime | boolean | да | — | bool |
employmentRate | number | да | Decimal between 0 and 1 (e.g. 0.5 = half-time). | decimal |
mondayStart | string | null | да | ISO HH:mm:ss; null if no shift on that weekday. | TimeOnly? |
mondayEnd | string | null | да | — | TimeOnly? |
tuesdayStart | string | null | да | — | TimeOnly? |
tuesdayEnd | string | null | да | — | TimeOnly? |
wednesdayStart | string | null | да | — | TimeOnly? |
wednesdayEnd | string | null | да | — | TimeOnly? |
thursdayStart | string | null | да | — | TimeOnly? |
thursdayEnd | string | null | да | — | TimeOnly? |
fridayStart | string | null | да | — | TimeOnly? |
fridayEnd | string | null | да | — | TimeOnly? |
saturdayStart | string | null | да | — | TimeOnly? |
saturdayEnd | string | null | да | — | TimeOnly? |
sundayStart | string | null | да | — | TimeOnly? |
sundayEnd | string | null | да | — | TimeOnly? |
lunchBreakMinutes | number | да | — | int |
annualVacationDays | number | да | — | int |
note | string | null | да | — | string? |
mondayMinutes | number | да | Computed: planned minutes per weekday (start-to-end minus lunch break). | int |
tuesdayMinutes | number | да | — | int |
wednesdayMinutes | number | да | — | int |
thursdayMinutes | number | да | — | int |
fridayMinutes | number | да | — | int |
saturdayMinutes | number | да | — | int |
sundayMinutes | number | да | — | int |
weeklyMinutes | number | да | Sum of the 7 weekday minutes. | int |
Пример
{
"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
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
userId | number | да | — |
isSoftBlocked | boolean | да | У юзера есть незаполненные рабочие дни старше grace-периода. Письмо HeadOffice летит один раз на переходе false → true, повторные сохранения в том же состоянии email не триггерят (anti-spam через persisted-флаги). Гейт backlogReason срабатывает только на back-dated записях (startedAt < сегодня (UTC)). Сегодняшние записи проходят без коммента — флаг используется фронтом для UI-баннера и для preset'а поля «Причина» на форме при выборе прошлой даты. |
isHardBlocked | boolean | да | Сохранение собственных записей запрещено (400 work-time-entry-backlog-hard-block). Разблокировка только через HeadOffice (POST WorkTimeEntries с enteredBy != userId) — он добивает пропущенные дни за заблокированного менеджера. |
earliestMissingDate | string | null | да | Самый ранний незаполненный рабочий день в окне оценки. Для UI-баннера и подстановки в текст письма HeadOffice. null, когда пропусков нет. |
lastEvaluatedAt | string | null | да | Когда последний раз пересчитывалось состояние. ISO 8601 UTC. null, если для юзера ни разу не было события-триггера и daily scheduler ещё не пробежал по нему — в этом случае состояние подаётся как clean-slate. |
Пример
{
"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#) |
|---|---|---|---|---|
date | string | да | ISO YYYY-MM-DD | DateOnly |
dayOfWeek | number | да | .NET DayOfWeek: 0=Sunday … 6=Saturday. | DayOfWeek |
isWorkday | boolean | да | — | bool |
isHoliday | boolean | да | — | bool |
isVacation | boolean | да | — | bool |
isSickLeave | boolean | да | — | bool |
isSpecialLeave | boolean | да | — | bool |
isTimeOffInLieu | boolean | да | — | bool |
plannedMinutes | number | да | — | int |
actualMinutes | number | да | — | int |
overtimeMinutes | number | да | — | int |
undertimeMinutes | number | да | — | int |
isLocked | boolean | да | — | bool |
Пример
{
"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#) |
|---|---|---|---|---|
id | number | да | — | int |
userId | number | да | — | int |
type | WorkTimeEntryTypeDto | да | — | WorkTimeEntryTypeDto |
startedAt | string | да | ISO 8601 UTC instant, e.g. 2026-05-04T08:00:00Z | DateTime |
endedAt | string | null | да | ISO 8601 UTC instant; null means the entry is currently a running timer (and durationMinutes is 0). | DateTime? |
breakMinutes | number | да | — | int |
durationMinutes | number | да | — | int |
status | WorkTimeStatusDto | да | — | WorkTimeStatusDto |
note | string | null | да | — | string? |
backlogReason | string | null | да | Audit-комментарий, заполненный юзером при сохранении записи в состоянии soft-block (см. backlog state). null для обычных записей вне блокировки. | — |
unfreezeReason | string | null | да | Audit-причина последней разморозки Locked-записи (docx §8.8). null, если запись никогда не редактировалась после lock'а. | — |
enteredBy | number | да | — | int |
correlationId | string | null | да | Свободно-форматный correlation-ID входящего HTTP-запроса (заголовок X-Correlation-Id), под которым запись была создана/финализирована. Используется для привязки логов к конкретной записи. | Guid? |
Пример
{
"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#) |
|---|---|---|---|
NotFound | 0 | — | 0 |
Regular | 1 | — | 1 |
Overtime | 2 | — | 2 |
Lunch | 3 | — | 3 |
Travel | 4 | — | 4 |
Пример
0WorkTimeMonthSummaryDto
Backend-источник: feature.managertimetrackerservice/Feature.ManagerTimeTrackerService/Nuget.ManagerTimeTrackerApiClient/Dto/Summary/WorkTimeMonthSummaryDto.cs (feature.managertimetrackerservice).
Поля
| Поле | Тип (TS) | Обязательное | Описание | Тип (C#) |
|---|---|---|---|---|
userId | number | да | — | int |
year | number | да | — | int |
month | number | да | — | int |
plannedMinutes | number | да | — | int |
actualMinutes | number | да | — | int |
overtimeMinutes | number | да | — | int |
undertimeMinutes | number | да | — | int |
vacationDaysUsed | number | да | — | int |
vacationDaysRemaining | number | да | — | int |
sickLeaveDays | number | да | — | int |
specialLeaveDays | number | да | — | int |
timeOffInLieuDays | number | да | — | int |
isLocked | boolean | да | — | bool |
days | WorkTimeDaySummaryDto[] | да | — | List<WorkTimeDaySummaryDto> |
Пример
{
"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.
Поля
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
type | string | null | да | RFC-7807 type identifier (e.g. work-time-entry-break-below-arbzg-9h). |
title | string | null | да | — |
detail | string | null | да | — |
status | number | null | да | — |
instance | string | null | да | — |
Пример
{
"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#) |
|---|---|---|---|---|
backlogMonthCloseDay | number | да | День месяца, разделяющий окно проверки backlog'а: до этого числа включаемся с 1-го числа прошлого месяца, начиная с него — только текущий месяц. По умолчанию 10 — синхронно с monthCloseDayOfMonth. | — |
softBlockGraceDays | number | да | Сколько рабочих дней (отсчёт от сегодня) дозволено не заполнять без последствий. При первом необъяснённом пропуске за пределами этого окна юзер становится IsSoftBlocked = true (требуется BacklogReason при следующем сохранении). По умолчанию 5. | — |
hardBlockGraceDays | number | да | Сколько рабочих дней дозволено не заполнять до жёсткой блокировки. При наличии пропуска за пределами этого окна юзер становится IsHardBlocked = true — сохранение собственных записей запрещено, разрешение через EnteredBy != UserId (HeadOffice). По умолчанию 10. | — |
monthCloseDayOfMonth | number | да | — | int |
defaultLunchMinutes | number | да | — | int |
maxDailyMinutes | number | да | — | int |
weeklyOvertimeWarningMinutes | number | да | — | int |
notificationEmail | string | null | да | — | string? |
requireAuDocument | boolean | да | — | bool |
defaultRegionCodeId | number | null | да | — | int? |
Пример
{
"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#) |
|---|---|---|---|
NotFound | 0 | — | 0 |
Draft | 1 | — | 1 |
Submitted | 2 | — | 2 |
Approved | 3 | — | 3 |
Rejected | 4 | — | 4 |
Locked | 5 | — | 5 |
Пример
0