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.");
}
}