namespace Deal.Modules.Discovery.Application; /// /// Доменная ошибка запроса Discovery — 400-семантика (аналог ValueError discovery.py). /// /// /// Прототип бросает ValueError с русским текстом причины, а роутеры переводят его в HTTP 400 {detail} /// (discovery_routes.py L8–9). В .NET сервисы модуля бросают это исключение с тем же текстом; эндпоинты /// (Task 19) ловят его и отвечают 400. 404-семантика (KeyError прототипа) остаётся null-результатом методов /// (конвенция модулей этапов 1–5) — см. xml-doc сервисов. /// public sealed class DiscoveryValidationException : Exception { /// /// Создаёт ошибку с текстом 400-детали (1:1 текст ValueError прототипа). /// /// Текст причины для {detail} ответа. public DiscoveryValidationException(string detail) : base(detail) { } }