laymont/container-repair-cedex

Laravel package for ISO 9897 (CEDEX) container repair management with DDD architecture

Maintainers

Package info

github.com/laymont/container-repair-cedex

pkg:composer/laymont/container-repair-cedex

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-05-28 13:15 UTC

This package is auto-updated.

Last update: 2026-05-28 13:24:21 UTC


README

Laravel package for ISO 9897 (CEDEX) container repair management with DDD architecture.

Objetivo

Este paquete proporciona una capa de lógica de negocio que estandariza las reparaciones de contenedores marítimos bajo la norma ISO 9897 (CEDEX), funcionando de forma sinérgica con el paquete base shicontstand.

Características

  • DDD-Lite Architecture: Dominio CEDEX independiente de Laravel
  • Value Objects: Clases inmutables para códigos de la norma ISO 9897
  • Domain Services: Validación de combinaciones Daño-Reparación según la norma
  • Actions: Procesos multi-paso (ValidateRepairEstimate, FormatCedexMessage)
  • DTOs: Transferencia de datos tipada
  • Bridge Pattern: Integración con shicontstand sin modificar su código
  • PHP 8.3+ Strict Typing: Tipado estricto en todo el código
  • Laravel 11/12/13 Compatible: Compatible con múltiples versiones de Laravel

Fundamentos del Dominio: ISO 9897 (CEDEX)

El paquete se basa en los pilares del Container Equipment Data Exchange:

  • Anexo C (Localización): Sistema de coordenadas para identificar el punto exacto del daño
  • Anexo D (Tipos de Daño): Códigos de dos caracteres (ej. BR - Broken)
  • Anexo F (Tipos de Reparación): Acciones estandarizadas (ej. RP - Replace)
  • Anexo I (Componentes): Catálogo de partes físicas con validación cruzada

Instalación

composer require laymont/container-repair-cedex

Configuración

El paquete se registra automáticamente en Laravel. No requiere configuración adicional.

Uso

Value Objects

use Laymont\Cedex\Domain\ValueObjects\DamageCode;
use Laymont\Cedex\Domain\ValueObjects\ComponentCode;
use Laymont\Cedex\Domain\ValueObjects\LocationCode;

$damageCode = new DamageCode('BR'); // Broken
$componentCode = new ComponentCode('FP'); // Front Panel
$locationCode = new LocationCode('L'); // Left side

Domain Services

use Laymont\Cedex\Domain\Services\RepairValidator;

$validator = new RepairValidator();
$isValid = $validator->validateCombination($damageCode, $componentCode, $repairCode);

Actions

use Laymont\Cedex\Actions\ValidateRepairEstimate;

$action = new ValidateRepairEstimate();
$result = $action->execute($repairData);

Bridge con shicontstand

use Laymont\Cedex\Infrastructure\Bridge\ShicontstandBridge;

$bridge = new ShicontstandBridge();
$validRepairs = $bridge->getValidRepairsForContainer($containerType);

Arquitectura

Capa de Dominio (Pure PHP)

  • Value Objects: DamageCode, ComponentCode, LocationCode, RepairCode
  • Domain Services: RepairValidator, CedexFormatter
  • Exceptions: CedexValidationException, InvalidCodeException

Capa de Aplicación

  • Actions: ValidateRepairEstimate, FormatCedexMessage
  • DTOs: RepairEstimateDTO, CedexMessageDTO

Capa de Infraestructura (Laravel)

  • Service Providers: CedexServiceProvider
  • Repositories: DamageCodeRepository, ComponentCodeRepository
  • Bridge: ShicontstandBridge

Compatibilidad

  • PHP: ^8.3
  • Laravel: ^11.0|^12.0|^13.0

Testing

./vendor/bin/pest

Contribución

  1. Haz un fork del repositorio.
  2. Crea una rama: git checkout -b feature/nueva-funcionalidad.
  3. Realiza cambios y hace commit: git commit -m "Agregando...".
  4. Sube: git push origin feature/nueva-funcionalidad.
  5. Abre un Pull Request.

Donaciones

Si encuentras útil este paquete y deseas apoyar su desarrollo y mantenimiento, puedes considerar hacer una donación.

Zinli

Visa Prepagada Zinli

  • Número: 4850460061276928

Binance Pay

  • Binance Pay ID: 206414132

¡Gracias por tu apoyo!

Licencia

MIT.