using Extrudex.API.DTOs.Materials; using FluentValidation; namespace Extrudex.API.Validators; /// /// Validation rules for creating a MaterialBase. /// public class CreateMaterialBaseRequestValidator : AbstractValidator { public CreateMaterialBaseRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Material name is required.") .MaximumLength(50).WithMessage("Material name must not exceed 50 characters."); RuleFor(x => x.DensityGperCm3) .GreaterThan(0).WithMessage("Density must be greater than zero."); } } /// /// Validation rules for updating a MaterialBase. /// public class UpdateMaterialBaseRequestValidator : AbstractValidator { public UpdateMaterialBaseRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Material name is required.") .MaximumLength(50).WithMessage("Material name must not exceed 50 characters."); RuleFor(x => x.DensityGperCm3) .GreaterThan(0).WithMessage("Density must be greater than zero."); } } /// /// Validation rules for creating a MaterialFinish. /// public class CreateMaterialFinishRequestValidator : AbstractValidator { public CreateMaterialFinishRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Finish name is required.") .MaximumLength(50).WithMessage("Finish name must not exceed 50 characters."); RuleFor(x => x.MaterialBaseId) .NotEmpty().WithMessage("MaterialBaseId is required."); } } /// /// Validation rules for updating a MaterialFinish. /// public class UpdateMaterialFinishRequestValidator : AbstractValidator { public UpdateMaterialFinishRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Finish name is required.") .MaximumLength(50).WithMessage("Finish name must not exceed 50 characters."); RuleFor(x => x.MaterialBaseId) .NotEmpty().WithMessage("MaterialBaseId is required."); } } /// /// Validation rules for creating a MaterialModifier. /// public class CreateMaterialModifierRequestValidator : AbstractValidator { public CreateMaterialModifierRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Modifier name is required.") .MaximumLength(50).WithMessage("Modifier name must not exceed 50 characters."); RuleFor(x => x.MaterialBaseId) .NotEmpty().WithMessage("MaterialBaseId is required."); } } /// /// Validation rules for updating a MaterialModifier. /// public class UpdateMaterialModifierRequestValidator : AbstractValidator { public UpdateMaterialModifierRequestValidator() { RuleFor(x => x.Name) .NotEmpty().WithMessage("Modifier name is required.") .MaximumLength(50).WithMessage("Modifier name must not exceed 50 characters."); RuleFor(x => x.MaterialBaseId) .NotEmpty().WithMessage("MaterialBaseId is required."); } }