Comestible::_initProps()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 9
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 11
rs 9.4285
1
<?php
2
3
namespace Dominikzogg\EnergyCalculator\Entity;
4
5
use Doctrine\ORM\Mapping as ORM;
6
use Dominikzogg\EnergyCalculator\Voter\RelatedObjectInterface;
7
use Saxulum\Accessor\Accessors\Get;
8
use Saxulum\Accessor\Accessors\Set;
9
use Saxulum\Accessor\AccessorTrait;
10
use Saxulum\Hint\Hint;
11
use Saxulum\Accessor\Prop;
12
13
/**
14
 * @ORM\Entity(repositoryClass="Dominikzogg\EnergyCalculator\Repository\ComestibleRepository")
15
 * @ORM\Table(name="comestible")
16
 * @method int getId()
17
 * @method string getName()
18
 * @method $this setName(string $name)
19
 * @method float getCalorie()
20
 * @method $this setCalorie(float $calorie)
21
 * @method float getProtein()
22
 * @method $this setProtein(float $protein)
23
 * @method float getCarbohydrate()
24
 * @method $this setCarbohydrate(float $carbohydrate)
25
 * @method float getFat()
26
 * @method $this setFat(float $fat)
27
 * @method float getDefaultValue()
28
 * @method $this setDefaultValue(float $defaultValue)
29
 * @method \DateTime getCreatedAt()
30
 */
31
class Comestible implements UserReferenceInterface, RelatedObjectInterface
32
{
33
    use AccessorTrait;
34
    use UserReferenceTrait;
35
36
    /**
37
     * @var string
38
     * @ORM\Column(name="id", type="string", length=24)
39
     * @ORM\Id
40
     * @ORM\GeneratedValue(strategy="NONE")
41
     */
42
    protected $id;
43
44
    /**
45
     * @var string
46
     * @ORM\Column(name="name", type="string", nullable=false)
47
     */
48
    protected $name;
49
50
    /**
51
     * @var float
52
     * @ORM\Column(name="calorie", type="decimal", precision=10, scale=4, nullable=false)
53
     */
54
    protected $calorie = 0;
55
56
    /**
57
     * @var float
58
     * @ORM\Column(name="protein", type="decimal", precision=10, scale=4, nullable=false)
59
     */
60
    protected $protein = 0;
61
62
    /**
63
     * @var float
64
     * @ORM\Column(name="carbohydrate", type="decimal", precision=10, scale=4, nullable=false)
65
     */
66
    protected $carbohydrate = 0;
67
68
    /**
69
     * @var float
70
     * @ORM\Column(name="fat", type="decimal", precision=10, scale=4, nullable=false)
71
     */
72
    protected $fat = 0;
73
74
    /**
75
     * @var float
76
     * @ORM\Column(name="default_value", type="decimal", precision=10, scale=4, nullable=true)
77
     */
78
    protected $defaultValue;
79
80
    /**
81
     * @var \DateTime
82
     * @ORM\Column(name="created_at", type="datetime", nullable=true)
83
     */
84
    protected $createdAt;
85
86
    public function __construct()
87
    {
88
        $this->id = new \MongoId();
0 ignored issues
show
Documentation Bug introduced by
It seems like new \MongoId() of type object<MongoId> is incompatible with the declared type string of property $id.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
89
        $this->createdAt = new \DateTime();
90
    }
91
92
    /**
93
     * @return string
94
     */
95
    public function __toString()
96
    {
97
        return (string) $this->getName();
98
    }
99
100
    protected function _initProps()
101
    {
102
        $this->_prop((new Prop('id', Hint::INT))->method(Get::PREFIX));
103
        $this->_prop((new Prop('name', Hint::STRING))->method(Get::PREFIX)->method(Set::PREFIX));
104
        $this->_prop((new Prop('calorie', Hint::NUMERIC))->method(Get::PREFIX)->method(Set::PREFIX));
105
        $this->_prop((new Prop('protein', Hint::NUMERIC))->method(Get::PREFIX)->method(Set::PREFIX));
106
        $this->_prop((new Prop('carbohydrate', Hint::NUMERIC))->method(Get::PREFIX)->method(Set::PREFIX));
107
        $this->_prop((new Prop('fat', Hint::NUMERIC))->method(Get::PREFIX)->method(Set::PREFIX));
108
        $this->_prop((new Prop('defaultValue', Hint::NUMERIC))->method(Get::PREFIX)->method(Set::PREFIX));
109
        $this->_prop((new Prop('createdAt', '\DateTime'))->method(Get::PREFIX));
110
    }
111
112
    /**
113
     * @return string
114
     */
115
    public function getRoleNamePart()
116
    {
117
        return 'comestible';
118
    }
119
}
120