FastTechFoodsOrder.Shared
1.0.0
See the version list below for details.
dotnet add package FastTechFoodsOrder.Shared --version 1.0.0
NuGet\Install-Package FastTechFoodsOrder.Shared -Version 1.0.0
<PackageReference Include="FastTechFoodsOrder.Shared" Version="1.0.0" />
<PackageVersion Include="FastTechFoodsOrder.Shared" Version="1.0.0" />
<PackageReference Include="FastTechFoodsOrder.Shared" />
paket add FastTechFoodsOrder.Shared --version 1.0.0
#r "nuget: FastTechFoodsOrder.Shared, 1.0.0"
#:package FastTechFoodsOrder.Shared@1.0.0
#addin nuget:?package=FastTechFoodsOrder.Shared&version=1.0.0
#tool nuget:?package=FastTechFoodsOrder.Shared&version=1.0.0
FastTechFoodsOrder.Shared
Uma biblioteca compartilhada .NET para o sistema FastTechFoods, fornecendo componentes comuns para gerenciamento de pedidos, incluindo enums, mensagens de integração e utilitários para manipulação de status de pedidos.
📋 Índice
- Sobre o Projeto
- Características
- Instalação
- Uso
- Estrutura do Projeto
- API Reference
- Contribuição
- Licença
🚀 Sobre o Projeto
O FastTechFoodsOrder.Shared é uma biblioteca desenvolvida para centralizar componentes comuns utilizados no ecossistema de pedidos do FastTechFoods. Esta biblioteca fornece definições padronizadas para status de pedidos, mensagens de eventos e utilitários para facilitar a integração entre diferentes microserviços.
Características
- ✅ Enums padronizados para status de pedidos
- ✅ Mensagens de eventos tipadas para integração entre microserviços
- ✅ Utilitários para conversão e validação de status
- ✅ Validação de transições de status
- ✅ Compatibilidade com .NET 9.0
- ✅ Nullable reference types habilitado
📦 Instalação
Via NuGet Package Manager
Install-Package FastTechFoodsOrder.Shared
Via .NET CLI
dotnet add package FastTechFoodsOrder.Shared
Via PackageReference
<PackageReference Include="FastTechFoodsOrder.Shared" Version="2.6.0" />
🛠️ Uso
Enums de Status
using FastTechFoodsOrder.Shared.Enums;
// Usando o enum OrderStatus
var status = OrderStatus.Pending;
var nextStatus = OrderStatus.Accepted;
Utilitários de Status
using FastTechFoodsOrder.Shared.Utils;
using FastTechFoodsOrder.Shared.Enums;
// Conversão de string para enum
var status = OrderStatusUtils.ConvertStringToStatus("pending");
// Conversão de enum para string
var statusString = OrderStatusUtils.ConvertStatusToString(OrderStatus.Accepted);
// Validação de status
bool isValid = OrderStatusUtils.IsValidStatus("preparing");
// Verificação de transição válida
bool canTransition = OrderStatusUtils.IsValidStatusTransition(
OrderStatus.Pending,
OrderStatus.Accepted
);
// Obter descrição amigável
string description = OrderStatusUtils.GetStatusDescription(OrderStatus.Preparing);
// Retorna: "Em Preparação"
// Obter todos os status válidos
var allStatuses = OrderStatusUtils.GetAllValidStatuses();
Mensagens de Eventos
using FastTechFoodsOrder.Shared.Integration.Messages;
// Criação de pedido
var orderCreated = new OrderCreatedMessage
{
OrderId = "123",
EventType = "OrderCreated",
EventDate = DateTime.UtcNow,
CustomerId = "customer-123",
Status = "pending",
Items = new List<OrderItemMessage>
{
new OrderItemMessage
{
ProductId = "prod-1",
Name = "Hambúrguer",
Quantity = 2,
UnitPrice = 15.99m
}
},
DeliveryMethod = "delivery",
Total = 31.98m
};
// Aceitar pedido
var orderAccepted = new OrderAcceptedMessage
{
OrderId = "123",
EventType = "OrderAccepted",
EventDate = DateTime.UtcNow,
CustomerId = "customer-123",
Status = "accepted",
UpdatedBy = "restaurant-staff",
EstimatedPreparationTime = DateTime.UtcNow.AddMinutes(30)
};
// Cancelar pedido
var orderCancelled = new OrderCancelledMessage
{
OrderId = "123",
EventType = "OrderCancelled",
EventDate = DateTime.UtcNow,
CustomerId = "customer-123",
Status = "cancelled",
CancelReason = "Cliente solicitou cancelamento",
CancelledBy = "customer",
CancelledAt = DateTime.UtcNow
};
📁 Estrutura do Projeto
src/
├── Enums/
│ └── OrderStatus.cs # Enum com os status dos pedidos
├── Integration/
│ └── Messages/
│ └── OrderEventMessage.cs # Mensagens de eventos de pedidos
├── Utils/
│ └── OrderStatusUtils.cs # Utilitários para manipulação de status
└── FastTechFoodsOrder.Shared.csproj
📚 API Reference
OrderStatus Enum
| Status | Descrição | Próximos Status Válidos |
|---|---|---|
Pending |
Pedido pendente | Accepted, Cancelled |
Accepted |
Pedido aceito | Preparing, Cancelled |
Preparing |
Em preparação | Ready, Cancelled |
Ready |
Pronto para entrega | Delivered |
Cancelled |
Cancelado | (final) |
Delivered |
Entregue | (final) |
Mensagens de Eventos
Mensagens Base
OrderEventMessage- Classe base para todos os eventosOrderCreatedMessage- Evento de criação de pedidoOrderItemMessage- Representa um item do pedido
Mensagens de Status
OrderPendingMessage- Pedido pendenteOrderAcceptedMessage- Pedido aceitoOrderPreparingMessage- Pedido em preparaçãoOrderReadyMessage- Pedido prontoOrderDeliveredMessage- Pedido entregueOrderCompletedMessage- Pedido completadoOrderCancelledMessage- Pedido cancelado
OrderStatusUtils
Métodos Principais
// Conversões
OrderStatus? ConvertStringToStatus(string? status)
string ConvertStatusToString(OrderStatus status)
// Validações
bool IsValidStatus(string? status)
bool IsValidStatusTransition(OrderStatus currentStatus, OrderStatus newStatus)
// Utilitários
IEnumerable<string> GetAllValidStatuses()
string GetStatusDescription(OrderStatus status)
🤝 Contribuição
- Faça o fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto é licenciado sob a MIT License.
🏗️ Desenvolvimento
Pré-requisitos
- .NET 9.0 SDK
- Visual Studio 2022 ou VS Code
Build
dotnet build
Testes
dotnet test
Publicação
dotnet pack --configuration Release
📞 Contato
Projeto FastTechFoods - @pos-fiap-gustavo-fabiano
Link do Projeto: https://github.com/pos-fiap-gustavo-fabiano/FastTechFoodsOrderShared
⚡ Feito com ❤️ para o ecossistema FastTechFoods
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.