PlanPrice::getEntityId()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * Copyright (C) 2020-2025 Iain Cambridge
7
 *
8
 * This program is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU LESSER GENERAL PUBLIC LICENSE as published by
10
 * the Free Software Foundation, either version 2.1 of the License, or
11
 * (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
20
 */
21
22
namespace Parthenon\Billing\Plan;
23
24
use Brick\Money\Currency;
25
use Brick\Money\Money;
26
27
class PlanPrice
28
{
29
    public function __construct(
30
        private string $schedule,
31
        private string|int|float $amount,
32
        private string $currency,
33
        private ?string $priceId = null,
34
        private $entityId = null,
35
    ) {
36
    }
37
38
    public function getSchedule(): string
39
    {
40
        return $this->schedule;
41
    }
42
43
    public function getAmount(): string
44
    {
45
        return $this->amount;
46
    }
47
48
    public function getCurrency(): string
49
    {
50
        return $this->currency;
51
    }
52
53
    public function getPriceId(): ?string
54
    {
55
        return $this->priceId;
56
    }
57
58
    public function hasPriceId(): bool
59
    {
60
        return isset($this->priceId);
61
    }
62
63
    public function getAsMoney(): Money
64
    {
65
        return Money::ofMinor($this->amount, Currency::of(strtoupper($this->currency)));
66
    }
67
68
    public function getEntityId(): mixed
69
    {
70
        return $this->entityId;
71
    }
72
73
    public function setEntityId(mixed $entityId): void
74
    {
75
        $this->entityId = $entityId;
76
    }
77
78
    public function hasEntityId(): bool
79
    {
80
        return isset($this->entityId);
81
    }
82
}
83