using FluentValidation; namespace CMSMicroservice.Application.SitePageSettingsCQ.Commands.SavePageSettings; public class SavePageSettingsCommandValidator : AbstractValidator { private static readonly string[] ValidPageKeys = { "landing", "about", "contact", "licenses" }; public SavePageSettingsCommandValidator() { RuleFor(x => x.PageKey) .NotEmpty().WithMessage("کلید صفحه الزامی است") .MaximumLength(50) .Must(key => ValidPageKeys.Contains(key)) .WithMessage("کلید صفحه باید یکی از مقادیر landing, about, contact, licenses باشد"); RuleFor(x => x.Title) .NotEmpty().WithMessage("عنوان صفحه الزامی است") .MaximumLength(200).WithMessage("عنوان صفحه حداکثر ۲۰۰ کاراکتر"); RuleFor(x => x.MetaDescription) .MaximumLength(300).WithMessage("توضیحات متا حداکثر ۳۰۰ کاراکتر"); RuleFor(x => x.HeroTitle) .MaximumLength(200).WithMessage("عنوان هیرو حداکثر ۲۰۰ کاراکتر"); RuleFor(x => x.HeroSubtitle) .MaximumLength(500).WithMessage("زیرعنوان هیرو حداکثر ۵۰۰ کاراکتر"); } }