FiapCloudGames.Contracts 7.0.0

dotnet add package FiapCloudGames.Contracts --version 7.0.0
                    
NuGet\Install-Package FiapCloudGames.Contracts -Version 7.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FiapCloudGames.Contracts" Version="7.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FiapCloudGames.Contracts" Version="7.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FiapCloudGames.Contracts" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FiapCloudGames.Contracts --version 7.0.0
                    
#r "nuget: FiapCloudGames.Contracts, 7.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FiapCloudGames.Contracts@7.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FiapCloudGames.Contracts&version=7.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FiapCloudGames.Contracts&version=7.0.0
                    
Install as a Cake Tool

FiapCloudGames.Contracts

Contratos de eventos de integração compartilhados entre os microsserviços do FIAP Cloud Games.

Distribuído como pacote NuGet (nuget.org) para que produtor e consumidores usem a mesma definição de mensagem e roteamento.

Instalação

dotnet add package FiapCloudGames.Contracts

Conteúdo

Tipo Descrição
IIntegrationEvent Contrato base (EventId, OccurredAt) de todo evento.
Users.UserRegisteredEvent Usuário se auto-registrou (também usado quando um admin cria o usuário).
Users.UserMessaging Nome da exchange e routing keys dos eventos de usuário.
Catalog.OrderPlacedEvent Pedido de compra realizado (UserId, GameId, Price).
Catalog.CatalogMessaging Nome da exchange e routing keys dos eventos de catálogo.
Payments.PaymentProcessedEvent Pagamento processado (UserId, GameId, Status).
Payments.PaymentStatus Resultado do pagamento (Approved, Rejected).
Payments.PaymentsMessaging Nome da exchange e routing keys dos eventos de pagamentos.

Uso

Produtor (UsersAPI) serializa e publica:

var evt = new UserRegisteredEvent(user.Id, user.Name, user.Email);
// publica em UserMessaging.Exchange com routing key UserMessaging.RoutingKeys.Registered

Consumidor desserializa o mesmo tipo:

var evt = JsonSerializer.Deserialize<UserRegisteredEvent>(body);

Versionamento

Segue SemVer. Contratos são record imutáveis:

  • Campo novo opcional → minor/patch.
  • Renomear/remover campo → major (quebra consumidores).

Publicação

Automática via GitHub Actions: ao publicar uma release com tag vX.Y.Z, o pacote X.Y.Z é enviado ao nuget.org. A autenticação usa Trusted Publishing (OIDC) — não há API key de longa duração armazenada. Pré-requisitos (uma vez):

  1. Em nuget.org → Trusted Publishing, crie uma policy: Repository Owner pdelfino0, Repository fcg-contracts, Workflow File publish.yml (sem Environment).
  2. Defina o secret NUGET_USER no repositório com seu nome de usuário (profile) do nuget.org.
# Publicação manual (alternativa)
dotnet pack src/FiapCloudGames.Contracts/FiapCloudGames.Contracts.csproj -c Release -o out /p:Version=1.0.0
dotnet nuget push "out/*.nupkg" --api-key <API_KEY> --source https://api.nuget.org/v3/index.json
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.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.

Version Downloads Last Updated
7.0.0 173 7/7/2026
6.0.0 185 7/5/2026
5.0.0 122 7/3/2026
4.0.0 161 7/1/2026
3.0.0 117 7/1/2026
2.0.0 103 6/27/2026
1.0.0 152 6/27/2026