Your IP : 127.0.0.1


Current Path : /home/dev2.destoffenstraat.com/app/code/Amasty/ExportCore/Api/Config/Relation/
Upload File :
Current File : /home/dev2.destoffenstraat.com/app/code/Amasty/ExportCore/Api/Config/Relation/RelationInterface.php

<?php
/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package Export Core for Magento 2 (System)
 */

namespace Amasty\ExportCore\Api\Config\Relation;

interface RelationInterface
{
    // Built-in relation types
    public const TYPE_ONE_TO_MANY = 'one_to_many';
    public const TYPE_MANY_TO_MANY = 'many_to_many';

    /**
     * Entity Code of sub-entity
     * @return string
     */
    public function getChildEntityCode(): string;

    /**
     * Parent field name where all sub-entity data goes
     * @return string
     */
    public function getSubEntityFieldName(): string;

    /**
     * Implementation specific arguments
     * @return array
     */
    public function getArguments(): array;

    /**
     * One of built-in types or class name for custom relation implementation.
     * Custom class must implement \Amasty\ExportCore\Api\Config\Entity\SubEntityCollectorInterface
     * @return string
     */
    public function getType(): string;

    /**
     * @return \Amasty\ExportCore\Api\Config\Relation\RelationInterface[]
     */
    public function getRelations(): ?array;

    /**
     * @param \Amasty\ExportCore\Api\Config\Relation\RelationInterface[]|null $relations
     *
     * @return \Amasty\ExportCore\Api\Config\Relation\RelationInterface
     */
    public function setRelations(?array $relations): RelationInterface;
}