<?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 CustomReportDescription
 * A custom reports container */
final class CustomReportDescriptionType implements AutoGenerationInterface, ReportDescriptionInterface
{
    /**
     * Gets a list of actions for this report
     * @var null|iterable
     */
    public ?iterable $actions = null;
    /**
     * Gets a list of buttons for this report
     * @var null|iterable
     */
    public ?iterable $buttons = null;
    /**
     * The chart descriptions of supported charts
     * @var null|iterable
     */
    public ?iterable $chartDescriptions = null;
    /**
     * Returns the fields and their associated actions
     * @var null|iterable
     */
    public ?iterable $fieldActions = null;
    /**
     * The list of filters
     * @var null|iterable
     */
    public ?iterable $filters = null;
    /**
     * Returns the default action that gets executed when you doubleclick on a row in the table
     */
    public ?ReportActionInterfaceInterface $reportDefaultAction = null;
    /**
     * Gets the report identifier
     */
    public ?BuiltInReportEnum $reportId = null;
    /**
     * The supported filter fields. Supported filter fields are configured per report description.
     * @var null|iterable
     */
    public ?iterable $supportedFilterFields = null;
    /**
     * Gets the title for the report
     */
    public ?string $title = null;
    /**
     * A flag whether the report supports history data
     */
    public ?bool $hasHistory = null;
    /**
     * A flag whether the report is group aware or not.
     */
    public ?bool $isGroupAware = null;
    /**
     * A flag whether the report is splittable
     */
    public ?bool $isSplittable = null;
    /**
     * A flag whether the report supports the starterGets the list of all columns
     */
    public ?bool $supportsStarterEdition = null;
    /**
     * The custom report active fields, if any
     * @var null|iterable
     */
    public ?iterable $activeFields = null;
    /**
     * The custom report can delete flag, which defines whether this user can delete the report (true), or not (false)
     */
    public bool $canDelete;
    /**
     * The custom report children reports, if any
     * @var null|iterable
     */
    public ?iterable $children = null;
    /**
     * The custom report column cache
     * @var null|iterable
     */
    public ?iterable $columnCache = null;
    /**
     * The custom report description
     */
    public ?string $description = null;
    /**
     * The custom report field order
     * @var null|iterable
     */
    public ?iterable $fieldOrder = null;
    /**
     * The custom report id
     */
    public $id = null;
    /**
     * The custom report name
     */
    public ?string $name = null;
    /**
     * The custom report owner
     */
    public ?ReportOwnerEnum $owner = null;
    /**
     * The custom report parent report, if any
     */
    public ?CustomReportDescriptionType $parent = null;
    /**
     * The custom report sql query, if any
     */
    public ?string $sqlQuery = null;
    /**
     * The custom report owner
     */
    public ?CustomReportTypeEnum $type = null;
    /**
     * The custom report columns
     * @var null|iterable
     */
    public ?iterable $columns = null;
    /**
     * The default sort order
     */
    public ?SortOrderEnum $defaultSortOrder = null;
    /**
     * Gets the label for the plural for the items in the table
     */
    public ?string $plural = null;
    /**
     * Gets the label for the singular for the items in the table
     */
    public ?string $singular = null;
    /**
     * The custom report custom attributes
     */
    public bool $hasCustomAttributes;
    /**
     * When true, report is sql custom report
     */
    public bool $isSqlCustomReport;
    /**
     * The custom report xml description, if any
     */
    public ?string $toXml = null;
}