<?php

namespace SilverStripe\ORM\Tests\DataExtensionTest;

use SilverStripe\Dev\TestOnly;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\ORM\Tests\DataExtensionTest\CMSFieldsBase;

/**
 * Second level test class.
 * Tests usage of beforeExtendingCMSFields
 */
class CMSFieldsChild extends CMSFieldsBase implements TestOnly
{
    private static $table_name = 'DataExtensionTest_CMSFieldsChild';

    private static $db = array(
        'ChildField' => 'Varchar(255)',
        'ChildFieldBeforeExtension' => 'Varchar(255)'
    );

    public function getCMSFields()
    {
        $this->beforeExtending(
            'updateCMSFields',
            function (FieldList $fields) {
                $fields->addFieldToTab('Root.Test', new TextField('ChildFieldBeforeExtension'));
            }
        );

        $this->afterExtending(
            'updateCMSFields',
            function (FieldList $fields) {
                $fields->removeByName('ExtendedFieldRemove', true);
            }
        );

        $fields = parent::getCMSFields();
        $fields->addFieldToTab('Root.Test', new TextField('ChildField'));
        return $fields;
    }
}