using FluentValidation;
using MktXService.API.Application.Commands;

namespace MktXService.API.Application.Validations;

/// <summary>
/// EN: Validator for UpdateSampleCommand.
/// VI: Validator cho UpdateSampleCommand.
/// </summary>
public class UpdateSampleCommandValidator : AbstractValidator<UpdateSampleCommand>
{
    public UpdateSampleCommandValidator()
    {
        RuleFor(x => x.SampleId)
            .NotEmpty()
            .WithMessage("Sample ID is required / ID sample là bắt buộc");

        RuleFor(x => x.Name)
            .NotEmpty()
            .WithMessage("Name is required / Tên là bắt buộc")
            .MaximumLength(200)
            .WithMessage("Name must be less than 200 characters / Tên phải ít hơn 200 ký tự");

        RuleFor(x => x.Description)
            .MaximumLength(1000)
            .WithMessage("Description must be less than 1000 characters / Mô tả phải ít hơn 1000 ký tự")
            .When(x => x.Description != null);
    }
}
