using FluentValidation;
using Indotalent.Shared.Consts;

namespace Indotalent.Features.Utilities.BookingManager.Cqrs;

public class UpdateBookingValidator : AbstractValidator<UpdateBookingRequest>
{
    public UpdateBookingValidator()
    {
        RuleFor(x => x.Id).NotEmpty();

        RuleFor(x => x.Subject)
            .NotEmpty().WithMessage("Subject is required")
            .MaximumLength(GlobalConsts.StringLengthShort);

        RuleFor(x => x.StartTime)
            .NotEmpty().WithMessage("Start Time is required");

        RuleFor(x => x.EndTime)
            .NotEmpty().WithMessage("End Time is required");

        RuleFor(x => x.BookingResourceId)
            .NotEmpty().WithMessage("Resource is required");
    }
}