Files
TP-Fluent/BookHive/Validators/Reviews/CreateReviewDtoValidator.cs
2026-03-10 10:43:28 +01:00

30 lines
860 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.");
});
}
}