namespace Tnsu.ApprovalRoute.Application.Approvals;
///
/// Конвенция имён списков портала заявок: у каждой пары списков имя данных и имя
/// согласования отличаются только суффиксом после длинного тире (см.
/// Get-NumberedListTitle в request-portal/provisioning/Provision-Lists.ps1 —
/// именно провижинер эти имена и ставит).
///
/// Отдельным классом, а не приватным методом сервиса: правило нужно и
/// напоминаниям (ReminderService), и автосогласованию (AutoApproveService), и
/// разъехаться между ними оно не должно — переименование одного списка из пары
/// молча оставило бы один из сценариев без строк.
///
internal static class ApprovalListNaming
{
///
/// «Заявка на приём 1 — данные» → «Заявка на приём 1 — согласование».
/// null — имя не по конвенции, список согласования по нему не найти.
///
public static string? ApprovalListTitleFor(string dataListTitle)
{
var index = dataListTitle.LastIndexOf('—');
if (index < 0) return null;
var suffix = dataListTitle[(index + 1)..].Trim();
return suffix.Equals("данные", StringComparison.OrdinalIgnoreCase)
? $"{dataListTitle[..index].TrimEnd()} — согласование"
: null;
}
}