Files
WMS/bootstrap/providers.php
T
2026-06-12 15:11:51 +01:00

60 lines
2.5 KiB
PHP

<?php
use App\Providers\AppServiceProvider;
use App\Providers\FortifyServiceProvider;
use Modules\Analytics\Providers\AnalyticsServiceProvider;
use Modules\Audit\Providers\AuditServiceProvider;
use Modules\CarrierManagement\Providers\CarrierManagementServiceProvider;
use Modules\Configuration\Providers\ConfigurationServiceProvider;
use Modules\DocumentArchive\Providers\DocumentArchiveServiceProvider;
use Modules\InternalApi\Providers\InternalApiServiceProvider;
use Modules\InventoryManagement\Providers\InventoryManagementServiceProvider;
use Modules\M3Integration\Providers\M3IntegrationServiceProvider;
use Modules\Platform\Providers\PlatformServiceProvider;
use Modules\Replenishment\Providers\ReplenishmentServiceProvider;
use Modules\Reporting\Providers\ReportingServiceProvider;
use Modules\Security\Providers\SecurityServiceProvider;
use Modules\SentinelIntegration\Providers\SentinelIntegrationServiceProvider;
use Modules\Shipping\Providers\ShippingServiceProvider;
use Modules\Transportation\Providers\TransportationServiceProvider;
use Modules\Warehouse\Providers\WarehouseServiceProvider;
$statusesPath = dirname(__DIR__).'/modules_statuses.json';
$statuses = is_file($statusesPath)
? json_decode((string) file_get_contents($statusesPath), true, 512, JSON_THROW_ON_ERROR)
: [];
$coreProviders = [
AppServiceProvider::class,
FortifyServiceProvider::class,
];
$moduleProviders = [
'Analytics' => AnalyticsServiceProvider::class,
'Audit' => AuditServiceProvider::class,
'CarrierManagement' => CarrierManagementServiceProvider::class,
'Configuration' => ConfigurationServiceProvider::class,
'DocumentArchive' => DocumentArchiveServiceProvider::class,
'InternalApi' => InternalApiServiceProvider::class,
'InventoryManagement' => InventoryManagementServiceProvider::class,
'M3Integration' => M3IntegrationServiceProvider::class,
'Platform' => PlatformServiceProvider::class,
'Replenishment' => ReplenishmentServiceProvider::class,
'Reporting' => ReportingServiceProvider::class,
'Security' => SecurityServiceProvider::class,
'SentinelIntegration' => SentinelIntegrationServiceProvider::class,
'Shipping' => ShippingServiceProvider::class,
'Transportation' => TransportationServiceProvider::class,
'Warehouse' => WarehouseServiceProvider::class,
];
$enabledModuleProviders = [];
foreach ($moduleProviders as $module => $provider) {
if (($statuses[$module] ?? false) === true) {
$enabledModuleProviders[] = $provider;
}
}
return array_merge($coreProviders, $enabledModuleProviders);