<?php

namespace Oveleon\ContaoMemberExtensionBundle\EventListener\DataContainer;

use Contao\CoreBundle\DependencyInjection\Attribute\AsCallback;
use Contao\CoreBundle\Security\ContaoCorePermissions;
use Contao\DataContainer;
use Contao\Input;
use Contao\Message;
use Contao\ModuleModel;
use Contao\System;

class ModuleFieldsListener
{
    #[AsCallback(table: 'tl_module', target: 'config.onload')]
    public function showJsLibraryHint(DataContainer $dc): void
    {
        if ($_POST || Input::get('act') != 'edit')
        {
            return;
        }

        $security = System::getContainer()->get('security.helper');

        if (
            !$security->isGranted(ContaoCorePermissions::USER_CAN_ACCESS_MODULE, 'themes') ||
            !$security->isGranted(ContaoCorePermissions::USER_CAN_ACCESS_LAYOUTS)
        ) {
            return;
        }

        $objModule = ModuleModel::findByPk($dc->id);

        if (null !== $objModule && 'memberList' === $objModule->type && str_starts_with($objModule->customTpl, 'mod_memberList_table'))
        {
            Message::addInfo(sprintf(($GLOBALS['TL_LANG']['tl_module']['includeMemberListTable'] ?? null), 'memberExtension_list_row', 'j_datatables'));
        }
    }
}