<?php //Akeneo__Pim__Structure__Component__Model__Attribute__CLASSMETADATA__

return [PHP_INT_MAX, static function () { return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
    $o = [
        clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['Doctrine\\ORM\\Mapping\\ClassMetadata'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Doctrine\\ORM\\Mapping\\ClassMetadata')),
        clone ($p['Doctrine\\ORM\\Id\\IdentityGenerator'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Doctrine\\ORM\\Id\\IdentityGenerator')),
    ],
    null,
    [
        'stdClass' => [
            'name' => [
                'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
            ],
            'namespace' => [
                'Akeneo\\Pim\\Structure\\Component\\Model',
            ],
            'rootEntityName' => [
                'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
            ],
            'customRepositoryClassName' => [
                'Akeneo\\Pim\\Structure\\Bundle\\Doctrine\\ORM\\Repository\\AttributeRepository',
            ],
            'identifier' => [
                [
                    'id',
                ],
            ],
            'generatorType' => [
                4,
            ],
            'fieldMappings' => [
                [
                    'id' => [
                        'fieldName' => 'id',
                        'type' => 'integer',
                        'id' => true,
                        'columnName' => 'id',
                    ],
                    'sortOrder' => [
                        'fieldName' => 'sortOrder',
                        'type' => 'integer',
                        'columnName' => 'sort_order',
                    ],
                    'useableAsGridFilter' => [
                        'fieldName' => 'useableAsGridFilter',
                        'type' => 'boolean',
                        'columnName' => 'useable_as_grid_filter',
                        'options' => [
                            'default' => false,
                        ],
                    ],
                    'maxCharacters' => [
                        'fieldName' => 'maxCharacters',
                        'type' => 'integer',
                        'columnName' => 'max_characters',
                        'nullable' => true,
                    ],
                    'validationRule' => [
                        'fieldName' => 'validationRule',
                        'type' => 'string',
                        'columnName' => 'validation_rule',
                        'length' => 10,
                        'nullable' => true,
                    ],
                    'validationRegexp' => [
                        'fieldName' => 'validationRegexp',
                        'type' => 'string',
                        'columnName' => 'validation_regexp',
                        'length' => 500,
                        'nullable' => true,
                    ],
                    'wysiwygEnabled' => [
                        'fieldName' => 'wysiwygEnabled',
                        'type' => 'boolean',
                        'columnName' => 'wysiwyg_enabled',
                        'nullable' => true,
                    ],
                    'numberMin' => [
                        'fieldName' => 'numberMin',
                        'type' => 'decimal',
                        'columnName' => 'number_min',
                        'precision' => 14,
                        'scale' => 4,
                        'nullable' => true,
                    ],
                    'numberMax' => [
                        'fieldName' => 'numberMax',
                        'type' => 'decimal',
                        'columnName' => 'number_max',
                        'precision' => 14,
                        'scale' => 4,
                        'nullable' => true,
                    ],
                    'decimalsAllowed' => [
                        'fieldName' => 'decimalsAllowed',
                        'type' => 'boolean',
                        'columnName' => 'decimals_allowed',
                        'nullable' => true,
                    ],
                    'negativeAllowed' => [
                        'fieldName' => 'negativeAllowed',
                        'type' => 'boolean',
                        'columnName' => 'negative_allowed',
                        'nullable' => true,
                    ],
                    'dateMin' => [
                        'fieldName' => 'dateMin',
                        'type' => 'datetime',
                        'columnName' => 'date_min',
                        'nullable' => true,
                    ],
                    'dateMax' => [
                        'fieldName' => 'dateMax',
                        'type' => 'datetime',
                        'columnName' => 'date_max',
                        'nullable' => true,
                    ],
                    'metricFamily' => [
                        'fieldName' => 'metricFamily',
                        'type' => 'string',
                        'columnName' => 'metric_family',
                        'length' => 100,
                        'nullable' => true,
                    ],
                    'defaultMetricUnit' => [
                        'fieldName' => 'defaultMetricUnit',
                        'type' => 'string',
                        'columnName' => 'default_metric_unit',
                        'length' => 100,
                        'nullable' => true,
                    ],
                    'maxFileSize' => [
                        'fieldName' => 'maxFileSize',
                        'type' => 'decimal',
                        'columnName' => 'max_file_size',
                        'precision' => 6,
                        'scale' => 2,
                        'nullable' => true,
                    ],
                    'allowedExtensions' => [
                        'fieldName' => 'allowedExtensions',
                        'type' => 'string',
                        'columnName' => 'allowed_extensions',
                        'length' => 255,
                        'nullable' => true,
                    ],
                    'minimumInputLength' => [
                        'fieldName' => 'minimumInputLength',
                        'type' => 'smallint',
                        'nullable' => true,
                        'columnName' => 'minimumInputLength',
                    ],
                    'required' => [
                        'fieldName' => 'required',
                        'type' => 'boolean',
                        'columnName' => 'is_required',
                    ],
                    'unique' => [
                        'fieldName' => 'unique',
                        'type' => 'boolean',
                        'columnName' => 'is_unique',
                    ],
                    'localizable' => [
                        'fieldName' => 'localizable',
                        'type' => 'boolean',
                        'columnName' => 'is_localizable',
                    ],
                    'scopable' => [
                        'fieldName' => 'scopable',
                        'type' => 'boolean',
                        'columnName' => 'is_scopable',
                    ],
                    'code' => [
                        'fieldName' => 'code',
                        'type' => 'string',
                        'length' => 100,
                        'columnName' => 'code',
                    ],
                    'entityType' => [
                        'fieldName' => 'entityType',
                        'type' => 'string',
                        'columnName' => 'entity_type',
                        'length' => 255,
                    ],
                    'type' => [
                        'fieldName' => 'type',
                        'type' => 'string',
                        'columnName' => 'attribute_type',
                        'length' => 255,
                    ],
                    'backendType' => [
                        'fieldName' => 'backendType',
                        'type' => 'string',
                        'columnName' => 'backend_type',
                        'length' => 255,
                        'scale' => 0,
                    ],
                    'properties' => [
                        'fieldName' => 'properties',
                        'type' => 'array',
                        'nullable' => true,
                        'columnName' => 'properties',
                    ],
                    'created' => [
                        'fieldName' => 'created',
                        'type' => 'datetime',
                        'columnName' => 'created',
                    ],
                    'updated' => [
                        'fieldName' => 'updated',
                        'type' => 'datetime',
                        'columnName' => 'updated',
                    ],
                    'guidelines' => [
                        'fieldName' => 'guidelines',
                        'type' => 'json',
                        'columnDefinition' => 'JSON NOT NULL DEFAULT (JSON_OBJECT())',
                        'columnName' => 'guidelines',
                    ],
                ],
            ],
            'fieldNames' => [
                [
                    'id' => 'id',
                    'sort_order' => 'sortOrder',
                    'useable_as_grid_filter' => 'useableAsGridFilter',
                    'max_characters' => 'maxCharacters',
                    'validation_rule' => 'validationRule',
                    'validation_regexp' => 'validationRegexp',
                    'wysiwyg_enabled' => 'wysiwygEnabled',
                    'number_min' => 'numberMin',
                    'number_max' => 'numberMax',
                    'decimals_allowed' => 'decimalsAllowed',
                    'negative_allowed' => 'negativeAllowed',
                    'date_min' => 'dateMin',
                    'date_max' => 'dateMax',
                    'metric_family' => 'metricFamily',
                    'default_metric_unit' => 'defaultMetricUnit',
                    'max_file_size' => 'maxFileSize',
                    'allowed_extensions' => 'allowedExtensions',
                    'minimumInputLength' => 'minimumInputLength',
                    'is_required' => 'required',
                    'is_unique' => 'unique',
                    'is_localizable' => 'localizable',
                    'is_scopable' => 'scopable',
                    'code' => 'code',
                    'entity_type' => 'entityType',
                    'attribute_type' => 'type',
                    'backend_type' => 'backendType',
                    'properties' => 'properties',
                    'created' => 'created',
                    'updated' => 'updated',
                    'guidelines' => 'guidelines',
                ],
            ],
            'columnNames' => [
                [
                    'id' => 'id',
                    'sortOrder' => 'sort_order',
                    'useableAsGridFilter' => 'useable_as_grid_filter',
                    'maxCharacters' => 'max_characters',
                    'validationRule' => 'validation_rule',
                    'validationRegexp' => 'validation_regexp',
                    'wysiwygEnabled' => 'wysiwyg_enabled',
                    'numberMin' => 'number_min',
                    'numberMax' => 'number_max',
                    'decimalsAllowed' => 'decimals_allowed',
                    'negativeAllowed' => 'negative_allowed',
                    'dateMin' => 'date_min',
                    'dateMax' => 'date_max',
                    'metricFamily' => 'metric_family',
                    'defaultMetricUnit' => 'default_metric_unit',
                    'maxFileSize' => 'max_file_size',
                    'allowedExtensions' => 'allowed_extensions',
                    'minimumInputLength' => 'minimumInputLength',
                    'required' => 'is_required',
                    'unique' => 'is_unique',
                    'localizable' => 'is_localizable',
                    'scopable' => 'is_scopable',
                    'code' => 'code',
                    'entityType' => 'entity_type',
                    'type' => 'attribute_type',
                    'backendType' => 'backend_type',
                    'properties' => 'properties',
                    'created' => 'created',
                    'updated' => 'updated',
                    'guidelines' => 'guidelines',
                ],
            ],
            'table' => [
                [
                    'name' => 'pim_catalog_attribute',
                    'indexes' => [
                        'searchcode_idx' => [
                            'columns' => [
                                'code',
                            ],
                        ],
                    ],
                    'uniqueConstraints' => [
                        'searchunique_idx' => [
                            'columns' => [
                                'code',
                                'entity_type',
                            ],
                        ],
                    ],
                ],
            ],
            'associationMappings' => [
                [
                    'options' => [
                        'fieldName' => 'options',
                        'targetEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\AttributeOption',
                        'mappedBy' => 'attribute',
                        'cascade' => [
                            'persist',
                            'detach',
                        ],
                        'orderBy' => [
                            'sortOrder' => 'ASC',
                            'code' => 'ASC',
                        ],
                        'type' => 4,
                        'inversedBy' => null,
                        'isOwningSide' => false,
                        'sourceEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
                        'fetch' => 2,
                        'isCascadeRemove' => false,
                        'isCascadePersist' => true,
                        'isCascadeRefresh' => false,
                        'isCascadeMerge' => false,
                        'isCascadeDetach' => true,
                        'orphanRemoval' => false,
                    ],
                    'translations' => [
                        'fieldName' => 'translations',
                        'targetEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\AttributeTranslation',
                        'mappedBy' => 'foreignKey',
                        'cascade' => [
                            'persist',
                            'detach',
                        ],
                        'orphanRemoval' => true,
                        'type' => 4,
                        'inversedBy' => null,
                        'isOwningSide' => false,
                        'sourceEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
                        'fetch' => 2,
                        'isCascadeRemove' => true,
                        'isCascadePersist' => true,
                        'isCascadeRefresh' => false,
                        'isCascadeMerge' => false,
                        'isCascadeDetach' => true,
                    ],
                    'group' => [
                        'fieldName' => 'group',
                        'targetEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\AttributeGroup',
                        'inversedBy' => 'attributes',
                        'joinColumns' => [
                            [
                                'referencedColumnName' => 'id',
                                'name' => 'group_id',
                                'onDelete' => 'SET NULL',
                            ],
                        ],
                        'type' => 2,
                        'mappedBy' => null,
                        'isOwningSide' => true,
                        'sourceEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
                        'fetch' => 2,
                        'cascade' => [],
                        'isCascadeRemove' => false,
                        'isCascadePersist' => false,
                        'isCascadeRefresh' => false,
                        'isCascadeMerge' => false,
                        'isCascadeDetach' => false,
                        'sourceToTargetKeyColumns' => [
                            'group_id' => 'id',
                        ],
                        'joinColumnFieldNames' => [
                            'group_id' => 'group_id',
                        ],
                        'targetToSourceKeyColumns' => [
                            'id' => 'group_id',
                        ],
                        'orphanRemoval' => false,
                    ],
                    'availableLocales' => [
                        'fieldName' => 'availableLocales',
                        'targetEntity' => 'Akeneo\\Channel\\Infrastructure\\Component\\Model\\Locale',
                        'joinTable' => [
                            'name' => 'pim_catalog_attribute_locale',
                            'joinColumns' => [
                                [
                                    'referencedColumnName' => 'id',
                                    'name' => 'attribute_id',
                                    'onDelete' => 'CASCADE',
                                ],
                            ],
                            'inverseJoinColumns' => [
                                [
                                    'referencedColumnName' => 'id',
                                    'name' => 'locale_id',
                                    'onDelete' => 'CASCADE',
                                ],
                            ],
                        ],
                        'type' => 8,
                        'mappedBy' => null,
                        'inversedBy' => null,
                        'isOwningSide' => true,
                        'sourceEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
                        'fetch' => 2,
                        'cascade' => [],
                        'isCascadeRemove' => false,
                        'isCascadePersist' => false,
                        'isCascadeRefresh' => false,
                        'isCascadeMerge' => false,
                        'isCascadeDetach' => false,
                        'joinTableColumns' => [
                            'attribute_id',
                            'locale_id',
                        ],
                        'isOnDeleteCascade' => true,
                        'relationToSourceKeyColumns' => [
                            'attribute_id' => 'id',
                        ],
                        'relationToTargetKeyColumns' => [
                            'locale_id' => 'id',
                        ],
                        'orphanRemoval' => false,
                    ],
                    'families' => [
                        'fieldName' => 'families',
                        'targetEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Family',
                        'mappedBy' => 'attributes',
                        'type' => 8,
                        'inversedBy' => null,
                        'isOwningSide' => false,
                        'sourceEntity' => 'Akeneo\\Pim\\Structure\\Component\\Model\\Attribute',
                        'fetch' => 2,
                        'cascade' => [],
                        'isCascadeRemove' => false,
                        'isCascadePersist' => false,
                        'isCascadeRefresh' => false,
                        'isCascadeMerge' => false,
                        'isCascadeDetach' => false,
                        'orphanRemoval' => false,
                    ],
                ],
            ],
            'idGenerator' => [
                $o[1],
            ],
            'changeTrackingPolicy' => [
                2,
            ],
        ],
    ],
    $o[0],
    []
); }];
