initial commit

This commit is contained in:
2026-07-21 14:14:44 +07:00
commit fa7dbb970d
1359 changed files with 104110 additions and 0 deletions
@@ -0,0 +1,27 @@
using FluentValidation;
using Indotalent.Shared.Consts;
namespace Indotalent.Features.Pipeline.Budget.Cqrs;
public class UpdateBudgetValidator : AbstractValidator<UpdateBudgetRequest>
{
public UpdateBudgetValidator()
{
RuleFor(x => x.Id)
.NotEmpty().WithMessage("ID is required for update");
RuleFor(x => x.Title)
.NotEmpty().WithMessage("Title is required")
.MaximumLength(GlobalConsts.StringLengthShort);
RuleFor(x => x.CampaignId)
.NotEmpty().WithMessage("Campaign is required");
}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue() => async (model, propertyName) =>
{
var result = await ValidateAsync(ValidationContext<UpdateBudgetRequest>.CreateWithOptions((UpdateBudgetRequest)model, x => x.IncludeProperties(propertyName)));
if (result.IsValid) return Array.Empty<string>();
return result.Errors.Select(e => e.ErrorMessage);
};
}