30 lines
844 B
C#
30 lines
844 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(x => $"La note {x.Rating} est invalide. Elle doit être comprise entre 1 et 5.");
|
|
|
|
When(x => x.Comment is not null, () =>
|
|
{
|
|
RuleFor(x => x.Comment)
|
|
.MaximumLength(3000)
|
|
.WithMessage("Comment cannot exceed 3000 characters.");
|
|
});
|
|
}
|
|
} |