PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.6.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 / SetQuota.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
SetQuota.php
123 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 site quota write request payload.
10 *
11 * `quota` semantics:
12 * - `null` means uncapped and is omitted from the outgoing payload
13 * - `0` means blocked
14 * - a positive integer means a fixed quota
15 *
16 * `firstPeriodStart` is normalized to the API's canonical UTC datetime format.
17 *
18 * @phpstan-type SetQuotaPayload array{
19 * license_key: string,
20 * domain: string,
21 * credit_type: string,
22 * quota?: int,
23 * period: string,
24 * first_period_start?: string,
25 * metadata?: array<string, mixed>
26 * }
27 */
28 final class SetQuota
29 {
30 use InteractsWithDateTime;
31
32 /**
33 * License key that owns the quota.
34 *
35 * @example LWSW-8H9F-5UKA-VR3B-D7SQ-BP9N
36 */
37 public string $licenseKey;
38
39 /**
40 * Site domain the quota applies to.
41 *
42 * @example example.com
43 */
44 public string $domain;
45
46 /**
47 * Credit type identifier.
48 *
49 * @example ai
50 */
51 public string $creditType;
52
53 /**
54 * Quota amount for the domain.
55 *
56 * @example null Uncapped
57 * @example 0 Blocked
58 * @example 100 Fixed quota
59 */
60 public ?int $quota;
61
62 /**
63 * Quota period strategy.
64 *
65 * @example lifetime
66 * @example month
67 * @example week
68 */
69 public string $period;
70
71 /**
72 * UTC anchor for period calculations.
73 *
74 * @example new DateTimeImmutable('2026-03-01T00:00:00Z')
75 */
76 public ?DateTimeImmutable $firstPeriodStart;
77
78 /**
79 * Structured metadata passed through to the API.
80 *
81 * @var array<string, mixed>|null
82 *
83 * @example ['source' => 'portal']
84 */
85 public ?array $metadata;
86
87 /**
88 * @param array<string, mixed>|null $metadata
89 */
90 public function __construct(
91 string $licenseKey,
92 string $domain,
93 string $creditType,
94 ?int $quota = null,
95 string $period = 'lifetime',
96 ?DateTimeImmutable $firstPeriodStart = null,
97 ?array $metadata = null
98 ) {
99 $this->licenseKey = $licenseKey;
100 $this->domain = $domain;
101 $this->creditType = $creditType;
102 $this->quota = $quota;
103 $this->period = $period;
104 $this->firstPeriodStart = $firstPeriodStart;
105 $this->metadata = $metadata;
106 }
107
108 /**
109 * @return SetQuotaPayload
110 */
111 public function toArray(): array {
112 return array_filter([
113 'license_key' => $this->licenseKey,
114 'domain' => $this->domain,
115 'credit_type' => $this->creditType,
116 'quota' => $this->quota,
117 'period' => $this->period,
118 'first_period_start' => $this->firstPeriodStart ? $this->formatDateTime($this->firstPeriodStart) : null,
119 'metadata' => $this->metadata,
120 ], static fn ($value): bool => $value !== null);
121 }
122 }
123