Cosmos.Types.DireccionesFisicas
1.1.1
dotnet add package Cosmos.Types.DireccionesFisicas --version 1.1.1
NuGet\Install-Package Cosmos.Types.DireccionesFisicas -Version 1.1.1
<PackageReference Include="Cosmos.Types.DireccionesFisicas" Version="1.1.1" />
<PackageVersion Include="Cosmos.Types.DireccionesFisicas" Version="1.1.1" />
<PackageReference Include="Cosmos.Types.DireccionesFisicas" />
paket add Cosmos.Types.DireccionesFisicas --version 1.1.1
#r "nuget: Cosmos.Types.DireccionesFisicas, 1.1.1"
#:package Cosmos.Types.DireccionesFisicas@1.1.1
#addin nuget:?package=Cosmos.Types.DireccionesFisicas&version=1.1.1
#tool nuget:?package=Cosmos.Types.DireccionesFisicas&version=1.1.1
Cosmos.Types.DireccionesFisicas
DireccionFisica — Value Object de dirección física para el ERP Cosmos: país, división territorial
(vía Cosmos.Types.DivisionesTerritoriales), línea de dirección y código postal opcional. 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.DireccionesFisicas
Construcción
DivisionTerritorial es un VO de catálogo: se obtiene con DivisionTerritorial.Obtener(pais, codigo),
que lanza. DireccionFisica es un VO compuesto: su factory pública Crear(...) : Result<DireccionFisica>
valida sin lanzar (EsExitoso / .Valor / .Errores):
using Cosmos.Types.DireccionesFisicas;
using Cosmos.Types.DivisionesTerritoriales;
using Cosmos.Types.Paises;
var colombia = Pais.Obtener("CO");
var medellin = DivisionTerritorial.Obtener(colombia, "05001"); // VO de catálogo: Obtener (lanza)
var resultado = DireccionFisica.Crear( // VO compuesto: Crear (Result)
divisionTerritorial: medellin,
lineaDireccion: "Calle 10 # 43-12");
if (resultado.EsExitoso)
UsarDireccion(resultado.Valor);
else
foreach (var error in resultado.Errores)
Console.WriteLine(error.Codigo); // V02 (división), V03 (línea)
Crear deriva el país de la división territorial (no se pasa por separado): la división ya carga
su país.
Forma serializada
{
"pais": { "codigo": "CO" },
"divisionTerritorial": { "pais": { "codigo": "CO" }, "codigo": "05001" },
"lineaDireccion": "Calle 10 # 43-12",
"lineaDireccion2": null,
"codigoPostal": null
}
Las claves son camelCase ancladas con [JsonPropertyName]. A diferencia de IdentificacionLegal
(que aplana su tipo a string), DireccionFisica anida la DivisionTerritorial completa como
objeto — decisión deliberada para conservar la jerarquía territorial aguas abajo. La LineaDireccion2
(complemento) y el CodigoPostal viajan como campos estructurales aunque sean null.
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 — una división que ya no figura en el catálogo igual se rehidrata.
Dependencias
Cosmos.Types.Abstractions(kernel:Result<T>)Cosmos.Types.DivisionesTerritoriales
Requiere net10.0. Hoy la dirección es línea libre normalizada y el código postal se almacena tal cual (sin validación postal); la captura estructurada y la validación postal quedan diferidas a la publicación de sus catálogos.
Documentación
- Convenciones de los nuggets (§7: captura estructurada diferida)
Licencia
Uso interno del ERP Cosmos.
| Product | Versions 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. |
-
net10.0
- Cosmos.Types.Abstractions (>= 1.1.1)
- Cosmos.Types.DivisionesTerritoriales (>= 1.1.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Cosmos.Types.DireccionesFisicas:
| Package | Downloads |
|---|---|
|
ObligacionesPorPagar.Entradas.Contratos
Contratos de reconocimiento expuestos a terceros. |
|
|
ObligacionesPorPagar.Reconocimiento.Contratos
Contratos de reconocimiento expuestos a terceros. |
GitHub repositories
This package is not used by any popular GitHub repositories.