ultimatepos/Modules/IndustrialEngineering/Domain/BoundedContext.php

58 lines
1.7 KiB
PHP

<?php
namespace Modules\IndustrialEngineering\Domain;
/**
* Bounded contexts within the Industrial Engineering digital thread.
*
* Each context owns a set of ie_* tables and defines clear integration
* boundaries with external UltimatePOS modules.
*/
final class BoundedContext
{
public const MASTER_DATA = 'master_data';
public const BOM_CONFIGURATION = 'bom_configuration';
public const COSTING_RELEASE = 'costing_release';
public const SERIALIZATION = 'serialization';
public const INSTALLED_BASE = 'installed_base';
public const SOURCING = 'sourcing';
public const COMPETITIVE_RESEARCH = 'competitive_research';
public const ASSET_EXCHANGE = 'asset_exchange';
public static function all(): array
{
return [
self::MASTER_DATA,
self::BOM_CONFIGURATION,
self::COSTING_RELEASE,
self::SERIALIZATION,
self::INSTALLED_BASE,
self::SOURCING,
self::COMPETITIVE_RESEARCH,
self::ASSET_EXCHANGE,
];
}
public static function label(string $context): string
{
return match ($context) {
self::MASTER_DATA => 'Item Master & Catalog',
self::BOM_CONFIGURATION => 'BOM & Line Configuration',
self::COSTING_RELEASE => 'Costing & Release to Production',
self::SERIALIZATION => 'Serialization & As-Built',
self::INSTALLED_BASE => 'Installed Base & Commissioning',
self::SOURCING => 'Holding-wide Sourcing & Procurement',
self::COMPETITIVE_RESEARCH => 'Competitive Intelligence & R&D',
self::ASSET_EXCHANGE => 'Asset Exchange & Used Machinery Marketplace',
default => $context,
};
}
}