feat(api): implement javascript-first architecture for cache compatibility
- Add REST endpoint GET /roi-theme/v1/adsense-placement/visibility - Add Domain layer: UserContext, VisibilityDecision, AdsenseSettings VOs - Add Application layer: CheckAdsenseVisibilityUseCase - Add Infrastructure: AdsenseVisibilityChecker, Controller, Enqueuer - Add JavaScript controller with localStorage caching - Add test plan for production validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace ROITheme\Public\AdsensePlacement\Application\UseCases;
|
||||
|
||||
use ROITheme\Public\AdsensePlacement\Domain\Contracts\AdsenseVisibilityCheckerInterface;
|
||||
use ROITheme\Public\AdsensePlacement\Domain\ValueObjects\UserContext;
|
||||
use ROITheme\Public\AdsensePlacement\Domain\ValueObjects\VisibilityDecision;
|
||||
|
||||
/**
|
||||
* Use Case para verificar visibilidad de anuncios AdSense.
|
||||
*
|
||||
* Application Layer - Orquesta el checker de domain.
|
||||
* No contiene logica de negocio, solo coordina.
|
||||
*
|
||||
* @package ROITheme\Public\AdsensePlacement\Application\UseCases
|
||||
*/
|
||||
final class CheckAdsenseVisibilityUseCase
|
||||
{
|
||||
public function __construct(
|
||||
private AdsenseVisibilityCheckerInterface $visibilityChecker
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Ejecuta la verificacion de visibilidad.
|
||||
*
|
||||
* @param int $postId ID del post (0 para paginas de archivo/home)
|
||||
* @param UserContext $userContext Contexto del usuario
|
||||
* @return VisibilityDecision Decision de visibilidad
|
||||
*/
|
||||
public function execute(int $postId, UserContext $userContext): VisibilityDecision
|
||||
{
|
||||
return $this->visibilityChecker->check($postId, $userContext);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user