feat: CI/CD pipeline setup complete - Ansible playbooks updated, secrets configured, workflow ready

This commit is contained in:
2025-10-31 01:39:24 +01:00
parent 55c04e4fd0
commit e26eb2aa12
601 changed files with 44184 additions and 32477 deletions

View File

@@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
namespace App\Domain\SmartLink\DI;
use App\Domain\SmartLink\Repositories\ClickEventRepository;
use App\Domain\SmartLink\Repositories\SmartLinkRepository;
use App\Domain\SmartLink\Services\ClickStatisticsService;
use App\Domain\SmartLink\Services\ClickTrackingService;
use App\Domain\SmartLink\Services\SmartLinkService;
use App\Framework\Database\ConnectionInterface;
use App\Framework\DI\Container;
use App\Framework\DI\Initializer;
use App\Infrastructure\SmartLink\Repositories\DatabaseClickEventRepository;
/**
* SmartLink Domain Service Registration
*
* Registers all SmartLink domain services in the DI container.
*/
final readonly class SmartLinkServiceInitializer
{
#[Initializer]
public function __invoke(Container $container): void
{
// Repository Bindings
$container->singleton(
ClickEventRepository::class,
fn(Container $c) => new DatabaseClickEventRepository(
$c->get(ConnectionInterface::class)
)
);
// SmartLink Management Service
$container->singleton(
SmartLinkService::class,
fn(Container $c) => new SmartLinkService(
$c->get(SmartLinkRepository::class)
)
);
// Click Tracking Service
$container->singleton(
ClickTrackingService::class,
fn(Container $c) => new ClickTrackingService(
$c->get(ClickEventRepository::class),
$c->get(SmartLinkRepository::class)
)
);
// Click Statistics Service (NEW - for Analytics Dashboard)
$container->singleton(
ClickStatisticsService::class,
fn(Container $c) => new ClickStatisticsService(
$c->get(ClickEventRepository::class)
)
);
}
}