<?php

declare(strict_types=1);

namespace SkillDisplay\SkilldisplayContent;

use SkillDisplay\PHPToolKit\Entity\Campaign;
use TYPO3\CMS\Backend\Utility\BackendUtility;

class TcaEnhancer
{
    private CampaignsFactory $campaignsFactory;

    public function __construct(
        CampaignsFactory $campaignsFactory
    ) {
        $this->campaignsFactory = $campaignsFactory;
    }

    public function getCampaignsForTCA(array &$params): void
    {
        $params['items'] = [
            ['', 0],
        ];

        $pid = $this->resolvePid($params['row']);
        if ($pid > 0) {
            $campaigns = $this->campaignsFactory->createFromPageUid($pid)->getForUser();
            /** @var Campaign $campaign */
            foreach ($campaigns as $campaign) {
                $params['items'][] = [
                    $campaign->getTitle(),
                    $campaign->getId(),
                ];
            }
        }
    }

    protected function resolvePid(array $row): ?int
    {
        return BackendUtility::getTSconfig_pidValue('tt_content', $row['uid'], $row['pid']);
    }
}