libpairtwo/src/Models/Player.php

256 lines
4.4 KiB
PHP
Raw Normal View History

<?php
/**
* Created by PhpStorm.
* User: jeroen
* Date: 19/01/19
* Time: 14:14
*/
namespace JeroenED\Libpairtwo\Models;
2019-02-11 17:37:30 +01:00
2019-02-01 15:51:35 +01:00
use JeroenED\Libpairtwo\Enums\Title;
2019-03-04 11:51:06 +01:00
use JeroenED\Libpairtwo\Enums\Gender;
2019-04-20 16:55:39 +02:00
use JeroenED\Libpairtwo\Pairing;
use DateTime;
abstract class Player
{
2019-03-20 17:33:09 +01:00
/** @var string */
private $Name;
2019-03-20 17:33:09 +01:00
/** @var int[] */
private $Ids;
2019-03-20 17:33:09 +01:00
/** @var int[] */
private $Elos;
2019-03-20 17:33:09 +01:00
/** @var DateTime */
private $DateOfBirth;
2019-03-20 17:33:09 +01:00
/** @var float[] */
private $Tiebreaks = [];
2019-03-20 17:33:09 +01:00
/** @var string */
private $Nation;
2019-03-20 17:33:09 +01:00
// TODO: Implement categories
2019-03-20 17:33:09 +01:00
/** @var string */
private $Category;
2019-03-20 17:33:09 +01:00
/** @var Title */
private $Title;
2019-03-20 17:33:09 +01:00
/** @var Gender */
2019-03-04 11:51:06 +01:00
private $Gender;
2019-03-20 17:33:09 +01:00
2019-04-20 16:55:39 +02:00
/** @var Pairing[] */
private $Pairings = [];
2019-04-20 16:55:39 +02:00
/** @var bool|DateTime|int|string[] */
private $BinaryData;
/**
* @return string
*/
2019-02-11 17:27:26 +01:00
public function getName(): string
{
return $this->Name;
}
/**
* @param string $Name
* @return Player
*/
public function setName(string $Name): Player
{
$this->Name = $Name;
return $this;
}
/**
* @return string[]
*/
public function getIds(): ?array
{
return $this->Ids;
}
/**
* @param string[] $Ids
* @return Player
*/
public function setIds(array $Ids): Player
{
$this->Ids = $Ids;
return $this;
}
/**
* @return int[]
*/
public function getElos(): ?array
{
return $this->Elos;
}
/**
* @param int[] $Elos
* @return Player
*/
public function setElos(array $Elos): Player
{
$this->Elos = $Elos;
return $this;
}
/**
* @return \DateTime
*/
public function getDateOfBirth(): \DateTime
{
return $this->DateOfBirth;
}
/**
* @param \DateTime $DateOfBirth
* @return Player
*/
public function setDateOfBirth(\DateTime $DateOfBirth): Player
{
$this->DateOfBirth = $DateOfBirth;
return $this;
}
/**
* @return float[]
*/
public function getTiebreaks(): array
{
return $this->Tiebreaks;
}
/**
* @param float[] $Tiebreaks
* @return Player
*/
public function setTiebreaks(array $Tiebreaks): Player
{
$this->Tiebreaks = $Tiebreaks;
return $this;
}
/**
* example value: BEL
*
2019-02-11 17:27:26 +01:00
* @return string
*/
2019-02-11 17:27:26 +01:00
public function getNation(): string
{
return $this->Nation;
}
/**
2019-03-20 17:33:09 +01:00
* example value: BEL
*
* @param string $Nation
* @return Player
*/
public function setNation(string $Nation): Player
{
$this->Nation = $Nation;
return $this;
}
/**
* @return string
*/
2019-02-11 17:27:26 +01:00
public function getCategory(): string
{
return $this->Category;
}
/**
* @param string $Category
* @return Player
*/
public function setCategory(string $Category): Player
{
$this->Category = $Category;
return $this;
}
/**
2019-02-11 17:27:26 +01:00
* @return Title
*/
2019-02-11 17:27:26 +01:00
public function getTitle(): Title
{
return $this->Title;
}
/**
* @param Title $Title
* @return Player
*/
public function setTitle(Title $Title): Player
{
$this->Title = $Title;
return $this;
}
/**
2019-03-04 11:51:06 +01:00
* @return Gender
*/
2019-03-04 11:51:06 +01:00
public function getGender(): Gender
{
2019-03-04 11:51:06 +01:00
return $this->Gender;
}
/**
2019-03-04 11:51:06 +01:00
* @param Gender $Gender
* @return Player
*/
public function setGender(Gender $Gender): Player
{
2019-03-04 11:51:06 +01:00
$this->Gender = $Gender;
return $this;
}
2019-02-01 15:55:34 +01:00
/**
* @return Pairing[]
*/
public function getPairings(): array
{
return $this->Pairings;
}
/**
* @param Pairing[] $Pairings
* @return Player
*/
public function setPairings(array $Pairings): Player
{
$this->Pairings = $Pairings;
return $this;
}
2019-04-20 16:55:39 +02:00
/**
* @param string $Key
* @return bool|DateTime|int|string
2019-04-20 16:55:39 +02:00
*/
public function getBinaryData(string $Key)
2019-04-20 16:55:39 +02:00
{
return $this->BinaryData[$Key];
2019-04-20 16:55:39 +02:00
}
/**
* @param string $Key
* @param bool|int|DateTime|string $Value
* @return Player
2019-04-20 16:55:39 +02:00
*/
public function setBinaryData(string $Key, $Value): Player
2019-04-20 16:55:39 +02:00
{
$this->BinaryData[$Key] = $Value;
return $this;
2019-04-20 16:55:39 +02:00
}
2019-02-01 15:55:34 +01:00
}