-
Notifications
You must be signed in to change notification settings - Fork 7
/
PersonalAchievement.php
65 lines (51 loc) · 1.54 KB
/
PersonalAchievement.php
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
<?php
namespace Component\Entity\Achievement;
use Component\Entity\PlayerInterface;
class PersonalAchievement implements PersonalAchievementInterface
{
/** @var int */
protected $id;
/** @var \DateTime */
protected $achievedAt;
/** @var AchievementDefinitionInterface */
protected $achievementDefinition;
/** @var PlayerInterface */
protected $player;
public function __construct(
PlayerInterface $player,
AchievementDefinitionInterface $achievementDefinition,
\DateTime $achievedAt = null
) {
$this->setPlayer($player);
$this->setAchievementDefinition($achievementDefinition);
$this->setAchievedAt($achievedAt ?: new \DateTime());
}
public function getAchievedAt(): \DateTime
{
return $this->achievedAt;
}
public function getAchievementDefinition(): AchievementDefinitionInterface
{
return $this->achievementDefinition;
}
public function setAchievedAt(\DateTime $achievedAt): void
{
$this->achievedAt = $achievedAt;
}
public function setAchievementDefinition(AchievementDefinitionInterface $achievementDefinition): void
{
$this->achievementDefinition = $achievementDefinition;
}
public function setPlayer(PlayerInterface $player): void
{
$this->player = $player;
}
public function getPlayer(): PlayerInterface
{
return $this->player;
}
public function __toString(): string
{
return $this->getAchievementDefinition()->getName();
}
}