Issues (113)

src/price/PriceInterface.php (1 issue)

1
<?php
2
/**
3
 * PHP Billing Library
4
 *
5
 * @link      https://github.com/hiqdev/php-billing
6
 * @package   php-billing
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2017-2020, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hiqdev\php\billing\price;
12
13
use hiqdev\php\billing\action\ActionInterface;
14
use hiqdev\php\billing\EntityInterface;
15
use hiqdev\php\billing\plan\PlanInterface;
16
use hiqdev\php\billing\target\TargetInterface;
17
use hiqdev\php\billing\type\TypeInterface;
0 ignored issues
show
The type hiqdev\php\billing\type\TypeInterface was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
18
use hiqdev\php\units\QuantityInterface;
19
use Money\Money;
20
21
/**
22
 * Price Interface.
23
 * Tariff consists of prices.
24
 *
25
 * Knows how to calculate usage, price and sum for given quantity.
26
 *
27
 * @author Andrii Vasyliev <[email protected]>
28
 */
29
interface PriceInterface extends EntityInterface
30
{
31
    /**
32
     * Calculate sum for given quantity.
33
     *
34
     * @return Money|null null when must not be charged
35
     */
36
    public function calculateSum(QuantityInterface $quantity): ?Money;
37
38
    /**
39
     * Calculate usage for given quantity.
40
     *
41
     * @return QuantityInterface|null null when must not be charged
42
     */
43
    public function calculateUsage(QuantityInterface $quantity): ?QuantityInterface;
44
45
    /**
46
     * Calculate price for given quantity.
47
     *
48
     * @return Money|null null when must not be charged
49
     */
50
    public function calculatePrice(QuantityInterface $quantity): ?Money;
51
52
    public function isApplicable(ActionInterface $action): bool;
53
54
    /**
55
     * Get target.
56
     *
57
     * @return TargetInterface
58
     */
59
    public function getTarget();
60
61
    /**
62
     * Get type.
63
     *
64
     * @return TypeInterface
65
     */
66
    public function getType();
67
68
    /**
69
     * Get plan.
70
     */
71
    public function getPlan(): ?PlanInterface;
72
}
73