using FluentValidation;

namespace CMSMicroservice.Application.BlogCategoryCQ.Commands.CreateBlogCategory;

public class CreateBlogCategoryCommandValidator : AbstractValidator<CreateBlogCategoryCommand>
{
    public CreateBlogCategoryCommandValidator()
    {
        RuleFor(x => x.Title)
            .NotEmpty().WithMessage("عنوان دسته‌بندی الزامی است")
            .MaximumLength(200).WithMessage("عنوان دسته‌بندی حداکثر ۲۰۰ کاراکتر");

        RuleFor(x => x.Slug)
            .NotEmpty().WithMessage("اسلاگ الزامی است")
            .MaximumLength(200).WithMessage("اسلاگ حداکثر ۲۰۰ کاراکتر")
            .Matches(@"^[a-z0-9\-]+$").WithMessage("اسلاگ فقط شامل حروف کوچک، اعداد و خط تیره");

        RuleFor(x => x.Description)
            .MaximumLength(1000).WithMessage("توضیحات حداکثر ۱۰۰۰ کاراکتر");

        RuleFor(x => x.IconName)
            .MaximumLength(100).WithMessage("نام آیکون حداکثر ۱۰۰ کاراکتر");
    }
}
