Расширение reminders (#19)
Tests / frontend-test (push) Successful in 46s
Tests / backend-test (push) Successful in 2m22s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/19
This commit was merged in pull request #19.
This commit is contained in:
2026-08-27 11:43:45 +00:00
parent 19a46b0df8
commit 95d460c80a
23 changed files with 1113 additions and 110 deletions
@@ -11,8 +11,24 @@ public interface ITnsuPortalClient
Task<EmployeeLookupResult> GetEmployeeByPositionAsync(string position, string company, CancellationToken cancellationToken);
/// <summary>
/// Весь справочник сотрудников с email — /Employee/All. Нужен там, где известно
/// только ФИО, а email ещё нет: точечного поиска по ФИО в api.tnsu.kz нет вовсе
/// (эндпоинта /Employee/ByFio не существует), поэтому приходится тянуть базу
/// целиком и искать в ней локально. ВРЕМЕННОЕ решение — как только на стороне
/// api.tnsu.kz появится поиск по ФИО, этот вызов заменится точечным.
/// </summary>
Task<IReadOnlyList<EmployeeContactInfo>> GetAllEmployeesAsync(CancellationToken cancellationToken);
Task<string?> GetManagerAsync(string email, string managerType, CancellationToken cancellationToken);
/// <summary>
/// Весь справочник сотрудников — /Employee/FullBase. Единственный источник, где
/// есть дата увольнения (DismissalDate): нужен, чтобы не напоминать про
/// испытательный срок сотрудника, который уже уволен.
/// </summary>
Task<IReadOnlyList<EmployeeFullBaseInfo>> GetFullBaseAsync(CancellationToken cancellationToken);
Task<IReadOnlyList<ProjectExecutorInfo>> GetProjectExecutorsAsync(Guid projectId, CancellationToken cancellationToken);
/// <summary>Email руководителя указанного отдела (для HeadType.DepartmentHead) — null, если не найден.</summary>