Passed
Push — feature/eco-574/eco-2339-imple... ( 2e6b80...1f6c31 )
by Ruslan
03:05
created

createAuthorizeRequestBuilderStack()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\AfterPay\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Shared\AfterPay\AfterPayConfig;
12
use SprykerEco\Zed\AfterPay\AfterPayDependencyProvider;
13
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupCustomerHandler;
14
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupCustomerHandlerInterface;
15
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupInstallmentPlansHandler;
16
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupInstallmentPlansHandlerInterface;
17
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateBankAccountHandler;
18
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateBankAccountHandlerInterface;
19
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateCustomerHandler;
20
use SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateCustomerHandlerInterface;
21
use SprykerEco\Zed\AfterPay\Business\Api\Adapter\AdapterFactory;
22
use SprykerEco\Zed\AfterPay\Business\Api\Adapter\AdapterFactoryInterface;
23
use SprykerEco\Zed\AfterPay\Business\Api\Adapter\AdapterInterface;
24
use SprykerEco\Zed\AfterPay\Business\Api\Adapter\AfterPayApiAdapter;
25
use SprykerEco\Zed\AfterPay\Business\Exception\InvalidAfterPayAuthorizeRequestBuilderException;
26
use SprykerEco\Zed\AfterPay\Business\Exception\InvalidAfterPayPaymentMethodsFilterException;
27
use SprykerEco\Zed\AfterPay\Business\Hook\PostSaveHook;
28
use SprykerEco\Zed\AfterPay\Business\Hook\PostSaveHookInterface;
29
use SprykerEco\Zed\AfterPay\Business\Order\Saver;
30
use SprykerEco\Zed\AfterPay\Business\Order\SaverInterface;
31
use SprykerEco\Zed\AfterPay\Business\Payment\Filter\AfterPayPaymentMethodsFilterInterface;
32
use SprykerEco\Zed\AfterPay\Business\Payment\Filter\OneStepAuthorizePaymentMethodsFilter;
33
use SprykerEco\Zed\AfterPay\Business\Payment\Filter\Provider\AfterPayPaymentMethodsProvider;
34
use SprykerEco\Zed\AfterPay\Business\Payment\Filter\Provider\AfterPayPaymentMethodsProviderInterface;
35
use SprykerEco\Zed\AfterPay\Business\Payment\Filter\TwoStepAuthorizePaymentMethodsFilter;
36
use SprykerEco\Zed\AfterPay\Business\Payment\Mapper\OrderToRequestTransfer;
37
use SprykerEco\Zed\AfterPay\Business\Payment\Mapper\OrderToRequestTransferInterface;
38
use SprykerEco\Zed\AfterPay\Business\Payment\Mapper\QuoteToRequestTransfer;
39
use SprykerEco\Zed\AfterPay\Business\Payment\Mapper\QuoteToRequestTransferInterface;
40
use SprykerEco\Zed\AfterPay\Business\Payment\PaymentReader;
41
use SprykerEco\Zed\AfterPay\Business\Payment\PaymentReaderInterface;
42
use SprykerEco\Zed\AfterPay\Business\Payment\PaymentWriter;
43
use SprykerEco\Zed\AfterPay\Business\Payment\PaymentWriterInterface;
44
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\PaymentAuthorizeWriter;
45
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\PaymentAuthorizeWriterInterface;
46
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\AuthorizeRequestBuilderInterface;
47
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\OneStepAuthorizeRequestBuilder;
48
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\TwoStepsAuthorizeRequestBuilder;
49
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\AuthorizeTransaction;
50
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\AuthorizeTransactionInterface;
51
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Cancel\CancelRequestBuilder;
52
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Cancel\CancelRequestBuilderInterface;
53
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CancelTransaction;
54
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CancelTransactionInterface;
55
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Capture\CaptureRequestBuilder;
56
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Capture\CaptureRequestBuilderInterface;
57
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CaptureTransaction;
58
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CaptureTransactionInterface;
59
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandler;
60
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface;
61
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CancelTransactionHandler;
62
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CancelTransactionHandlerInterface;
63
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CaptureTransactionHandler;
64
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CaptureTransactionHandlerInterface;
65
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\RefundTransactionHandler;
66
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\RefundTransactionHandlerInterface;
67
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Logger\TransactionLogger;
68
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Logger\TransactionLoggerInterface;
69
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\PriceToPayProvider;
70
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\PriceToPayProviderInterface;
71
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Refund\RefundRequestBuilder;
72
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Refund\RefundRequestBuilderInterface;
73
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\RefundTransaction;
74
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\RefundTransactionInterface;
75
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\TransactionLogReader;
76
use SprykerEco\Zed\AfterPay\Business\Payment\Transaction\TransactionLogReaderInterface;
77
use SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToCustomerFacadeInterface;
78
use SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToMoneyFacadeInterface;
79
use SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToPaymentFacadeInterface;
80
use SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToStoreFacadeInterface;
81
use SprykerEco\Zed\AfterPay\Dependency\Service\AfterPayToUtilEncodingServiceInterface;
82
83
/**
84
 * @method \SprykerEco\Zed\AfterPay\Persistence\AfterPayQueryContainerInterface getQueryContainer()
85
 * @method \SprykerEco\Zed\AfterPay\AfterPayConfig getConfig()
86
 */
87
class AfterPayBusinessFactory extends AbstractBusinessFactory
88
{
89
    /**
90
     * @return \SprykerEco\Zed\AfterPay\Business\Order\SaverInterface
91
     */
92
    public function createOrderSaver(): SaverInterface
93
    {
94
        return new Saver($this->getConfig());
95
    }
96
97
    /**
98
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface
99
     */
100
    public function createAuthorizeTransactionHandler(): AuthorizeTransactionHandlerInterface
101
    {
102
        return new AuthorizeTransactionHandler(
103
            $this->createAuthorizeTransaction(),
104
            $this->getAuthorizeRequestBuilder(),
105
            $this->createPaymentWriter(),
106
            $this->createPriceToPayProvider()
107
        );
108
    }
109
110
    /**
111
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CaptureTransactionHandlerInterface
112
     */
113
    public function createCaptureTransactionHandler(): CaptureTransactionHandlerInterface
114
    {
115
        return new CaptureTransactionHandler(
116
            $this->createCaptureTransaction(),
117
            $this->createPaymentReader(),
118
            $this->createPaymentWriter(),
119
            $this->createCaptureRequestBuilder()
120
        );
121
    }
122
123
    /**
124
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\RefundTransactionHandlerInterface
125
     */
126
    public function createRefundTransactionHandler(): RefundTransactionHandlerInterface
127
    {
128
        return new RefundTransactionHandler(
129
            $this->createRefundTransaction(),
130
            $this->createPaymentReader(),
131
            $this->createPaymentWriter(),
132
            $this->getMoneyFacade(),
133
            $this->createRefundRequestBuilder()
134
        );
135
    }
136
137
    /**
138
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Handler\CancelTransactionHandlerInterface
139
     */
140
    public function createCancelTransactionHandler(): CancelTransactionHandlerInterface
141
    {
142
        return new CancelTransactionHandler(
143
            $this->createCancelTransaction(),
144
            $this->createPaymentReader(),
145
            $this->createPaymentWriter(),
146
            $this->getMoneyFacade(),
147
            $this->createCancelRequestBuilder()
148
        );
149
    }
150
151
    /**
152
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\PaymentReaderInterface
153
     */
154
    public function createPaymentReader(): PaymentReaderInterface
155
    {
156
        return new PaymentReader($this->getQueryContainer());
157
    }
158
159
    /**
160
     * @return \SprykerEco\Zed\AfterPay\Business\Hook\PostSaveHookInterface
161
     */
162
    public function createPostSaveHook(): PostSaveHookInterface
163
    {
164
        return new PostSaveHook(
165
            $this->createTransactionLogReader(),
166
            $this->getConfig()
167
        );
168
    }
169
170
    /**
171
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Capture\CaptureRequestBuilderInterface
172
     */
173
    public function createCaptureRequestBuilder(): CaptureRequestBuilderInterface
174
    {
175
        return new CaptureRequestBuilder(
176
            $this->createOrderToRequestMapper(),
177
            $this->getMoneyFacade()
178
        );
179
    }
180
181
    /**
182
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CaptureTransactionInterface
183
     */
184
    public function createCaptureTransaction(): CaptureTransactionInterface
185
    {
186
        return new CaptureTransaction(
187
            $this->createTransactionLogger(),
188
            $this->createApiAdapter()
189
        );
190
    }
191
192
    /**
193
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\RefundTransactionInterface
194
     */
195
    public function createRefundTransaction(): RefundTransactionInterface
196
    {
197
        return new RefundTransaction(
198
            $this->createTransactionLogger(),
199
            $this->createApiAdapter()
200
        );
201
    }
202
203
    /**
204
     * @return \SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateCustomerHandlerInterface
205
     */
206
    public function createValidateCustomerHandler(): ValidateCustomerHandlerInterface
207
    {
208
        return new ValidateCustomerHandler(
209
            $this->createApiAdapter(),
210
            $this->getAfterPayToCustomerBridge()
211
        );
212
    }
213
214
    /**
215
     * @return \SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\ValidateBankAccountHandlerInterface
216
     */
217
    public function createValidateBankAccountHandler(): ValidateBankAccountHandlerInterface
218
    {
219
        return new ValidateBankAccountHandler($this->createApiAdapter());
220
    }
221
222
    /**
223
     * @return \SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupCustomerHandlerInterface
224
     */
225
    public function createLookupCustomerHandler(): LookupCustomerHandlerInterface
226
    {
227
        return new LookupCustomerHandler($this->createApiAdapter());
228
    }
229
230
    /**
231
     * @return \SprykerEco\Zed\AfterPay\Business\AdditionalServices\Handler\LookupInstallmentPlansHandlerInterface
232
     */
233
    public function createLookupInstallmentPlansHandler(): LookupInstallmentPlansHandlerInterface
234
    {
235
        return new LookupInstallmentPlansHandler($this->createApiAdapter());
236
    }
237
238
    /**
239
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\PaymentWriterInterface
240
     */
241
    public function createPaymentWriter(): PaymentWriterInterface
242
    {
243
        return new PaymentWriter($this->getQueryContainer());
244
    }
245
246
    /**
247
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\AuthorizeTransactionInterface
248
     */
249
    public function createAuthorizeTransaction(): AuthorizeTransactionInterface
250
    {
251
        return new AuthorizeTransaction(
252
            $this->createTransactionLogger(),
253
            $this->createApiAdapter(),
254
            $this->createPaymentAuthorizeWriter()
255
        );
256
    }
257
258
    /**
259
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\CancelTransactionInterface
260
     */
261
    public function createCancelTransaction(): CancelTransactionInterface
262
    {
263
        return new CancelTransaction(
264
            $this->createTransactionLogger(),
265
            $this->createApiAdapter()
266
        );
267
    }
268
269
    /**
270
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Logger\TransactionLoggerInterface
271
     */
272
    public function createTransactionLogger(): TransactionLoggerInterface
273
    {
274
        return new TransactionLogger($this->getUtilEncodingService());
275
    }
276
277
    /**
278
     * @return \SprykerEco\Zed\AfterPay\Business\Api\Adapter\AdapterInterface
279
     */
280
    public function createApiAdapter(): AdapterInterface
281
    {
282
        return new AfterPayApiAdapter($this->createAdapterFactory());
283
    }
284
285
    /**
286
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\PaymentAuthorizeWriterInterface
287
     */
288
    public function createPaymentAuthorizeWriter(): PaymentAuthorizeWriterInterface
289
    {
290
        return new PaymentAuthorizeWriter($this->getQueryContainer());
291
    }
292
293
    /**
294
     * @return \SprykerEco\Zed\AfterPay\Business\Api\Adapter\AdapterFactoryInterface
295
     */
296
    public function createAdapterFactory(): AdapterFactoryInterface
297
    {
298
        return new AdapterFactory();
299
    }
300
301
    /**
302
     * @throws \SprykerEco\Zed\AfterPay\Business\Exception\InvalidAfterPayAuthorizeRequestBuilderException
303
     *
304
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\AuthorizeRequestBuilderInterface
305
     */
306
    public function getAuthorizeRequestBuilder(): AuthorizeRequestBuilderInterface
307
    {
308
        $authorizeWorkflow = $this->getConfig()->getAfterPayAuthorizeWorkflow();
309
        $authorizeRequestBuilderStack = $this->createAuthorizeRequestBuilderStack();
310
311
        if (!isset($authorizeRequestBuilderStack[$authorizeWorkflow])) {
312
            throw new InvalidAfterPayAuthorizeRequestBuilderException($authorizeWorkflow . " is not a valid AfterPay authorize request builder.");
313
        }
314
315
        return $authorizeRequestBuilderStack[$authorizeWorkflow];
316
    }
317
318
    /**
319
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\AuthorizeRequestBuilderInterface[]
320
     */
321
    public function createAuthorizeRequestBuilderStack(): array
322
    {
323
        return [
324
            AfterPayConfig::AFTERPAY_AUTHORIZE_WORKFLOW_ONE_STEP => $this->createOneStepAuthorizeRequestBuilder(),
325
            AfterPayConfig::AFTERPAY_AUTHORIZE_WORKFLOW_TWO_STEPS => $this->createTwoStepsAuthorizeRequestBuilder(),
326
        ];
327
    }
328
329
    /**
330
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Cancel\CancelRequestBuilderInterface
331
     */
332
    public function createCancelRequestBuilder(): CancelRequestBuilderInterface
333
    {
334
        return new CancelRequestBuilder(
335
            $this->createOrderToRequestMapper(),
336
            $this->getMoneyFacade()
337
        );
338
    }
339
340
    /**
341
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Refund\RefundRequestBuilderInterface
342
     */
343
    public function createRefundRequestBuilder(): RefundRequestBuilderInterface
344
    {
345
        return new RefundRequestBuilder(
346
            $this->createOrderToRequestMapper(),
347
            $this->getMoneyFacade()
348
        );
349
    }
350
351
    /**
352
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\AuthorizeRequestBuilderInterface
353
     */
354
    public function createOneStepAuthorizeRequestBuilder(): AuthorizeRequestBuilderInterface
355
    {
356
        return new OneStepAuthorizeRequestBuilder($this->createOrderToRequestMapper());
357
    }
358
359
    /**
360
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Mapper\OrderToRequestTransferInterface
361
     */
362
    public function createOrderToRequestMapper(): OrderToRequestTransferInterface
363
    {
364
        return new OrderToRequestTransfer(
365
            $this->getMoneyFacade(),
366
            $this->getStoreFacade(),
367
            $this->createPriceToPayProvider()
368
        );
369
    }
370
371
    /**
372
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\Authorize\RequestBuilder\AuthorizeRequestBuilderInterface
373
     */
374
    public function createTwoStepsAuthorizeRequestBuilder(): AuthorizeRequestBuilderInterface
375
    {
376
        return new TwoStepsAuthorizeRequestBuilder($this->createOrderToRequestMapper());
377
    }
378
379
    /**
380
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\TransactionLogReaderInterface
381
     */
382
    public function createTransactionLogReader(): TransactionLogReaderInterface
383
    {
384
        return new TransactionLogReader($this->getQueryContainer());
385
    }
386
387
    /**
388
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Transaction\PriceToPayProviderInterface
389
     */
390
    public function createPriceToPayProvider(): PriceToPayProviderInterface
391
    {
392
        return new PriceToPayProvider($this->getPaymentFacade());
393
    }
394
395
    /**
396
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Mapper\QuoteToRequestTransferInterface
397
     */
398
    public function createQuoteToRequestMapper(): QuoteToRequestTransferInterface
399
    {
400
        return new QuoteToRequestTransfer(
401
            $this->getMoneyFacade(),
402
            $this->getStoreFacade()
403
        );
404
    }
405
406
    /**
407
     * @throws \SprykerEco\Zed\AfterPay\Business\Exception\InvalidAfterPayPaymentMethodsFilterException
408
     *
409
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Filter\AfterPayPaymentMethodsFilterInterface
410
     */
411
    public function createPaymentMethodsFilter(): AfterPayPaymentMethodsFilterInterface
412
    {
413
        $authorizeWorkflow = $this->getConfig()->getAfterPayAuthorizeWorkflow();
414
        $paymentMethodsFilterStack = $this->createPaymentMethodsFilterStack();
415
416
        if (!isset($paymentMethodsFilterStack[$authorizeWorkflow])) {
417
            throw new InvalidAfterPayPaymentMethodsFilterException($authorizeWorkflow . " is not a valid AfterPay payment methods filter.");
418
        }
419
420
        return $paymentMethodsFilterStack[$authorizeWorkflow];
421
    }
422
423
    /**
424
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Filter\AfterPayPaymentMethodsFilterInterface[]
425
     */
426
    public function createPaymentMethodsFilterStack(): array
427
    {
428
        return [
429
            AfterPayConfig::AFTERPAY_AUTHORIZE_WORKFLOW_ONE_STEP => $this->createOneStepAuthorizePaymentMethodsFilter(),
430
            AfterPayConfig::AFTERPAY_AUTHORIZE_WORKFLOW_TWO_STEPS => $this->createTwoStepAuthorizePaymentMethodsFilter(),
431
        ];
432
    }
433
434
    /**
435
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Filter\AfterPayPaymentMethodsFilterInterface
436
     */
437
    public function createOneStepAuthorizePaymentMethodsFilter(): AfterPayPaymentMethodsFilterInterface
438
    {
439
        return new OneStepAuthorizePaymentMethodsFilter();
440
    }
441
442
    /**
443
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Filter\AfterPayPaymentMethodsFilterInterface
444
     */
445
    public function createTwoStepAuthorizePaymentMethodsFilter(): AfterPayPaymentMethodsFilterInterface
446
    {
447
        return new TwoStepAuthorizePaymentMethodsFilter();
448
    }
449
450
    /**
451
     * @return \SprykerEco\Zed\AfterPay\Business\Payment\Filter\Provider\AfterPayPaymentMethodsProviderInterface
452
     */
453
    public function createPaymentMethodsProvider(): AfterPayPaymentMethodsProviderInterface
454
    {
455
        return new AfterPayPaymentMethodsProvider(
456
            $this->createApiAdapter(),
457
            $this->createQuoteToRequestMapper()
458
        );
459
    }
460
461
    /**
462
     * @return \SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToMoneyFacadeInterface
463
     */
464
    public function getMoneyFacade(): AfterPayToMoneyFacadeInterface
465
    {
466
        return $this->getProvidedDependency(AfterPayDependencyProvider::FACADE_MONEY);
467
    }
468
469
    /**
470
     * @return \SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToCustomerFacadeInterface
471
     */
472
    public function getAfterPayToCustomerBridge(): AfterPayToCustomerFacadeInterface
473
    {
474
        return $this->getProvidedDependency(AfterPayDependencyProvider::FACADE_CUSTOMER);
475
    }
476
477
    /**
478
     * @return \SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToStoreFacadeInterface
479
     */
480
    public function getStoreFacade(): AfterPayToStoreFacadeInterface
481
    {
482
        return $this->getProvidedDependency(AfterPayDependencyProvider::FACADE_STORE);
483
    }
484
485
    /**
486
     * @return \SprykerEco\Zed\AfterPay\Dependency\Facade\AfterPayToPaymentFacadeInterface
487
     */
488
    public function getPaymentFacade(): AfterPayToPaymentFacadeInterface
489
    {
490
        return $this->getProvidedDependency(AfterPayDependencyProvider::FACADE_PAYMENT);
491
    }
492
493
    /**
494
     * @return \SprykerEco\Zed\AfterPay\Dependency\Service\AfterPayToUtilEncodingServiceInterface
495
     */
496
    public function getUtilEncodingService(): AfterPayToUtilEncodingServiceInterface
497
    {
498
        return $this->getProvidedDependency(AfterPayDependencyProvider::SERVICE_UTIL_ENCODING);
499
    }
500
}
501