- 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>
27 lines
878 B
PHP
27 lines
878 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace ROITheme\Public\AdsensePlacement\Domain\Contracts;
|
|
|
|
use ROITheme\Public\AdsensePlacement\Domain\ValueObjects\UserContext;
|
|
use ROITheme\Public\AdsensePlacement\Domain\ValueObjects\VisibilityDecision;
|
|
|
|
/**
|
|
* Interface para el servicio que evalua visibilidad de anuncios.
|
|
*
|
|
* Domain Layer - Define el contrato sin dependencias de infraestructura.
|
|
*
|
|
* @package ROITheme\Public\AdsensePlacement\Domain\Contracts
|
|
*/
|
|
interface AdsenseVisibilityCheckerInterface
|
|
{
|
|
/**
|
|
* Evalua si los anuncios deben mostrarse para el contexto dado.
|
|
*
|
|
* @param int $postId ID del post (0 para paginas de archivo/home)
|
|
* @param UserContext $userContext Contexto del usuario
|
|
* @return VisibilityDecision Decision con razones y cache
|
|
*/
|
|
public function check(int $postId, UserContext $userContext): VisibilityDecision;
|
|
}
|