<?php
namespace Opentalent\OtTemplating\Domain\Model;

use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;

/**
 * Member of an organization
 */
class Member extends AbstractEntity
{
    /**
     * id
     *
     * @var int
     */
    protected $id = -1;

    /**
     * organizationId
     *
     * @var int
     */
    protected $organizationId = -1;

    /**
     * gender ('MISS' or 'MISTER')
     *
     * @var string
     */
    protected $gender = '';

    /**
     * givenName (first name)
     *
     * @var string
     */
    protected $givenName = '';

    /**
     * name
     *
     * @var string
     */
    protected $name = '';

    /**
     * startDate
     *
     * @var \Datetime
     */
    protected $startDate = null;

    /**
     * endDate
     *
     * @var \Datetime
     */
    protected $endDate = null;

    /**
     * instrumentGroup
     *
     * @var string
     */
    protected $instrumentGroup = '';

    /**
     * instrument
     *
     * @var string
     */
    protected $instrument = '';

    /**
     * mission
     *
     * @var string
     */
    protected $mission = '';

    /**
     * personId
     *
     * @var string
     */
    protected $personId = -1;

    /**
     * image
     *
     * @var string
     */
    protected $image = '';

    /**
     * addressCity
     *
     * @var string
     */
    protected $addressCity = '';

    /**
     * streetAddress
     *
     * @var string
     */
    protected $streetAddress = '';

    /**
     * streetAddressSecond
     *
     * @var string
     */
    protected $streetAddressSecond = '';

    /**
     * streetAddressThird
     *
     * @var string
     */
    protected $streetAddressThird = '';

    /**
     * postalCode
     *
     * @var string
     */
    protected $postalCode = '';

    /**
     * telphone
     *
     * @var string
     */
    protected $telphone = '';

    /**
     * mobilPhone
     *
     * @var string
     */
    protected $mobilPhone = '';

    /**
     * email
     *
     * @var string
     */
    protected $email = '';


    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

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

    /**
     * @return int
     */
    public function getOrganizationId()
    {
        return $this->organizationId;
    }

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

    /**
     * @return string
     */
    public function getGender()
    {
        return $this->gender;
    }

    /**
     * @param string $gender
     */
    public function setGender($gender = '')
    {
        $this->gender = $gender;
    }

    /**
     * @return string
     */
    public function getGivenName()
    {
        return $this->givenName;
    }

    /**
     * @param string $givenName
     */
    public function setGivenName($givenName = '')
    {
        $this->givenName = $givenName;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param string $name
     */
    public function setName($name = '')
    {
        $this->name = $name;
    }

    /**
     * @return \Datetime
     */
    public function getStartDate()
    {
        return $this->startDate;
    }

    /**
     * @param \Datetime $startDate
     */
    public function setStartDate(\Datetime $startDate)
    {
        $this->startDate = $startDate;
    }

    /**
     * @return \Datetime
     */
    public function getEndDate()
    {
        return $this->endDate;
    }

    /**
     * @param \Datetime $endDate
     */
    public function setEndDate(\Datetime $endDate)
    {
        $this->endDate = $endDate;
    }

    /**
     * @return string
     */
    public function getInstrumentGroup()
    {
        return $this->instrumentGroup;
    }

    /**
     * @param string $instrumentGroup
     */
    public function setInstrumentGroup($instrumentGroup = '')
    {
        $this->instrumentGroup = $instrumentGroup;
    }

    /**
     * @return string
     */
    public function getInstrument()
    {
        return $this->instrument;
    }

    /**
     * @param string $instrument
     */
    public function setInstrument($instrument = '')
    {
        $this->instrument = $instrument;
    }

    /**
     * @return string
     */
    public function getMission()
    {
        return $this->mission;
    }

    /**
     * @param string $mission
     */
    public function setMission($mission = '')
    {
        $this->mission = $mission;
    }

    /**
     * @return int
     */
    public function getPersonId()
    {
        return $this->personId;
    }

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

    /**
     * @return string
     */
    public function getImage()
    {
        return $this->image;
    }

    /**
     * @param string $image
     */
    public function setImage($image = '')
    {
        $this->image = $image;
    }

    /**
     * @return string
     */
    public function getAdressCity()
    {
        return $this->addressCity;
    }

    /**
     * @param string $addressCity
     */
    public function setAdressCity($addressCity = '')
    {
        $this->addressCity = $addressCity;
    }

    /**
     * @return string
     */
    public function getStreetAdress()
    {
        return $this->streetAddress;
    }

    /**
     * @param string $streetAddress
     */
    public function setStreetAdress($streetAddress = '')
    {
        $this->streetAddress = $streetAddress;
    }

    /**
     * @return string
     */
    public function getStreetAdressSecond()
    {
        return $this->streetAddressSecond;
    }

    /**
     * @param string $streetAddressSecond
     */
    public function setStreetAdressSecond($streetAddressSecond = '')
    {
        $this->streetAddressSecond = $streetAddressSecond;
    }

    /**
     * @return string
     */
    public function getStreetAdressThird()
    {
        return $this->streetAddressThird;
    }

    /**
     * @param string $streetAddressThird
     */
    public function setStreetAdressThird($streetAddressThird = '')
    {
        $this->streetAddressThird = $streetAddressThird;
    }

    /**
     * @return string
     */
    public function getPostalCode()
    {
        return $this->postalCode;
    }

    /**
     * @param string $postalCode
     */
    public function setPostalCode($postalCode = '')
    {
        $this->postalCode = $postalCode;
    }

    /**
     * @return string
     */
    public function getTelphone()
    {
        return $this->telphone;
    }

    /**
     * @param string $telphone
     */
    public function setTelphone($telphone = '')
    {
        $this->telphone = $telphone;
    }

    /**
     * @return string
     */
    public function getMobilPhone()
    {
        return $this->mobilPhone;
    }

    /**
     * @param string $mobilPhone
     */
    public function setMobilPhone($mobilPhone = '')
    {
        $this->mobilPhone = $mobilPhone;
    }

    /**
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * @param string $email
     */
    public function setEmail($email = '')
    {
        $this->email = $email;
    }

    /**
     * Return a full name for the member
     *
     * @return string
     */
    public function getFullName()
    {
        if ($this->getGivenName() && $this->getName()) {
            return $this->getGivenName() . ' ' . $this->getName();
        } else if ($this->getName() && $this->getGender()) {
            return 'M. ' . $this->getName();
        } else {
            return '';
        }
    }

}
