Skip to content

WorkTimeBacklogStateDto

← Manager Time Tracker DTO

Поля

ПолеТипОбязательноеОписание
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"
}