feat(dal): ShortcodesService добавлена обработка динамичесих составляющих "%СВЯЗИ%", "%ТНК-КРАТКО%"

This commit is contained in:
Mikhail Kuznetsov
2025-12-09 16:50:35 +10:00
parent b033f95116
commit d19aa77ec4
18 changed files with 1265 additions and 280 deletions

View File

@@ -5,18 +5,35 @@ namespace PARR.DAL.DomainServices.Interfaces
public interface IUnitFilterService
{
/// <summary>
/// Получить все Unit.Id соответствующие настройкам фильтрации Job
/// Получает список ID Unit'ов, соответствующих фильтрам Job.
/// </summary>
/// <param name="jobId">Id работы</param>
/// <returns></returns>
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Guid jobId, int? takeCount = null);
/// <param name="jobId">ID Job</param>
/// <param name="takeCount">Максимальное количество Unit'ов (опционально)</param>
/// <returns>Список ID Unit'ов или null, если Job не найден</returns>
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(
Guid jobId,
int? takeCount = null);
/// <summary>
/// Получить все Unit.Id соответствующие настройкам фильтрации Job
/// Получает список ID Unit'ов, соответствующих фильтрам Job.
/// </summary>
/// <param name="job">Job обязательно должен содержать UnitFilter, Group и GroupType</param>
/// <returns></returns>
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(Job job, int? takeCount = null);
/// <param name="job">Job с предзагруженными UnitFilters, Group, GroupType</param>
/// <param name="takeCount">Максимальное количество Unit'ов (опционально)</param>
/// <returns>Список ID Unit'ов</returns>
Task<IEnumerable<Guid>?> GetUnitsIdByJobFilterAsync(
Models.Job.Job job,
int? takeCount = null);
/// <summary>
/// Получает имена связанных Unit'ов для заданного Unit, отфильтрованных по RelationshipFilters Job.
/// Используется для шорткода %СВЯЗИ%.
/// </summary>
/// <param name="jobId">ID Job</param>
/// <param name="unitId">ID Unit, для которого ищутся связи</param>
/// <param name="ct">Токен отмены (опционально)</param>
/// <returns>Список имён связанных Unit'ов (уникальные, без дублей)</returns>
Task<List<string>> GetRelatedUnitNamesAsync(
Guid jobId,
Guid unitId);
}
}