Files
Workshop10-API/Validation/WorkshopRequestDTOValidator.cs

34 lines
1.4 KiB
C#
Raw Normal View History

2025-09-09 20:16:58 -03:00
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).");
}
}
}