SubscriptionModel   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 48
dl 0
loc 55
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A toArray() 0 26 1
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