Files
TP-Fluent/BookHive/Validators/Reviews/CreateReviewDtoValidator.cs

30 lines
814 B
C#

using BookHive.DTO.Review;
using FastEndpoints;
using FluentValidation;
namespace BookHive.Validators.Reviews;
public class CreateReviewDtoValidator : Validator<CreateReviewDto>
{
public CreateReviewDtoValidator()
{
RuleFor(x => x.MemberId)
.GreaterThan(0)
.WithMessage("Member id is invalid.");
RuleFor(x => x.BookId)
.GreaterThan(0)
.WithMessage("Book id is invalid.");
RuleFor(x => x.Rating)
.InclusiveBetween(1, 5)
.WithMessage("Rating must be between 1 and 5.");
When(x => x.Comment is not null, () =>
{
RuleFor(x => x.Comment)
.MaximumLength(3000)
.WithMessage("Comment cannot exceed 3000 characters.");
});
}
}