Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<PackageReference Include="FluentValidation" Version="12.1.1" />
<PackageReference Include="HttpsRichardy.Dispatcher" Version="1.0.2" />
<PackageReference Include="HttpsRichardy.Federation.Sdk.Contracts" Version="1.0.2" />
<PackageReference Include="Comanda.Internal.Contracts" Version="1.0.1" />
<PackageReference Include="Comanda.Internal.Contracts" Version="1.0.8" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ public OrderCreationSchemeValidator()
.IsInEnum()
.WithMessage("fulfillment must be a valid enum value.");

RuleFor(order => order.Address)
.NotNull()
.WithMessage("address must be provided when fulfillment is delivery.")
.When(order => order.Fulfillment == Fulfillment.Delivery);

RuleFor(order => order.Priority)
.IsInEnum()
.WithMessage("priority must be a valid enum value.");
Expand All @@ -20,6 +25,31 @@ public OrderCreationSchemeValidator()
.NotNull()
.WithMessage("metadata must be provided.");

When(order => order.Fulfillment == Fulfillment.Delivery && order.Address is not null, () =>
{
RuleFor(order => order.Address!.Street)
.NotEmpty()
.WithMessage("The street field is required and cannot be empty.");

RuleFor(order => order.Address!.Number)
.NotEmpty()
.WithMessage("The number field is required and represents the street number of the address.");

RuleFor(order => order.Address!.City)
.NotEmpty()
.WithMessage("The city field is required and cannot be empty.");

RuleFor(order => order.Address!.State)
.NotEmpty()
.WithMessage("The state field is required and cannot be empty.");

RuleFor(order => order.Address!.ZipCode)
.NotEmpty()
.WithMessage("The zip code field is required.")
.Matches(ExpressionPatterns.Cep)
.WithMessage("The zip code is invalid. It must match the Brazilian postal code format.");
});

When(order => order.Metadata is not null, () =>
{
RuleFor(order => order.Metadata!.MerchantId)
Expand Down