<?php

declare (strict_types=1);
namespace idoit\Module\JDisc\Graphql\Schema\Model;

use Axtiva\FlexibleGraphql\Resolver\AutoGenerationInterface;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * if you want to extend it or change, then remove interface AutoGenerationInterface
 * and it will be managed by you, not axtiva/flexible-graphql-php code generator
 * PHP representation of graphql type DiagramEntityRelation
 * A diagram entity relation */
final class DiagramEntityRelationType implements AutoGenerationInterface
{
    /**
     * A flag to show if the relation accepts max depth application or not
     */
    public ?bool $acceptsDepth = null;
    /**
     * The template id for which the relation is asked, used for input purposes
     */
    public ?DiagramTemplateIdEnum $askedByTemplateId = null;
    /**
     * The diagram context menu item
     */
    public ?ContextMenuItemType $contextMenuItem = null;
    /**
     * The entity id's to exclude from applying this relation.
     * @var null|iterable
     */
    public ?iterable $excludeParentEntityIds = null;
    /**
     * The relation id
     */
    public ?DiagramRelationIdEnum $id = null;
    /**
     * The relation max hops
     */
    public ?int $maxDepth = null;
    /**
     * The child relations
     * @var null|iterable
     */
    public ?iterable $relations = null;
    /**
     * The required addOns for the relation
     * @var null|iterable|AddOnProductEnum[]
     */
    public ?iterable $requiredAddOns = null;
    /**
     * The entity id for which this relation will apply. If empty, it applies to all entities except the ones defined in excludeParentEntityId
     */
    public $targetParentEntityId = null;
    /**
     * The relation type
     */
    public ?JDiagramRelationTypeEnum $type = null;
}