using FluentValidation; using Tnsu.ApprovalRoute.Domain.Enums; namespace Tnsu.ApprovalRoute.Application.TemplateRoutes; // Компания и отдел маршрута — оба опциональны, поэтому CreateTemplateRouteRequest/ // UpdateTemplateRouteRequest/PatchTemplateRouteRequest не нуждаются в отдельных // валидаторах: маршрут без компании служит запасным вариантом, когда для // конкретной компании инициатора своего маршрута нет (см. ResolveAsync). public sealed class ResolveTemplateRouteRequestValidator : AbstractValidator { public ResolveTemplateRouteRequestValidator() { RuleFor(x => x.Status).NotEqual(RouteStepStatus.None).WithMessage("Статус обязателен: Approval или Execution."); RuleForEach(x => x.FieldValues).ChildRules(v => { v.RuleFor(f => f.FieldName).NotEmpty().WithMessage("Имя поля обязательно."); v.RuleFor(f => f.Value).NotEmpty().WithMessage("Значение поля обязательно."); }); } }