using FluentValidation; using AdsAnalyticsService.API.Application.Commands; namespace AdsAnalyticsService.API.Application.Validations; /// /// EN: Validator for CreateReportCommand. /// VI: Validator cho CreateReportCommand. /// public class CreateReportCommandValidator : AbstractValidator { public CreateReportCommandValidator() { RuleFor(x => x.AdvertiserId) .NotEmpty() .WithMessage("Advertiser ID is required / Advertiser ID là bắt buộc"); RuleFor(x => x.Name) .NotEmpty() .WithMessage("Report name is required / Tên báo cáo là bắt buộc") .MaximumLength(200) .WithMessage("Report name max 200 characters / Tên báo cáo tối đa 200 ký tự"); RuleFor(x => x.ReportType) .IsInEnum() .WithMessage("Report type is invalid / Loại báo cáo không hợp lệ"); RuleFor(x => x.StartDate) .NotEmpty() .WithMessage("Start date is required / Ngày bắt đầu là bắt buộc"); RuleFor(x => x.EndDate) .NotEmpty() .WithMessage("End date is required / Ngày kết thúc là bắt buộc") .GreaterThan(x => x.StartDate) .WithMessage("End date must be after start date / Ngày kết thúc phải sau ngày bắt đầu"); } }