-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathCartDiscountChangeTargetActionModel.php
More file actions
97 lines (84 loc) · 2.61 KB
/
Copy pathCartDiscountChangeTargetActionModel.php
File metadata and controls
97 lines (84 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
declare(strict_types=1);
/**
* This file has been auto generated
* Do not change it.
*/
namespace Commercetools\Api\Models\CartDiscount;
use Commercetools\Base\DateTimeImmutableCollection;
use Commercetools\Base\JsonObject;
use Commercetools\Base\JsonObjectModel;
use Commercetools\Base\MapperFactory;
use stdClass;
/**
* @internal
*/
final class CartDiscountChangeTargetActionModel extends JsonObjectModel implements CartDiscountChangeTargetAction
{
public const DISCRIMINATOR_VALUE = 'changeTarget';
/**
*
* @var ?string
*/
protected $action;
/**
*
* @var ?CartDiscountTarget
*/
protected $target;
/**
* @psalm-suppress MissingParamType
*/
public function __construct(
?CartDiscountTarget $target = null,
?string $action = null
) {
$this->target = $target;
$this->action = $action ?? self::DISCRIMINATOR_VALUE;
}
/**
*
* @return null|string
*/
public function getAction()
{
if (is_null($this->action)) {
/** @psalm-var ?string $data */
$data = $this->raw(self::FIELD_ACTION);
if (is_null($data)) {
return null;
}
$this->action = (string) $data;
}
return $this->action;
}
/**
* <p>New value to set.</p>
* <p>For a <a href="ctp:api:type:CartDiscountValueRelative">CartDiscountValueRelative</a>, if <code>applicationMode</code> is set, the target must be <a href="ctp:api:type:CartDiscountPatternTarget">CartDiscountPatternTarget</a>.
* If <code>applicationMode</code> is <code>ProportionateDistribution</code> or <code>EvenDistribution</code>, the <a href="ctp:api:type:CartDiscountPatternTarget">CartDiscountPatternTarget</a> <code>triggerPattern</code> must be non-empty.
* If either conditions are not met, an <a href="ctp:api:type:InvalidOperationError">InvalidOperation</a> error is returned.</p>
*
*
* @return null|CartDiscountTarget
*/
public function getTarget()
{
if (is_null($this->target)) {
/** @psalm-var stdClass|array<string, mixed>|null $data */
$data = $this->raw(self::FIELD_TARGET);
if (is_null($data)) {
return null;
}
$className = CartDiscountTargetModel::resolveDiscriminatorClass($data);
$this->target = $className::of($data);
}
return $this->target;
}
/**
* @param ?CartDiscountTarget $target
*/
public function setTarget(?CartDiscountTarget $target): void
{
$this->target = $target;
}
}