PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.3
GiveWP – Donation Plugin and Fundraising Platform v4.14.3
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 SubscriptionNoteQueryData.php 9 months ago SubscriptionQueryData.php 8 months ago
SubscriptionQueryData.php
128 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 4.11.0 add campaign_id prop
17 * @since 2.19.6
18 */
19 final class SubscriptionQueryData
20 {
21 /**
22 * @var int
23 */
24 public $id;
25 /**
26 * @var DateTime
27 */
28 public $createdAt;
29 /**
30 * @var DateTime
31 */
32 public $renewsAt;
33 /**
34 * @var string
35 */
36 public $status;
37 /**
38 * @var int
39 */
40 public $donorId;
41 /**
42 * @var SubscriptionPeriod
43 */
44 public $period;
45 /**
46 * @var string
47 */
48 public $frequency;
49 /**
50 * @var int
51 */
52 public $installments;
53 /**
54 * @var string
55 */
56 public $transactionId;
57 /**
58 * @var SubscriptionMode
59 */
60 public $mode;
61 /**
62 * @var Money
63 */
64 public $amount;
65 /**
66 * @var Money
67 */
68 public $feeAmountRecovered;
69 /**
70 * @var string
71 */
72 public $gatewayId;
73 /**
74 * @var string
75 */
76 public $gatewaySubscriptionId;
77 /**
78 * @var int
79 */
80 public $donationFormId;
81 /**
82 * @var int
83 */
84 public $campaignId;
85
86 /**
87 * Convert data from Subscription Object to Subscription Model
88 *
89 * @since 2.19.6
90 */
91 public static function fromObject($subscriptionQueryObject): self
92 {
93 $self = new static();
94
95 $self->id = (int)$subscriptionQueryObject->id;
96 $self->createdAt = Temporal::toDateTime($subscriptionQueryObject->createdAt);
97 $self->renewsAt = isset($subscriptionQueryObject->renewsAt) ? Temporal::toDateTime(
98 $subscriptionQueryObject->renewsAt
99 ) : null;
100 $self->donorId = (int)$subscriptionQueryObject->donorId;
101 $self->period = new SubscriptionPeriod($subscriptionQueryObject->period);
102 $self->frequency = (int)$subscriptionQueryObject->frequency;
103 $self->installments = (int)$subscriptionQueryObject->installments;
104 $self->transactionId = $subscriptionQueryObject->transactionId;
105 $self->mode = new SubscriptionMode($subscriptionQueryObject->mode);
106 $self->amount = Money::fromDecimal($subscriptionQueryObject->amount, $subscriptionQueryObject->currency ?? give_get_currency());
107 $self->feeAmountRecovered = Money::fromDecimal($subscriptionQueryObject->feeAmount,
108 $subscriptionQueryObject->currency ?? give_get_currency());
109 $self->status = new SubscriptionStatus($subscriptionQueryObject->status);
110 $self->gatewayId = $subscriptionQueryObject->gatewayId;
111 $self->gatewaySubscriptionId = $subscriptionQueryObject->gatewaySubscriptionId;
112 $self->donationFormId = (int)$subscriptionQueryObject->donationFormId;
113 $self->campaignId = (int)$subscriptionQueryObject->campaignId;
114
115 return $self;
116 }
117
118 /**
119 * Convert DTO to Subscription
120 */
121 public function toSubscription(): Subscription
122 {
123 $attributes = get_object_vars($this);
124
125 return new Subscription($attributes);
126 }
127 }
128