<?php

declare(strict_types=1);

namespace App\Service\Liform\Extension;

use Limenius\Liform\Transformer\ExtensionInterface;
use Symfony\Component\Form\FormInterface;

final class RemoveLargeEnumsExtension implements ExtensionInterface
{
    /**
     * @param FormInterface $form
     * @param array         $schema
     *
     * @return array
     */
    public function apply(FormInterface $form, array $schema)
    {
        if ($form->has('domain')) {
            unset($schema['properties']['domain']['enum']);
            unset($schema['properties']['domain']['enum_titles']);
        }

        if ($form->has('client')) {
            unset($schema['properties']['client']['enum']);
            unset($schema['properties']['client']['enum_titles']);
        }

        if ($form->has('content')) {
            unset($schema['properties']['content']['enum']);
            unset($schema['properties']['content']['enum_titles']);
        }

        if ($form->has('user')) {
            unset($schema['properties']['user']['enum']);
            unset($schema['properties']['user']['enum_titles']);
        }

        if ($form->has('campaign')) {
            unset($schema['properties']['campaign']['enum']);
            unset($schema['properties']['campaign']['enum_titles']);
        }

        if ($form->has('prospect')) {
            unset($schema['properties']['prospect']['enum']);
            unset($schema['properties']['prospect']['enum_titles']);
        }

        if ($form->has('negotiation')) {
            unset($schema['properties']['negotiation']['enum']);
            unset($schema['properties']['negotiation']['enum_titles']);
        }

        if ($form->has('assignedTo')) {
            unset($schema['properties']['assignedTo']['enum']);
            unset($schema['properties']['assignedTo']['enum_titles']);
        }

        if ($form->has('file')) {
            unset($schema['properties']['file']['enum']);
            unset($schema['properties']['file']['enum_titles']);
        }

        if ($form->has('task')) {
            unset($schema['properties']['task']['enum']);
            unset($schema['properties']['task']['enum_titles']);
        }

        return $schema;
    }
}
