<?php

namespace App\Model\Entities\GameData\Mmorpg;

use App\Model\Entities\BaseNamedRecord;
use App\Model\Interfaces\ICommonRecord;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="instance_mode")
 */
class InstanceMode extends BaseNamedRecord implements ICommonRecord
{
    /**
     * @ORM\Column(type="integer")
     */
    protected $requiredPlayers;

    /**
     * @ORM\Column(type="integer")
     */
    protected $maximumPlayers;

    /**
     * @ORM\Column(type="integer")
     */
    protected $requiredLevel;

    /**
     * @ORM\Column(type="text")
     */
    protected $apiIdentifier;

    /**
     * @var Instance
     * @ORM\ManyToOne(targetEntity="Instance")
     */
    protected $instance;

    /**
     * @return int
     */
    public function getRequiredPlayers() : int
    {
        return $this->requiredPlayers;
    }

    /**
     * @param int $requiredPlayers
     */
    public function setRequiredPlayers(int $requiredPlayers)
    {
        $this->requiredPlayers = $requiredPlayers;
    }

    /**
     * @return int
     */
    public function getMaximumPlayers() : int
    {
        return $this->maximumPlayers;
    }

    /**
     * @param int $maximumPlayers
     */
    public function setMaximumPlayers(int $maximumPlayers)
    {
        $this->maximumPlayers = $maximumPlayers;
    }

    /**
     * @return int
     */
    public function getRequiredLevel() : int
    {
        return $this->requiredLevel;
    }

    /**
     * @param int $requiredLevel
     */
    public function setRequiredLevel(int $requiredLevel)
    {
        $this->requiredLevel = $requiredLevel;
    }

    /**
     * @return mixed
     */
    public function getApiIdentifier()
    {
        return $this->apiIdentifier;
    }

    /**
     * @param mixed $apiIdentifier
     */
    public function setApiIdentifier($apiIdentifier)
    {
        $this->apiIdentifier = $apiIdentifier;
    }

    /**
     * @return Instance
     */
    public function getInstance() : Instance
    {
        return $this->instance;
    }

    /**
     * @param Instance $instance
     */
    public function setInstance(Instance $instance)
    {
        $this->instance = $instance;
    }
}