Cosmos.Types.DivisionesTerritoriales 1.1.1

dotnet add package Cosmos.Types.DivisionesTerritoriales --version 1.1.1
                    
NuGet\Install-Package Cosmos.Types.DivisionesTerritoriales -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.DivisionesTerritoriales" 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.DivisionesTerritoriales" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Cosmos.Types.DivisionesTerritoriales" />
                    
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.DivisionesTerritoriales --version 1.1.1
                    
#r "nuget: Cosmos.Types.DivisionesTerritoriales, 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.DivisionesTerritoriales@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.DivisionesTerritoriales&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Cosmos.Types.DivisionesTerritoriales&version=1.1.1
                    
Install as a Cake Tool

Cosmos.Types.DivisionesTerritoriales

NuGet

DivisionTerritorial — Value Object de división territorial para el ERP Cosmos, con catálogo DIVIPOLA de Colombia embebido (33 departamentos + 1.122 municipios). 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.DivisionesTerritoriales

Construcción

DivisionTerritorial es un VO de catálogo país-scoped: su puerta pública es Obtener(pais, codigo), que lanza ArgumentException si el código no existe o no está activo para ese país. Recibe un Pais ya tipado (que solo se obtiene por Pais.Obtener, validado):

using Cosmos.Types.DivisionesTerritoriales;
using Cosmos.Types.Paises;

var colombia = Pais.Obtener("CO");
var medellin = DivisionTerritorial.Obtener(colombia, "05001");   // Medellín (DIVIPOLA); lanza si no existe

La factory Crear(...) : Result<DivisionTerritorial> es internal: no está disponible para el consumidor. Toda DivisionTerritorial tipada es válida por construcción.

Forma serializada

{ "pais": { "codigo": "CO" }, "codigo": "05001" }

Las claves son camelCase ancladas con [JsonPropertyName]; el Pais anidado serializa su propio { "codigo": … }. Los datos descriptivos (Nombre, Nivel, Superior) 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 igual se rehidrata. En ese estado poison los accessors derivados resuelven a null sin lanzar (division.Nombre == null).

Listado

El catálogo es jerárquico y grande, así que no hay un Listar() plano. Para poblar selectores en un frontend: ListarPorPais(pais) (todas las divisiones activas), RaicesDe(pais) (nivel superior, p. ej. departamentos) y HijasDe(division) (descenso jerárquico). Devuelven los mismos DivisionTerritorial que consume la escritura; el backend proyecta su propio DTO de API:

var departamentosDto = DivisionTerritorial.RaicesDe(colombia)
    .Select(division => new { division.Codigo, division.Nombre });

Dependencias

  • Cosmos.Types.Abstractions (kernel: Result<T>)
  • Cosmos.Types.Paises (validación del país)

Requiere net10.0. Hoy solo se embebe el catálogo de Colombia; otros países quedan diferidos.

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 (2)

Showing the top 2 NuGet packages that depend on Cosmos.Types.DivisionesTerritoriales:

Package Downloads
ObligacionesPorPagar.Reconocimiento.Contratos

Contratos de reconocimiento expuestos a terceros.

Cosmos.Types.DireccionesFisicas

Value Object DireccionFisica para el ERP Cosmos: país, división territorial, línea de dirección y código postal. Diseñado para eventos event-sourced.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 139 6/30/2026
1.1.0 88 6/24/2026