PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.5.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.5.1
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 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 / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Requests / Credit / CreatePool.php
give / vendor / vendor-prefixed / stellarwp / licensing-api-client / src / Requests / Credit Last commit date
CreatePool.php 3 months ago DeletePool.php 3 months ago ListLedgerEntries.php 3 months ago RecordUsage.php 3 months ago Refund.php 3 months ago SetQuota.php 3 months ago UpdatePool.php 3 months ago
CreatePool.php
134 lines
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 creation request payload.
10 *
11 * @phpstan-type CreatePoolPayload array{
12 * license_key: string,
13 * credit_type: string,
14 * credits_total: int,
15 * period: string,
16 * overage_limit?: int,
17 * priority: int,
18 * first_period_start?: string,
19 * expires_at?: string,
20 * metadata?: array<string, mixed>
21 * }
22 */
23 final class CreatePool
24 {
25 use InteractsWithDateTime;
26
27 /**
28 * License key that owns the credit pool.
29 *
30 * @example LWSW-8H9F-5UKA-VR3B-D7SQ-BP9N
31 */
32 public string $licenseKey;
33
34 /**
35 * Credit type tracked by this pool.
36 *
37 * @example ai
38 */
39 public string $creditType;
40
41 /**
42 * Total credits allocated to the pool.
43 *
44 * @example 1000
45 */
46 public int $creditsTotal;
47
48 /**
49 * Reset cadence for the pool.
50 *
51 * @example month
52 */
53 public string $period;
54
55 /**
56 * Optional overage allowance after the pool is depleted.
57 *
58 * @example 100
59 */
60 public ?int $overageLimit;
61
62 /**
63 * Pool consumption priority. Lower values are consumed first.
64 *
65 * @example 25
66 */
67 public int $priority;
68
69 /**
70 * First billing period start in the caller's timezone.
71 *
72 * @example 2026-03-01T00:00:00Z
73 */
74 public ?DateTimeImmutable $firstPeriodStart;
75
76 /**
77 * Absolute pool expiration date in the caller's timezone.
78 *
79 * @example 2026-04-01T00:00:00Z
80 */
81 public ?DateTimeImmutable $expiresAt;
82
83 /**
84 * Arbitrary pool metadata forwarded to the API.
85 *
86 * @var array<string, mixed>|null
87 *
88 * @example {"source":"portal"}
89 */
90 public ?array $metadata;
91
92 /**
93 * @param array<string, mixed>|null $metadata
94 */
95 public function __construct(
96 string $licenseKey,
97 string $creditType,
98 int $creditsTotal,
99 string $period,
100 ?int $overageLimit = null,
101 int $priority = 50,
102 ?DateTimeImmutable $firstPeriodStart = null,
103 ?DateTimeImmutable $expiresAt = null,
104 ?array $metadata = null
105 ) {
106 $this->licenseKey = $licenseKey;
107 $this->creditType = $creditType;
108 $this->creditsTotal = $creditsTotal;
109 $this->period = $period;
110 $this->overageLimit = $overageLimit;
111 $this->priority = $priority;
112 $this->firstPeriodStart = $firstPeriodStart;
113 $this->expiresAt = $expiresAt;
114 $this->metadata = $metadata;
115 }
116
117 /**
118 * @return CreatePoolPayload
119 */
120 public function toArray(): array {
121 return array_filter([
122 'license_key' => $this->licenseKey,
123 'credit_type' => $this->creditType,
124 'credits_total' => $this->creditsTotal,
125 'period' => $this->period,
126 'overage_limit' => $this->overageLimit,
127 'priority' => $this->priority,
128 'first_period_start' => $this->firstPeriodStart ? $this->formatDateTime($this->firstPeriodStart) : null,
129 'expires_at' => $this->expiresAt ? $this->formatDateTime($this->expiresAt) : null,
130 'metadata' => $this->metadata,
131 ], static fn ($value): bool => $value !== null);
132 }
133 }
134