PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.17.1
GiveWP – Donation Plugin and Fundraising Platform v3.17.1
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Subscriptions / DataTransferObjects / SubscriptionQueryData.php
give / src / Subscriptions / DataTransferObjects Last commit date
SubscriptionArgs.php 3 years ago SubscriptionQueryData.php 3 years ago
SubscriptionQueryData.php
122 lines
1 <?php
2
3 namespace Give\Subscriptions\DataTransferObjects;
4
5 use DateTime;
6 use Give\Framework\Support\Facades\DateTime\Temporal;
7 use Give\Framework\Support\ValueObjects\Money;
8 use Give\Subscriptions\Models\Subscription;
9 use Give\Subscriptions\ValueObjects\SubscriptionMode;
10 use Give\Subscriptions\ValueObjects\SubscriptionPeriod;
11 use Give\Subscriptions\ValueObjects\SubscriptionStatus;
12
13 /**
14 * Class SubscriptionObjectData
15 *
16 * @since 2.19.6
17 */
18 final class SubscriptionQueryData
19 {
20 /**
21 * @var int
22 */
23 public $id;
24 /**
25 * @var DateTime
26 */
27 public $createdAt;
28 /**
29 * @var DateTime
30 */
31 public $renewsAt;
32 /**
33 * @var string
34 */
35 public $status;
36 /**
37 * @var int
38 */
39 public $donorId;
40 /**
41 * @var SubscriptionPeriod
42 */
43 public $period;
44 /**
45 * @var string
46 */
47 public $frequency;
48 /**
49 * @var int
50 */
51 public $installments;
52 /**
53 * @var string
54 */
55 public $transactionId;
56 /**
57 * @var SubscriptionMode
58 */
59 public $mode;
60 /**
61 * @var Money
62 */
63 public $amount;
64 /**
65 * @var Money
66 */
67 public $feeAmountRecovered;
68 /**
69 * @var string
70 */
71 public $gatewayId;
72 /**
73 * @var string
74 */
75 public $gatewaySubscriptionId;
76 /**
77 * @var int
78 */
79 public $donationFormId;
80
81 /**
82 * Convert data from Subscription Object to Subscription Model
83 *
84 * @since 2.19.6
85 */
86 public static function fromObject($subscriptionQueryObject): self
87 {
88 $self = new static();
89
90 $self->id = (int)$subscriptionQueryObject->id;
91 $self->createdAt = Temporal::toDateTime($subscriptionQueryObject->createdAt);
92 $self->renewsAt = isset($subscriptionQueryObject->renewsAt) ? Temporal::toDateTime(
93 $subscriptionQueryObject->renewsAt
94 ) : null;
95 $self->donorId = (int)$subscriptionQueryObject->donorId;
96 $self->period = new SubscriptionPeriod($subscriptionQueryObject->period);
97 $self->frequency = (int)$subscriptionQueryObject->frequency;
98 $self->installments = (int)$subscriptionQueryObject->installments;
99 $self->transactionId = $subscriptionQueryObject->transactionId;
100 $self->mode = new SubscriptionMode($subscriptionQueryObject->mode);
101 $self->amount = Money::fromDecimal($subscriptionQueryObject->amount, $subscriptionQueryObject->currency ?? give_get_currency());
102 $self->feeAmountRecovered = Money::fromDecimal($subscriptionQueryObject->feeAmount,
103 $subscriptionQueryObject->currency ?? give_get_currency());
104 $self->status = new SubscriptionStatus($subscriptionQueryObject->status);
105 $self->gatewayId = $subscriptionQueryObject->gatewayId;
106 $self->gatewaySubscriptionId = $subscriptionQueryObject->gatewaySubscriptionId;
107 $self->donationFormId = (int)$subscriptionQueryObject->donationFormId;
108
109 return $self;
110 }
111
112 /**
113 * Convert DTO to Subscription
114 */
115 public function toSubscription(): Subscription
116 {
117 $attributes = get_object_vars($this);
118
119 return new Subscription($attributes);
120 }
121 }
122