SubscriptionModel::toArray()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 24

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 24
nc 1
nop 0
dl 0
loc 26
rs 9.536
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace Korobovn\CloudPayments\Message\Response\Model;
6
7
use Korobovn\CloudPayments\Message\Traits\ModelField\IdString;
8
use Korobovn\CloudPayments\Message\Traits\ModelField\PeriodInt;
9
use Korobovn\CloudPayments\Message\Traits\ModelField\AmountFloat;
10
use Korobovn\CloudPayments\Message\Traits\ModelField\EmailString;
11
use Korobovn\CloudPayments\Message\Traits\ModelField\StatusString;
12
use Korobovn\CloudPayments\Message\Traits\ModelField\StatusCodeInt;
13
use Korobovn\CloudPayments\Message\Traits\ModelField\CurrencyString;
14
use Korobovn\CloudPayments\Message\Traits\ModelField\IntervalString;
15
use Korobovn\CloudPayments\Message\Traits\ModelField\AccountIdString;
16
use Korobovn\CloudPayments\Message\Traits\ModelField\CurrencyCodeInt;
17
use Korobovn\CloudPayments\Message\Traits\ModelField\IntervalCodeInt;
18
use Korobovn\CloudPayments\Message\Traits\ModelField\StartDateString;
19
use Korobovn\CloudPayments\Message\Traits\ModelField\DescriptionString;
20
use Korobovn\CloudPayments\Message\Traits\ModelField\MaxPeriodsIntNull;
21
use Korobovn\CloudPayments\Message\Traits\ModelField\StartDateIsoString;
22
use Korobovn\CloudPayments\Message\Traits\ModelField\CultureNameStringNull;
23
use Korobovn\CloudPayments\Message\Traits\ModelField\RequireConfirmationBool;
24
use Korobovn\CloudPayments\Message\Traits\ModelField\FailedTransactionsNumberInt;
25
use Korobovn\CloudPayments\Message\Traits\ModelField\LastTransactionDateStringNull;
26
use Korobovn\CloudPayments\Message\Traits\ModelField\NextTransactionDateStringNull;
27
use Korobovn\CloudPayments\Message\Traits\ModelField\SuccessfulTransactionsNumberInt;
28
use Korobovn\CloudPayments\Message\Traits\ModelField\LastTransactionDateIsoStringNull;
29
use Korobovn\CloudPayments\Message\Traits\ModelField\NextTransactionDateIsoStringNull;
30
31
/**
32
 * @see https://developers.cloudpayments.ru/#sozdanie-podpiski-na-rekurrentnye-platezhi
33
 * @see https://developers.cloudpayments.ru/#zapros-informatsii-o-podpiske
34
 * @see https://developers.cloudpayments.ru/#izmenenie-podpiski-na-rekurrentnye-platezhi
35
 */
36
class SubscriptionModel extends AbstractModel
37
{
38
    use IdString,
39
        AccountIdString,
40
        DescriptionString,
41
        EmailString,
42
        AmountFloat,
43
        CurrencyCodeInt,
44
        CurrencyString,
45
        RequireConfirmationBool,
46
        StartDateString,
47
        StartDateIsoString,
48
        IntervalCodeInt,
49
        IntervalString,
50
        PeriodInt,
51
        MaxPeriodsIntNull,
52
        CultureNameStringNull,
53
        StatusCodeInt,
54
        StatusString,
55
        SuccessfulTransactionsNumberInt,
56
        FailedTransactionsNumberInt,
57
        LastTransactionDateStringNull,
58
        LastTransactionDateIsoStringNull,
59
        NextTransactionDateStringNull,
60
        NextTransactionDateIsoStringNull;
61
62
    /**
63
     * {@inheritDoc}
64
     */
65
    public function toArray(): array
66
    {
67
        return [
68
            'Id'                           => $this->getId(),
69
            'AccountId'                    => $this->getAccountId(),
70
            'Description'                  => $this->getDescription(),
71
            'Email'                        => $this->getEmail(),
72
            'Amount'                       => $this->getAmount(),
73
            'CurrencyCode'                 => $this->getCurrencyCode(),
74
            'Currency'                     => $this->getCurrency(),
75
            'RequireConfirmation'          => $this->isRequireConfirmation(),
76
            'StartDate'                    => $this->getStartDate(),
77
            'StartDateIso'                 => $this->getStartDateIso(),
78
            'IntervalCode'                 => $this->getIntervalCode(),
79
            'Interval'                     => $this->getInterval(),
80
            'Period'                       => $this->getPeriod(),
81
            'MaxPeriods'                   => $this->getMaxPeriods(),
82
            'CultureName'                  => $this->getCultureName(),
83
            'StatusCode'                   => $this->getStatusCode(),
84
            'Status'                       => $this->getStatus(),
85
            'SuccessfulTransactionsNumber' => $this->getSuccessfulTransactionsNumber(),
86
            'FailedTransactionsNumber'     => $this->getFailedTransactionsNumber(),
87
            'LastTransactionDate'          => $this->getLastTransactionDate(),
88
            'LastTransactionDateIso'       => $this->getLastTransactionDate(),
89
            'NextTransactionDate'          => $this->getNextTransactionDate(),
90
            'NextTransactionDateIso'       => $this->getNextTransactionDateIso(),
91
        ];
92
    }
93
}
94