55 lines
1.2 KiB
PHP
55 lines
1.2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace EmotionHero\Models;
|
||
|
|
||
|
use Doctrine\ORM\Mapping as ORM;
|
||
|
use JMS\Serializer\Annotation as JMS;
|
||
|
use Gedmo\Mapping\Annotation as Gedmo;
|
||
|
use Doctrine\Common\Collections\ArrayCollection;
|
||
|
|
||
|
/**
|
||
|
* A Single play of a game: combines User, Level and time
|
||
|
*
|
||
|
* @ORM\Table(name="games")
|
||
|
* @ORM\Entity(repositoryClass="EmotionHero\Models\GameRepository")
|
||
|
*/
|
||
|
class Game
|
||
|
{
|
||
|
/**
|
||
|
* @var integer
|
||
|
*
|
||
|
* @ORM\Column(name="id")
|
||
|
* @ORM\Id
|
||
|
* @ORM\GeneratedValue(strategy="UUID")
|
||
|
*/
|
||
|
private $id;
|
||
|
|
||
|
/**
|
||
|
* @ORM\ManyToOne(targetEntity="User", inversedBy="games")
|
||
|
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
|
||
|
*/
|
||
|
private $user;
|
||
|
|
||
|
/**
|
||
|
* @ORM\ManyToOne(targetEntity="Level", inversedBy="games")
|
||
|
* @ORM\JoinColumn(name="level_id", referencedColumnName="id", nullable=false)
|
||
|
*/
|
||
|
private $level;
|
||
|
|
||
|
/**
|
||
|
* @ORM\OneToMany(targetEntity="Hit", mappedBy="game", fetch="EXTRA_LAZY")
|
||
|
*/
|
||
|
private $hits;
|
||
|
|
||
|
/** @var float Total score of the game (sum of hits) */
|
||
|
private $score;
|
||
|
|
||
|
/**
|
||
|
* @var \DateTime $created
|
||
|
*
|
||
|
* @Gedmo\Timestampable(on="create")
|
||
|
* @ORM\Column(type="datetime")
|
||
|
*/
|
||
|
private $createdAt;
|
||
|
}
|