<?php //resource_metadata_77e76dd24912c8f7ef5aed10b067852b

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' => [
                'Loyalty',
            ],
            'description' => [
                '',
            ],
            'itemOperations' => [
                [
                    'loyalty_configuration' => [
                        'security' => 'is_granted("ROLE_EXACT_SHOP_MANAGER") or is_granted("ROLE_EXACT_API")',
                        'status' => 200,
                        'method' => 'GET',
                        'path' => '/loyalty/{id}/configuration',
                        'normalization_context' => [
                            'groups' => [
                                'loyalty:configuration',
                            ],
                        ],
                        'openapi_context' => [
                            'summary' => 'Get loyalty configuration of shop',
                            'description' => 'Get loyalty configuration of shop',
                            'parameters' => [
                                [
                                    'in' => 'path',
                                    'name' => 'id',
                                    'schema' => [
                                        'type' => 'integer',
                                    ],
                                    'description' => 'Shop\'s id',
                                ],
                            ],
                        ],
                        'input' => null,
                        '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',
                            ],
                        ],
                    ],
                    'loyalty_customer_benefits' => [
                        'method' => 'GET',
                        'path' => '/loyalty/{customerId}/benefits',
                        'defaults' => [
                            '_api_receive' => false,
                        ],
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'controller' => 'App\\Controller\\Api\\Shop\\Loyalty\\LoyaltyBenefitsController',
                        'normalization_context' => [
                            'groups' => [
                                'loyalty:reward',
                            ],
                        ],
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'List benefits for a customer',
                            'parameters' => [
                                [
                                    'in' => 'path',
                                    'name' => 'customerId',
                                    'schema' => [
                                        'type' => 'string',
                                    ],
                                    'required' => true,
                                    'description' => 'Customer\'s id',
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'points' => [
                                                        'type' => 'string',
                                                    ],
                                                    'credits' => [
                                                        'type' => 'string',
                                                    ],
                                                    'rewards' => [
                                                        'type' => 'array',
                                                        'items' => [
                                                            'type' => 'object',
                                                            'properties' => [
                                                                'id' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'type' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'name' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'image' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'description' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'couponCode' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'isUsed' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'useable' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'requirement' => [
                                                                    'type' => 'object',
                                                                    'properties' => [
                                                                        'expirationDate' => [
                                                                            'type' => 'string',
                                                                        ],
                                                                    ],
                                                                ],
                                                                'value' => [
                                                                    'type' => 'integer',
                                                                ],
                                                                'hash' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'receivedAt' => [
                                                                    'type' => 'string',
                                                                ],
                                                                'usedAt' => [
                                                                    'type' => 'string',
                                                                ],
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'input' => null,
                        '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',
                            ],
                        ],
                    ],
                    'loyalty_customer_patch' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'PATCH',
                        'path' => '/loyalty/customers/{customerId}',
                        'input' => [
                            'class' => 'App\\Message\\Loyalty\\PatchLoyaltyCustomer',
                            'name' => 'PatchLoyaltyCustomer',
                        ],
                        'messenger' => true,
                        'read' => false,
                        'groups' => [
                            'loyalty:customer',
                        ],
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'Updates the Optins of a loyalty customer',
                            'parameters' => [
                                [
                                    'name' => 'id',
                                    'in' => 'path',
                                    'required' => true,
                                    'schema' => [
                                        'type' => 'string',
                                        'example' => 'b0dcd4bf-3589-4e76-9f1d-ad5d834ed999',
                                    ],
                                ],
                            ],
                            'requestBody' => [
                                'required' => true,
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'firstName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'lastName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'birthDate' => [
                                                    'type' => 'string',
                                                    'format' => 'date-time',
                                                    'nullable' => true,
                                                ],
                                                'optinEmail' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                                'optinSms' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                            ],
                                        ],
                                        'example' => [
                                            'firstName' => 'Jhon',
                                            'lastName' => 'Doe',
                                            'birthDate' => '2006-04-30T00:00:00Z',
                                            'optinEmail' => false,
                                            'optinSms' => true,
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'content' => [
                                        'application/json' => [
                                            'example' => [
                                                'id' => 'b0dcd4bf-3589-4e76-9f1d-ad5d834ed999',
                                                'firstName' => 'John',
                                                'lastName' => 'Doe',
                                                'email' => 'john.doe@example.com',
                                                'phone' => '+33612345678',
                                                'optinEmail' => false,
                                                'optinSms' => true,
                                                'birthDate' => '2006-04-30T00:00:00Z',
                                            ],
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'id' => [
                                                        'type' => 'string',
                                                        'nullable' => false,
                                                    ],
                                                    'firstName' => [
                                                        'type' => 'string',
                                                        'nullable' => true,
                                                    ],
                                                    'lastName' => [
                                                        'type' => 'string',
                                                        'nullable' => true,
                                                    ],
                                                    'email' => [
                                                        'type' => 'string',
                                                        'format' => 'email',
                                                        'nullable' => true,
                                                    ],
                                                    'phone' => [
                                                        'type' => 'string',
                                                        'nullable' => false,
                                                    ],
                                                    'optinEmail' => [
                                                        'type' => 'boolean',
                                                        'nullable' => true,
                                                    ],
                                                    'optinSms' => [
                                                        'type' => 'boolean',
                                                        'nullable' => true,
                                                    ],
                                                    'birthDate' => [
                                                        'type' => 'string',
                                                        'format' => 'date-time',
                                                        'nullable' => true,
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Invalid data',
                                    'content' => [
                                        'application/json' => [
                                            'example' => [
                                                'detail' => 'Invalid input',
                                                'violations' => [
                                                    [
                                                        'property' => 'loyalty',
                                                        'message' => 'At least one optin must be given.',
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        'output' => null,
                        'stateless' => null,
                        'input_formats' => [
                            'json' => [
                                'application/merge-patch+json',
                            ],
                        ],
                        'output_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                    ],
                    'loyalty_customer_put' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'PUT',
                        'path' => '/loyalty/customers/{customerId}',
                        'input' => [
                            'class' => 'App\\Message\\Loyalty\\UpdateLoyaltyCustomer',
                            'name' => 'UpdateLoyaltyCustomer',
                        ],
                        'messenger' => true,
                        'read' => false,
                        'groups' => [
                            'loyalty:customer',
                        ],
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'Updates a loyalty customer profile',
                            'parameters' => [
                                [
                                    'name' => 'customerId',
                                    'in' => 'path',
                                    'required' => true,
                                    'schema' => [
                                        'type' => 'string',
                                        'example' => 'b0dcd4bf-3589-4e76-9f1d-ad5d834ed999',
                                    ],
                                ],
                            ],
                            'requestBody' => [
                                'required' => true,
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'email' => [
                                                    'type' => 'string',
                                                    'format' => 'email',
                                                    'nullable' => true,
                                                ],
                                                'firstName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'lastName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'birthDate' => [
                                                    'type' => 'string',
                                                    'format' => 'date-time',
                                                    'nullable' => true,
                                                ],
                                                'optinEmail' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                                'optinSms' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                            ],
                                        ],
                                        'example' => [
                                            'firstName' => 'John',
                                            'lastName' => 'Doe',
                                            'email' => 'john.doe@example.com',
                                            'birthDate' => '2006-04-30T00:00:00Z',
                                            'optinEmail' => false,
                                            'optinSms' => true,
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'content' => [
                                        'application/json' => [
                                            'example' => [
                                                'id' => 'b0dcd4bf-3589-4e76-9f1d-ad5d834ed999',
                                                'firstName' => 'John',
                                                'lastName' => 'Doe',
                                                'email' => 'john.doe@example.com',
                                                'phone' => '+33612345678',
                                                'optinEmail' => false,
                                                'optinSms' => true,
                                                'birthDate' => '2006-04-30T00:00:00Z',
                                            ],
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'id' => [
                                                        'type' => 'string',
                                                        'nullable' => false,
                                                    ],
                                                    'firstName' => [
                                                        'type' => 'string',
                                                        'nullable' => true,
                                                    ],
                                                    'lastName' => [
                                                        'type' => 'string',
                                                        'nullable' => true,
                                                    ],
                                                    'email' => [
                                                        'type' => 'string',
                                                        'format' => 'email',
                                                        'nullable' => true,
                                                    ],
                                                    'phone' => [
                                                        'type' => 'string',
                                                        'nullable' => false,
                                                    ],
                                                    'optinEmail' => [
                                                        'type' => 'boolean',
                                                        'nullable' => true,
                                                    ],
                                                    'optinSms' => [
                                                        'type' => 'boolean',
                                                        'nullable' => true,
                                                    ],
                                                    'birthDate' => [
                                                        'type' => 'string',
                                                        'format' => 'date-time',
                                                        'nullable' => true,
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Bad request | Invalid input | Loyalty API is not reachable | Unexpected error occurred',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'detail' => [
                                                        'type' => 'string',
                                                        'example' => 'Invalid input',
                                                    ],
                                                    'violations' => [
                                                        'type' => 'array',
                                                        'items' => [
                                                            'type' => 'object',
                                                            'properties' => [
                                                                'property' => [
                                                                    'type' => 'string',
                                                                    'example' => 'email',
                                                                ],
                                                                'message' => [
                                                                    'type' => 'string',
                                                                    'enum' => [
                                                                        'Invalid format.',
                                                                        'At least one attribute is required.',
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                        'example' => [
                                                            [
                                                                'property' => 'email',
                                                                'message' => 'Invalid format.',
                                                            ],
                                                            [
                                                                'property' => 'loyalty_customer',
                                                                'message' => 'At least one attribute is required.',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                404 => [
                                    'description' => 'Loyalty customer not found',
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                ],
            ],
            'collectionOperations' => [
                [
                    'loyalty_customer_search' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'POST',
                        'path' => '/loyalty/customers/search',
                        'messenger' => true,
                        'status' => 200,
                        'input' => [
                            'class' => 'App\\Message\\Loyalty\\Customer\\SearchLoyaltyCustomer',
                            'name' => 'SearchLoyaltyCustomer',
                        ],
                        'pagination_enabled' => false,
                        'groups' => [
                            'loyalty:customer',
                        ],
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'Search for a loyalty customer by type and value',
                            'requestBody' => [
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'required' => [
                                                'type',
                                                'value',
                                            ],
                                            'properties' => [
                                                'type' => [
                                                    'type' => 'string',
                                                    'enum' => [
                                                        'phone',
                                                        'email',
                                                        'name',
                                                    ],
                                                ],
                                                'value' => [
                                                    'type' => 'string',
                                                ],
                                            ],
                                            'example' => [
                                                'type' => 'phone',
                                                'value' => '+33123456789',
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'customer' => [
                                                        'type' => 'object',
                                                        'properties' => [
                                                            'id' => [
                                                                'type' => 'string',
                                                            ],
                                                            'birthDate' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'email' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'phoneNumber' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'firstName' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'lastName' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'hasOptinSms' => [
                                                                'type' => 'boolean',
                                                                'nullable' => true,
                                                            ],
                                                            'hasOptinEmail' => [
                                                                'type' => 'boolean',
                                                                'nullable' => true,
                                                            ],
                                                            'locked' => [
                                                                'type' => 'object',
                                                                'nullable' => true,
                                                                'properties' => [
                                                                    'deviceInfo' => [
                                                                        'type' => 'object',
                                                                        'nullable' => true,
                                                                        'properties' => [
                                                                            'deviceId' => [
                                                                                'type' => 'string',
                                                                                'nullable' => true,
                                                                            ],
                                                                            'deviceType' => [
                                                                                'type' => 'string',
                                                                                'nullable' => true,
                                                                            ],
                                                                            'deviceName' => [
                                                                                'type' => 'string',
                                                                                'nullable' => true,
                                                                            ],
                                                                        ],
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                    ],
                                                    'benefits' => [
                                                        'type' => 'object',
                                                        'nullable' => true,
                                                        'properties' => [
                                                            'points' => [
                                                                'type' => 'integer',
                                                            ],
                                                            'credit' => [
                                                                'type' => 'integer',
                                                            ],
                                                            'rewards' => [
                                                                'type' => 'object',
                                                                'nullable' => true,
                                                                'properties' => [
                                                                    'id' => [
                                                                        'type' => 'string',
                                                                    ],
                                                                    'type' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'name' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'description' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'isUsed' => [
                                                                        'type' => 'boolean',
                                                                    ],
                                                                    'isUsable' => [
                                                                        'type' => 'boolean',
                                                                    ],
                                                                    'requirement' => [
                                                                        'type' => 'object',
                                                                        'properties' => [
                                                                            'redeemPoints' => [
                                                                                'type' => 'integer',
                                                                            ],
                                                                            'productSku' => [
                                                                                'type' => 'string',
                                                                            ],
                                                                        ],
                                                                    ],
                                                                    'value' => [
                                                                        'type' => 'integer',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'image' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'couponCode' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                                'example' => [
                                                    'customer' => [
                                                        'id' => '42e3c7a6-08d9-4baa-904e-faf24ed77abb',
                                                        'birthDate' => '2006-04-30T00:00:00Z',
                                                        'email' => 'jane@heypongo.com',
                                                        'phoneNumber' => '+33623456789',
                                                        'firstName' => 'Jhon',
                                                        'lastName' => 'Doe',
                                                        'hasOptinSms' => true,
                                                        'hasOptinEmail' => true,
                                                        'locked' => [
                                                            'deviceInfo' => [
                                                                'deviceId' => '99',
                                                                'deviceType' => 'kiosk',
                                                                'deviceName' => 'Borne_1',
                                                            ],
                                                        ],
                                                    ],
                                                    'benefits' => [
                                                        'points' => 100,
                                                        'credit' => 0,
                                                        'rewards' => [
                                                            [
                                                                'id' => 'rew_c4d5c2b847',
                                                                'type' => 'PERCENT',
                                                                'name' => 'Remise 20% cmd',
                                                                'description' => 'Bravo, tu as gagné {{ reward }} ! Utilise ce code promo sur notre site pour en profiter lors de ta prochaine commande : {{ voucher }}',
                                                                'isUsed' => false,
                                                                'isUsable' => false,
                                                                'requirement' => [
                                                                    'redeemPoints' => 2,
                                                                    'productSku' => 'FOX_68C3057F51902,FOX_68C305960C8F9,FOX_68C30546DA747,FOX_67E265A35C316,FOX_68C28D24E33BE,FOX_68C307006070C,FOX_68C2FB4BC9499,FOX_68C305AE6B2F1,FOX_68C30565269DD,FOX_68C2E2CF53E42,FOX_68C2FE730BD96,FOX_6842AB6C94BAA,FOX_687F8C81F2E47,FOX_687F8C81EA916,FOX_687F8C82030F4,FOX_68234FA071082,FOX_68B6BB0D2A21E',
                                                                ],
                                                                'value' => 20,
                                                                'image' => 'https://sandbox-static.heypongo.com/rewards/609_1759744143.jpg',
                                                                'couponCode' => 'rew_i6zebe06',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Bad request | Invalid input | Loyalty API is not reachable | Unexpected error occurred',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'detail' => [
                                                        'type' => 'string',
                                                        'example' => 'Invalid input',
                                                    ],
                                                    'violations' => [
                                                        'type' => 'array',
                                                        'items' => [
                                                            'type' => 'object',
                                                            'properties' => [
                                                                'property' => [
                                                                    'type' => 'string',
                                                                    'example' => 'phone',
                                                                ],
                                                                'message' => [
                                                                    'type' => 'string',
                                                                    'enum' => [
                                                                        'Invalid format.',
                                                                        'The phone number must be a valid mobile number.',
                                                                        'An email address or phone number is required.',
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                        'example' => [
                                                            [
                                                                'property' => 'phone',
                                                                'message' => 'Invalid format.',
                                                            ],
                                                            [
                                                                'property' => 'phone',
                                                                'message' => 'The phone number must be a valid mobile number.',
                                                            ],
                                                            [
                                                                'property' => 'email',
                                                                'message' => 'Invalid format.',
                                                            ],
                                                            [
                                                                'property' => 'loyalty_customer',
                                                                'message' => 'An email address or phone number is required.',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                404 => [
                                    'description' => 'Loyalty customer not found',
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                    'loyalty_customer_create' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'POST',
                        'path' => '/loyalty/customers',
                        'messenger' => true,
                        'input' => [
                            'class' => 'App\\Message\\Loyalty\\Customer\\CreateLoyaltyCustomer',
                            'name' => 'CreateLoyaltyCustomer',
                        ],
                        'pagination_enabled' => false,
                        'groups' => [
                            'loyalty:customer',
                        ],
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'Create a new loyalty customer',
                            'requestBody' => [
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'firstName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'lastName' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'birthDate' => [
                                                    'type' => 'string',
                                                    'format' => 'date-time',
                                                    'nullable' => true,
                                                ],
                                                'email' => [
                                                    'type' => 'string',
                                                    'format' => 'email',
                                                    'nullable' => true,
                                                ],
                                                'phone' => [
                                                    'type' => 'string',
                                                    'nullable' => true,
                                                ],
                                                'optinEmail' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                                'optinSms' => [
                                                    'type' => 'boolean',
                                                    'nullable' => true,
                                                ],
                                            ],
                                            'example' => [
                                                'firstName' => 'John',
                                                'lastName' => 'Doe',
                                                'birthDate' => '2006-04-30T00:00:00Z',
                                                'email' => 'john.doe@example.com',
                                                'phone' => '+33123456789',
                                                'optinEmail' => true,
                                                'optinSms' => false,
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                201 => [
                                    'description' => 'Customer successfully created',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'customer' => [
                                                        'type' => 'object',
                                                        'properties' => [
                                                            'id' => [
                                                                'type' => 'string',
                                                            ],
                                                            'birthDate' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'email' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'phoneNumber' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'firstName' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'lastName' => [
                                                                'type' => 'string',
                                                                'nullable' => true,
                                                            ],
                                                            'hasOptinEmail' => [
                                                                'type' => 'boolean',
                                                                'nullable' => true,
                                                            ],
                                                            'hasOptinSms' => [
                                                                'type' => 'boolean',
                                                                'nullable' => true,
                                                            ],
                                                        ],
                                                    ],
                                                    'benefits' => [
                                                        'type' => 'object',
                                                        'nullable' => true,
                                                        'properties' => [
                                                            'points' => [
                                                                'type' => 'integer',
                                                            ],
                                                            'credit' => [
                                                                'type' => 'integer',
                                                            ],
                                                            'reward' => [
                                                                'type' => 'object',
                                                                'nullable' => true,
                                                                'properties' => [
                                                                    'id' => [
                                                                        'type' => 'string',
                                                                    ],
                                                                    'type' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'name' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'description' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'isUsed' => [
                                                                        'type' => 'boolean',
                                                                    ],
                                                                    'isUsable' => [
                                                                        'type' => 'boolean',
                                                                    ],
                                                                    'requirement' => [
                                                                        'type' => 'object',
                                                                        'properties' => [
                                                                            'redeemPoints' => [
                                                                                'type' => 'integer',
                                                                            ],
                                                                            'productSku' => [
                                                                                'type' => 'string',
                                                                            ],
                                                                        ],
                                                                    ],
                                                                    'value' => [
                                                                        'type' => 'integer',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'image' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                    'couponCode' => [
                                                                        'type' => 'string',
                                                                        'nullable' => true,
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                                'example' => [
                                                    'customer' => [
                                                        'id' => '42e3c7a6-08d9-4baa-904e-faf24ed77abb',
                                                        'birthDate' => '2006-04-30T00:00:00Z',
                                                        'email' => 'jane@heypongo.com',
                                                        'phoneNumber' => '+33623456789',
                                                        'firstName' => 'Jane',
                                                        'lastName' => 'Doe',
                                                        'hasOptinEmail' => true,
                                                        'hasOptinSms' => false,
                                                    ],
                                                    'benefits' => [
                                                        'points' => 100,
                                                        'credit' => 0,
                                                        'rewards' => [
                                                            [
                                                                'id' => 'rew_c4d5c2b847',
                                                                'type' => 'PERCENT',
                                                                'name' => 'Remise 20% cmd',
                                                                'description' => 'Bravo, tu as gagné {{ reward }} ! Utilise ce code promo sur notre site pour en profiter lors de ta prochaine commande : {{ voucher }}',
                                                                'isUsed' => false,
                                                                'isUsable' => false,
                                                                'requirement' => [
                                                                    'redeemPoints' => 2,
                                                                    'productSku' => 'FOX_68C3057F51902,FOX_68C305960C8F9,FOX_68C30546DA747,FOX_67E265A35C316,FOX_68C28D24E33BE,FOX_68C307006070C,FOX_68C2FB4BC9499,FOX_68C305AE6B2F1,FOX_68C30565269DD,FOX_68C2E2CF53E42,FOX_68C2FE730BD96,FOX_6842AB6C94BAA,FOX_687F8C81F2E47,FOX_687F8C81EA916,FOX_687F8C82030F4,FOX_68234FA071082,FOX_68B6BB0D2A21E',
                                                                ],
                                                                'value' => 20,
                                                                'image' => 'https://sandbox-static.heypongo.com/rewards/609_1759744143.jpg',
                                                                'couponCode' => 'rew_i6zebe06',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Bad request | Invalid input | Unexpected error occurred',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'detail' => [
                                                        'type' => 'string',
                                                        'example' => 'Invalid input',
                                                    ],
                                                    'violations' => [
                                                        'type' => 'array',
                                                        'items' => [
                                                            'type' => 'object',
                                                            'properties' => [
                                                                'property' => [
                                                                    'type' => 'string',
                                                                    'example' => 'phone',
                                                                ],
                                                                'message' => [
                                                                    'type' => 'string',
                                                                    'enum' => [
                                                                        'Invalid format.',
                                                                        'The phone number must be a valid mobile number.',
                                                                        'An email address or phone number is required.',
                                                                        'This value should be of type boolean.',
                                                                    ],
                                                                ],
                                                            ],
                                                        ],
                                                        'example' => [
                                                            [
                                                                'property' => 'phone',
                                                                'message' => 'Invalid format.',
                                                            ],
                                                            [
                                                                'property' => 'phone',
                                                                'message' => 'The phone number must be a valid mobile number.',
                                                            ],
                                                            [
                                                                'property' => 'email',
                                                                'message' => 'Invalid format.',
                                                            ],
                                                            [
                                                                'property' => 'optinEmail',
                                                                'message' => 'This value should be of type boolean.',
                                                            ],
                                                            [
                                                                'property' => 'optinSms',
                                                                'message' => 'This value should be of type boolean.',
                                                            ],
                                                            [
                                                                'property' => 'loyalty_customer',
                                                                'message' => 'An email address or phone number is required.',
                                                            ],
                                                        ],
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                    'loyalty_customer_unlock' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'POST',
                        'path' => '/loyalty/customers/unlock',
                        'input' => [
                            'class' => 'App\\Message\\Loyalty\\Customer\\UnlockLoyaltyCustomer',
                            'name' => 'UnlockLoyaltyCustomer',
                        ],
                        'messenger' => true,
                        'read' => false,
                        'groups' => [
                            'loyalty:customer',
                        ],
                        'status' => 200,
                        'openapi_context' => [
                            'tags' => [
                                'Loyalty',
                            ],
                            'summary' => 'Unlock a loyalty customer',
                            'requestBody' => [
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'required' => [
                                                'customerId',
                                            ],
                                            'properties' => [
                                                'customerId' => [
                                                    'type' => 'string',
                                                ],
                                            ],
                                        ],
                                        'example' => [
                                            'customerId' => '42e3c7a6-08d9-4baa-904e-faf24ed77abb',
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'description' => 'Customer successfully unlocked',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'id' => [
                                                        'type' => 'string',
                                                    ],
                                                    'unlocked' => [
                                                        'type' => 'boolean',
                                                        'example' => true,
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                404 => [
                                    'description' => 'Loyalty customer not found',
                                ],
                            ],
                        ],
                        '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' => [
                [
                    'cache_headers' => null,
                    'denormalization_context' => null,
                    'deprecation_reason' => null,
                    'elasticsearch' => null,
                    'fetch_partial' => null,
                    'force_eager' => null,
                    'formats' => null,
                    'filters' => null,
                    'hydra_context' => null,
                    'input' => null,
                    'mercure' => null,
                    'messenger' => null,
                    'normalization_context' => [
                        'skip_null_values' => false,
                    ],
                    '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' => null,
                    '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],
    []
); }];
