<?php //resource_metadata_4007af084bd47c550b2b3525fd5b3c49

return [PHP_INT_MAX, static function () { return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
    $o = [
        clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['ApiPlatform\\Core\\Metadata\\Resource\\ResourceMetadata'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('ApiPlatform\\Core\\Metadata\\Resource\\ResourceMetadata')),
    ],
    null,
    [
        'ApiPlatform\\Core\\Metadata\\Resource\\ResourceMetadata' => [
            'shortName' => [
                'Promotion',
            ],
            'description' => [
                '',
            ],
            'itemOperations' => [
                [
                    'GET' => [
                        'method' => 'GET',
                        'stateless' => null,
                        'input_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                        'output_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                    ],
                    'upload_image' => [
                        'path' => '/promotions/{id}/attach-image',
                        'security' => 'is_granted("ROLE_EXACT_SHOP_MANAGER")',
                        'method' => 'POST',
                        'controller' => 'App\\Controller\\Api\\ImageUploader\\ImageUploaderController',
                        'input_formats' => [
                            'multipart' => [
                                'multipart/form-data',
                            ],
                        ],
                        'denormalization_context' => [
                            'groups' => [
                                'promotion:attach:image',
                            ],
                        ],
                        'openapi_context' => [
                            'summary' => 'Change image',
                            'requestBody' => [
                                'content' => [
                                    'multipart/form-data' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'imageFile' => [
                                                    'type' => 'string',
                                                    'format' => 'binary',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'input' => null,
                        'output' => null,
                        'stateless' => null,
                        'output_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                    ],
                ],
            ],
            'collectionOperations' => [
                [
                    'check' => [
                        'method' => 'POST',
                        'path' => '/promotions/check',
                        'input' => [
                            'class' => 'App\\Message\\Promotion\\CheckPromotion',
                            'name' => 'CheckPromotion',
                        ],
                        'messenger' => true,
                        'denormalization_context' => [
                            'groups' => [
                                'promotion:check',
                            ],
                        ],
                        'status' => 200,
                        'security' => 'is_granted("ROLE_EXACT_API") or is_granted("ROLE_EXACT_CLIENT")',
                        'openapi_context' => [
                            'summary' => 'Check if promotion is valid',
                            'requestBody' => [
                                'required' => true,
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'code' => [
                                                    'type' => 'string',
                                                    'description' => 'Promotion code',
                                                ],
                                                'mode' => [
                                                    'type' => 'string',
                                                    'description' => 'Working mode. Must be one of: \'delivery\', \'take-out\', or \'on-site\'',
                                                    'enum' => [
                                                        'delivery',
                                                        'take-out',
                                                        'on-site',
                                                    ],
                                                ],
                                                'customerId' => [
                                                    'type' => 'integer',
                                                    'description' => 'Customer ID (optional)',
                                                ],
                                            ],
                                            'required' => [
                                                'code',
                                                'mode',
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'description' => 'Promotion is eligible and returned',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'id' => [
                                                        'type' => 'integer',
                                                        'example' => 33,
                                                    ],
                                                    'name' => [
                                                        'type' => 'string',
                                                        'example' => 'Black friday',
                                                    ],
                                                    'description' => [
                                                        'type' => 'string',
                                                        'example' => 'Black friday !!! 10€ de réduction sur votre commande, a ne pas ratter!',
                                                    ],
                                                    'start' => [
                                                        'type' => 'string',
                                                        'format' => 'date-time',
                                                        'example' => '2024-10-01T00:00:00+02:00',
                                                    ],
                                                    'end' => [
                                                        'type' => 'string',
                                                        'format' => 'date-time',
                                                        'example' => '2025-12-26T00:00:00+01:00',
                                                    ],
                                                    'type' => [
                                                        'type' => 'string',
                                                        'example' => 'value',
                                                    ],
                                                    'value' => [
                                                        'type' => 'integer',
                                                        'example' => 1020,
                                                    ],
                                                    'firstOrderOnly' => [
                                                        'type' => 'boolean',
                                                        'example' => false,
                                                    ],
                                                    'oneTimeOnly' => [
                                                        'type' => 'boolean',
                                                        'example' => false,
                                                    ],
                                                    'minimumAmount' => [
                                                        'type' => 'integer',
                                                        'example' => 100,
                                                    ],
                                                    'enabled' => [
                                                        'type' => 'boolean',
                                                        'example' => true,
                                                    ],
                                                    'visible' => [
                                                        'type' => 'boolean',
                                                        'example' => false,
                                                    ],
                                                    'code' => [
                                                        'type' => 'string',
                                                        'example' => 'black-friday',
                                                    ],
                                                    'imageUrl' => [
                                                        'type' => 'string',
                                                        'example' => 'uploads/images/promotions/Nouveau projet.png',
                                                    ],
                                                ],
                                                'required' => [
                                                    'id',
                                                    'name',
                                                    'description',
                                                    'start',
                                                    'end',
                                                    'type',
                                                    'value',
                                                    'firstOrderOnly',
                                                    'oneTimeOnly',
                                                    'minimumAmount',
                                                    'enabled',
                                                    'visible',
                                                    'code',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Invalid input',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'detail' => [
                                                        'type' => 'string',
                                                        'enum' => [
                                                            'Invalid input',
                                                        ],
                                                        'example' => 'Invalid input',
                                                    ],
                                                    'violations' => [
                                                        'type' => 'array',
                                                        'items' => [
                                                            'type' => 'object',
                                                            'properties' => [
                                                                'property' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'message' => [
                                                                    'type' => 'string',
                                                                ],
                                                            ],
                                                            'required' => [
                                                                'property',
                                                                'message',
                                                            ],
                                                        ],
                                                        'description' => 'List of validation violations',
                                                    ],
                                                ],
                                                'required' => [
                                                    'detail',
                                                    'violations',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'output' => null,
                        'stateless' => null,
                        'input_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                        'output_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                    ],
                ],
            ],
            'graphql' => [
                [
                    'item_query' => [],
                    'collection_query' => [],
                    'delete' => [],
                    'update' => [],
                    'create' => [],
                ],
            ],
            'attributes' => [
                [
                    'security' => 'is_granted("ROLE_EXACT_API")',
                    'cache_headers' => null,
                    'denormalization_context' => null,
                    'deprecation_reason' => null,
                    'elasticsearch' => null,
                    'fetch_partial' => null,
                    'force_eager' => null,
                    'formats' => null,
                    'filters' => [
                        'annotated_app_entity_shop_promotion_api_platform_core_bridge_doctrine_orm_filter_boolean_filter',
                    ],
                    'hydra_context' => null,
                    'input' => null,
                    'mercure' => null,
                    'messenger' => null,
                    'normalization_context' => [
                        'groups' => [
                            'get:promotion',
                        ],
                    ],
                    'openapi_context' => null,
                    'order' => null,
                    'output' => null,
                    'pagination_client_enabled' => null,
                    'pagination_client_items_per_page' => null,
                    'pagination_client_partial' => null,
                    'pagination_via_cursor' => null,
                    'pagination_enabled' => null,
                    'pagination_fetch_join_collection' => null,
                    'pagination_items_per_page' => 10,
                    'pagination_maximum_items_per_page' => 30,
                    'pagination_partial' => null,
                    'route_prefix' => 'v2',
                    'security_message' => null,
                    'security_post_denormalize' => null,
                    'security_post_denormalize_message' => null,
                    'security_post_validation' => null,
                    'security_post_validation_message' => null,
                    'stateless' => null,
                    'sunset' => null,
                    'swagger_context' => null,
                    'validation_groups' => null,
                    'url_generation_strategy' => null,
                    'composite_identifier' => null,
                    'exception_to_status' => null,
                    'query_parameter_validation_enabled' => null,
                ],
            ],
        ],
    ],
    $o[0],
    []
); }];
