feat: implemetar até parte 3
This commit is contained in:
33
Validation/WorkshopRequestDTOValidator.cs
Normal file
33
Validation/WorkshopRequestDTOValidator.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using CampusWorkshops.Api.Dtos;
|
||||
using FluentValidation;
|
||||
|
||||
namespace Workshop10_API.Validation
|
||||
{
|
||||
public class WorkshopRequestDTOValidator : AbstractValidator<CreateWorkshopRequestDTO>
|
||||
{
|
||||
public WorkshopRequestDTOValidator()
|
||||
{
|
||||
RuleFor(x => x.Title)
|
||||
.NotEmpty().WithMessage("O título é obrigatório.")
|
||||
.Length(3, 120).WithMessage("O título deve ter entre 3 e 120 caracteres.");
|
||||
|
||||
RuleFor(x => x.Capacity)
|
||||
.GreaterThan(0).WithMessage("Capacidade deve ser no mínimo 1.");
|
||||
|
||||
RuleFor(x => x.StartAt)
|
||||
.LessThan(x => x.EndAt).WithMessage("A data de início deve ser menor que a data de término.");
|
||||
|
||||
RuleFor(x => x.Location)
|
||||
.NotEmpty().When(x => !x.IsOnline)
|
||||
.WithMessage("Local é obrigatório quando o evento não é online.");
|
||||
|
||||
RuleFor(x => x.StartAt)
|
||||
.Must(date => DateTime.TryParse(date.ToString("yyyy/MM/dd HH:mm:ss"), out DateTime x))
|
||||
.WithMessage("A data de início deve estar em formato ISO 8601 (YYYY-MM-DDTHH:mm:ssZ).");
|
||||
|
||||
RuleFor(x => x.EndAt)
|
||||
.Must(date => DateTime.TryParse(date.ToString("yyyy/MM/dd HH:mm:ss"), out DateTime x))
|
||||
.WithMessage("A data fim deve estar em formato ISO 8601 (YYYY-MM-DDTHH:mm:ssZ).");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user