using FluentValidation; namespace CMSMicroservice.Application.SitePageCQ.Commands.CreateSitePageSection; public class CreateSitePageSectionCommandValidator : AbstractValidator { public CreateSitePageSectionCommandValidator() { RuleFor(x => x.SitePageId) .GreaterThan(0).WithMessage("شناسه صفحه نامعتبر است"); RuleFor(x => x.SectionKey) .MaximumLength(100).WithMessage("کلید بخش حداکثر ۱۰۰ کاراکتر") .Matches(@"^[a-z0-9\-_]*$").WithMessage("کلید بخش فقط شامل حروف کوچک، اعداد، خط تیره و زیرخط") .When(x => !string.IsNullOrWhiteSpace(x.SectionKey)); RuleFor(x => x.Title) .MaximumLength(300).WithMessage("عنوان بخش حداکثر ۳۰۰ کاراکتر"); RuleFor(x => x.Subtitle) .MaximumLength(500).WithMessage("زیرعنوان بخش حداکثر ۵۰۰ کاراکتر"); RuleFor(x => x.IconName) .MaximumLength(100).WithMessage("نام آیکون حداکثر ۱۰۰ کاراکتر"); } }