Cosmos.Types.Paises 1.1.1

dotnet add package Cosmos.Types.Paises --version 1.1.1
                    
NuGet\Install-Package Cosmos.Types.Paises -Version 1.1.1
                    
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="Cosmos.Types.Paises" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cosmos.Types.Paises" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Cosmos.Types.Paises" />
                    
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 Cosmos.Types.Paises --version 1.1.1
                    
#r "nuget: Cosmos.Types.Paises, 1.1.1"
                    
#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 Cosmos.Types.Paises@1.1.1
                    
#: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=Cosmos.Types.Paises&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Cosmos.Types.Paises&version=1.1.1
                    
Install as a Cake Tool

Cosmos.Types.Paises

NuGet

Pais — Value Object de país para el ERP Cosmos, con catálogo embebido de 195 países (código ISO, nombre, indicativo telefónico, moneda). Viaja dentro de eventos event-sourced (JSONB) aguas abajo, por lo que su forma serializada es un contrato estable.

Instalación

dotnet add package Cosmos.Types.Paises

Construcción

Pais es un VO de catálogo: su puerta pública es Obtener(...), que lanza ArgumentException si el código no existe o no está activo. Es la forma correcta para un código confiable (un literal del dev, un valor ya validado aguas arriba):

using Cosmos.Types.Paises;

var colombia = Pais.Obtener("CO");   // lanza ArgumentException si "CO" no existe/activo

La factory Crear(...) : Result<Pais> (que valida sin lanzar) es internal: no está disponible para el consumidor. Un Pais solo se obtiene por Obtener, lo que garantiza que todo Pais tipado en tu código es válido por construcción.

Forma serializada

{ "codigo": "CO" }

Las claves son camelCase ancladas con [JsonPropertyName]: el wire es determinista e independiente del JsonSerializerOptions del consumidor. Los datos descriptivos (Nombre, IndicativoTelefonico, MonedaPrincipal) son accessors derivados del catálogo, marcados [JsonIgnore]: no viajan en el evento.

Rehidratación (deserialización)

No requiere setup: ni JsonConverter ni JsonSerializerContext registrados; basta el STJ por defecto. Al deserializar un evento histórico el VO se rehidrata crudo ([JsonConstructor]), sin validar — un código que ya no figura en el catálogo igual se rehidrata. En ese estado poison los accessors derivados resuelven a null sin lanzar (pais.Nombre == null).

Listado

Para poblar un selector en un frontend usá Pais.Listar() — devuelve los mismos Pais que consume la escritura, así que el valor elegido fluye directo a las factories tipadas. Las etiquetas de display no viajan serializadas, por lo que el backend consumidor proyecta su propio DTO de API:

var paisesDto = Pais.Listar().Select(pais => new { pais.Codigo, pais.Nombre });

Dependencias

  • Cosmos.Types.Abstractions (kernel: Result<T>)

Requiere net10.0.

Documentación

Licencia

Uso interno del ERP Cosmos.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Cosmos.Types.Paises:

Package Downloads
Cosmos.Types.IdentificacionesLegales

Value Object IdentificacionLegal para el ERP Cosmos: tipo de documento, número y dígito de verificación con catálogo embebido de 47 tipos. Cuatro algoritmos de DV: módulo-11 DIAN (CO NIT), Luhn cédula y módulo-11 RNC (DO, DV embebido) y capturado (PA RUC/NT). Diseñado para eventos event-sourced.

Cosmos.Impuestos.Contratos

Eventos públicos de integración de Cosmos Impuestos (IPublicEvent) para consumidores en otros bounded contexts.

Cosmos.Contabilidad.Contratos

Package Description

Cosmos.Types.DivisionesTerritoriales

Value Object DivisionTerritorial para el ERP Cosmos, con catálogos territoriales embebidos de Colombia (DIVIPOLA), República Dominicana y Panamá. Diseñado para eventos event-sourced.

ObligacionesPorPagar.Reconocimiento.Contratos

Contratos de reconocimiento expuestos a terceros.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 4,828 6/30/2026
1.1.0 221 6/24/2026