<?php //resource_metadata_e5c9a847c73355bf78b126ea0200fb77

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' => [
                'Payment',
            ],
            'description' => [
                '',
            ],
            'itemOperations' => [
                [
                    'complete_apple_pay' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'PATCH',
                        'path' => '/payments/{id}/payplug-apple-pay/complete',
                        'input' => [
                            'class' => 'App\\Message\\Payment\\CompleteApplePay',
                            'name' => 'CompleteApplePay',
                        ],
                        'messenger' => true,
                        'denormalization_context' => [
                            'groups' => [
                                'patch:completeApplePay',
                            ],
                        ],
                        'openapi_context' => [
                            'summary' => 'Complete Apple Pay payment',
                            'description' => 'Complete an Apple Pay payment through Payplug',
                            'parameters' => [
                                [
                                    'in' => 'path',
                                    'name' => 'id',
                                    'schema' => [
                                        'type' => 'integer',
                                        'example' => 1234,
                                    ],
                                    'required' => true,
                                    'description' => 'Payment ID',
                                ],
                            ],
                            'requestBody' => [
                                'content' => [
                                    'application/merge-patch+json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'externalId' => [
                                                    'type' => 'string',
                                                    'example' => 'pay_7M4bISWaRIbAyGTw8dLUwy',
                                                ],
                                                'applePayToken' => [
                                                    'type' => 'object',
                                                    'example' => [
                                                        'paymentData' => [
                                                            'data' => 'BASE64_ENCODED_PAYMENT_DATA_BLOB...',
                                                            'signature' => 'MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBA...',
                                                            'header' => [
                                                                'transactionId' => '123456789abcdef',
                                                                'publicKeyHash' => 'BASE64_ENCODED_HASH',
                                                                'applicationData' => 'BASE64_ENCODED_APP_DATA',
                                                                'ephemeralPublicKey' => 'BASE64_ENCODED_PUBLIC_KEY',
                                                            ],
                                                            'version' => 'EC_v1',
                                                        ],
                                                        'paymentMethod' => [
                                                            'displayName' => 'Visa 1234',
                                                            'network' => 'Visa',
                                                            'type' => 'debit',
                                                        ],
                                                        'transactionIdentifier' => '123456789abcdef',
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'message' => [
                                                        'type' => 'string',
                                                        'example' => 'Payment Compeleted',
                                                    ],
                                                    'isPaid' => [
                                                        'type' => 'boolean',
                                                        'example' => true,
                                                    ],
                                                    'resultCode' => [
                                                        'type' => 'integer',
                                                        'example' => 200,
                                                    ],
                                                    'resultMessage' => [
                                                        'type' => 'string',
                                                        'example' => '{"paymentData":{"data":"BASE64_ENCODED_PAYMENT_DATA_BLOB...","signature":"MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBA...","header":{"transactionId":"123456789abcdef","publicKeyHash":"BASE64_ENCODED_HASH","applicationData":"BASE64_ENCODED_APP_DATA","ephemeralPublicKey":"BASE64_ENCODED_PUBLIC_KEY"},"version":"EC_v1"},"paymentMethod":{"displayName":"Visa 1234","network":"Visa","type":"debit"},"transactionIdentifier":"123456789abcdef"}',
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Invalid input / An error occured with Payplug Apple pay when completing payment',
                                    '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',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                404 => [
                                    'description' => 'Resource not found',
                                ],
                            ],
                        ],
                        'output' => null,
                        'stateless' => null,
                        'input_formats' => [
                            'json' => [
                                'application/merge-patch+json',
                            ],
                        ],
                        'output_formats' => [
                            'json' => [
                                'application/json',
                            ],
                            'jsonld' => [
                                'application/ld+js',
                            ],
                            'html' => [
                                'text/html',
                            ],
                        ],
                    ],
                ],
            ],
            'collectionOperations' => [
                [
                    'payment_create' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'POST',
                        'path' => '/payments/create',
                        'pagination_enabled' => false,
                        'status' => 201,
                        'controller' => 'App\\Controller\\Api\\Payment\\CreatePaymentController',
                        'openapi_context' => [
                            'summary' => 'Create a payment',
                            'description' => 'Create a payment',
                            'requestBody' => [
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'orderId' => [
                                                    'type' => 'integer',
                                                    'example' => 9802,
                                                ],
                                                'paymentMethodId' => [
                                                    'type' => 'integer',
                                                    'example' => 54,
                                                ],
                                                'amount' => [
                                                    'type' => 'integer',
                                                    'example' => 520,
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                201 => [
                                    'description' => 'Payment resource created',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'message' => [
                                                        'type' => 'string',
                                                        'example' => 'Payment created',
                                                    ],
                                                    'payplugPaymentId' => [
                                                        'type' => 'string',
                                                        'example' => 'pay_7ZYmXQ63PmYRVXdlLhF1xg',
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Missing parameters<br>Invalid payment amount<br>Invalid free items data<br>Payment method not found',
                                ],
                                404 => [
                                    'description' => 'Order not found<br>Payment method not found<br>Paygreen method not found<br>Paygreen method not supported',
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                    'payment_status' => [
                        'method' => 'GET',
                        'path' => '/payments/{external_id}/status',
                        'pagination_enabled' => false,
                        'status' => 200,
                        'controller' => 'App\\Controller\\Api\\Payment\\GetPaymentStatusController',
                        'read' => false,
                        'openapi_context' => [
                            'summary' => 'Payment’s state',
                            'description' => 'Get payment status by external id',
                            'parameters' => [
                                [
                                    'in' => 'path',
                                    'name' => 'external_id',
                                    'schema' => [
                                        'type' => 'string',
                                        'example' => '3yHirh6FE3XdwD3VW0Zyxw',
                                    ],
                                    'required' => true,
                                    'description' => 'Payment external id',
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'description' => '- Payment status retrieved successfully.'."\n"
                                        .' - Possible values: [authorized | awaiting_payment | cancelled | error | expired | failed | new | paid | partially_paid | skipped | processing | refunded | requires_action | unknown]',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'state' => [
                                                        'type' => 'string',
                                                        'enum' => [
                                                            'authorized',
                                                            'awaiting_payment',
                                                            'cancelled',
                                                            'error',
                                                            'expired',
                                                            'failed',
                                                            'new',
                                                            'paid',
                                                            'partially_paid',
                                                            'skipped',
                                                            'processing',
                                                            'refunded',
                                                            'requires_action',
                                                            'unknown',
                                                        ],
                                                    ],
                                                ],
                                                'description' => 'Payment state',
                                            ],
                                            'example' => [
                                                'state' => 'paid',
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Invalid parameter',
                                ],
                                404 => [
                                    'description' => 'Payment not found',
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                    'payment_set_result' => [
                        'security' => 'is_granted("ROLE_EXACT_CLIENT") or is_granted("ROLE_EXACT_API")',
                        'method' => 'POST',
                        'path' => '/payments/result',
                        'pagination_enabled' => false,
                        'status' => 200,
                        'controller' => 'App\\Controller\\Api\\Payment\\Nepting\\SetPaymentResultController',
                        'openapi_context' => [
                            'summary' => 'Handle payment result',
                            'description' => 'Handles the result of a payment transaction from Nepting',
                            'requestBody' => [
                                'content' => [
                                    'application/json' => [
                                        'schema' => [
                                            'type' => 'object',
                                            'properties' => [
                                                'payment_external_id' => [
                                                    'type' => 'string',
                                                    'example' => '0224',
                                                ],
                                                'result' => [
                                                    'type' => 'string',
                                                    'example' => 'Success',
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                            'responses' => [
                                200 => [
                                    'description' => 'Payment result processed successfully',
                                    'content' => [
                                        'application/json' => [
                                            'schema' => [
                                                'type' => 'object',
                                                'properties' => [
                                                    'processed' => [
                                                        'type' => 'boolean',
                                                        'example' => true,
                                                    ],
                                                    'payment_state' => [
                                                        'type' => 'string',
                                                        'example' => 'paid',
                                                    ],
                                                ],
                                            ],
                                        ],
                                    ],
                                ],
                                400 => [
                                    'description' => 'Invalid json<br>Missing parameters<br>Payment nepting state not supported',
                                ],
                                404 => [
                                    'description' => 'Payment not found',
                                ],
                            ],
                        ],
                        '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',
                            ],
                        ],
                    ],
                ],
            ],
            'graphql' => [
                [
                    'item_query' => [],
                    'collection_query' => [],
                    'delete' => [],
                    'update' => [],
                    'create' => [],
                ],
            ],
            'attributes' => [
                [
                    'security' => 'is_granted("ROLE_EXACT_API")',
                    'cache_headers' => null,
                    'denormalization_context' => [
                        'disable_type_enforcement' => true,
                        'groups' => [
                            'post:payment',
                        ],
                    ],
                    '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' => null,
                    '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],
    []
); }];
