PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.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 All 256 releases
give / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Requests / Credit / UpdatePool.php

UpdatePool.php in GiveWP – Donation Plugin and Fundraising Platform 4.17.0, at vendor/vendor-prefixed/stellarwp/licensing-api-client/src/Requests/Credit/UpdatePool.php

112 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php declare(strict_types=1);
2
3 namespace Give\Vendors\LiquidWeb\LicensingApiClient\Requests\Credit;
4
5 use DateTimeImmutable;
6 use Give\Vendors\LiquidWeb\LicensingApiClient\Concerns\InteractsWithDateTime;
7
8 /**
9 * Represents a credit pool update request payload.
10 *
11 * @phpstan-type UpdatePoolPayload array{
12 * license_key: string,
13 * pool_id: int,
14 * credits_total?: int,
15 * overage_limit?: int,
16 * priority?: int,
17 * expires_at?: string,
18 * metadata?: array<string, mixed>
19 * }
20 */
21 final class UpdatePool
22 {
23 use InteractsWithDateTime;
24
25 /**
26 * License key that owns the credit pool.
27 *
28 * @example LWSW-8H9F-5UKA-VR3B-D7SQ-BP9N
29 */
30 public string $licenseKey;
31
32 /**
33 * Credit pool identifier to update.
34 *
35 * @example 42
36 */
37 public int $poolId;
38
39 /**
40 * Updated total credits for the pool.
41 *
42 * @example 1500
43 */
44 public ?int $creditsTotal;
45
46 /**
47 * Updated overage allowance after the pool is depleted.
48 *
49 * @example 250
50 */
51 public ?int $overageLimit;
52
53 /**
54 * Updated pool priority. Lower values are consumed first.
55 *
56 * @example 10
57 */
58 public ?int $priority;
59
60 /**
61 * Updated absolute pool expiration date in the caller's timezone.
62 *
63 * @example 2026-04-01T00:00:00Z
64 */
65 public ?DateTimeImmutable $expiresAt;
66
67 /**
68 * Arbitrary pool metadata forwarded to the API.
69 *
70 * @var array<string, mixed>|null
71 *
72 * @example {"source":"portal"}
73 */
74 public ?array $metadata;
75
76 /**
77 * @param array<string, mixed>|null $metadata
78 */
79 public function __construct(
80 string $licenseKey,
81 int $poolId,
82 ?int $creditsTotal = null,
83 ?int $overageLimit = null,
84 ?int $priority = null,
85 ?DateTimeImmutable $expiresAt = null,
86 ?array $metadata = null
87 ) {
88 $this->licenseKey = $licenseKey;
89 $this->poolId = $poolId;
90 $this->creditsTotal = $creditsTotal;
91 $this->overageLimit = $overageLimit;
92 $this->priority = $priority;
93 $this->expiresAt = $expiresAt;
94 $this->metadata = $metadata;
95 }
96
97 /**
98 * @return UpdatePoolPayload
99 */
100 public function toArray(): array {
101 return array_filter([
102 'license_key' => $this->licenseKey,
103 'pool_id' => $this->poolId,
104 'credits_total' => $this->creditsTotal,
105 'overage_limit' => $this->overageLimit,
106 'priority' => $this->priority,
107 'expires_at' => $this->expiresAt ? $this->formatDateTime($this->expiresAt) : null,
108 'metadata' => $this->metadata,
109 ], static fn ($value): bool => $value !== null);
110 }
111 }
112