unite-cms/unite-cms

View on GitHub
src/Bundle/CoreBundle/Field/FieldTypeInterface.php

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
<?php

namespace UniteCMS\CoreBundle\Field;

use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
use Symfony\Component\Validator\Validator\ContextualValidatorInterface;
use UniteCMS\CoreBundle\Content\FieldData;
use UniteCMS\CoreBundle\Content\ContentInterface;
use UniteCMS\CoreBundle\ContentType\ContentType;
use UniteCMS\CoreBundle\ContentType\ContentTypeField;
use UniteCMS\CoreBundle\Query\BaseFieldComparison;
use UniteCMS\CoreBundle\Query\BaseFieldOrderBy;

interface FieldTypeInterface
{
    static function getType(): string;

    public function GraphQLInputType(ContentTypeField $field) : ?string;

    public function validateFieldDefinition(ContentType $contentType, ContentTypeField $field, ExecutionContextInterface $context) : void;

    public function getPublicSettings(ContentTypeField $field) : ?ArrayCollection;

    public function resolveField(ContentInterface $content, ContentTypeField $field, FieldData $fieldData, array $args = []);

    public function normalizeInputData(ContentInterface $content, ContentTypeField $field, $inputData = null, int $rowDelta = null, array $rawInputData = []) : FieldData;

    public function validateFieldData(ContentInterface $content, ContentTypeField $field, ContextualValidatorInterface $validator, ExecutionContextInterface $context, FieldData $fieldData = null) : void;

    public function queryOrderBy(ContentTypeField $field, array $sortInput) : ?BaseFieldOrderBy;

    public function queryComparison(ContentTypeField $field, array $whereInput) : ?BaseFieldComparison;
}