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

use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;

/**
 * Organization
 */
class Organization extends AbstractEntity
{
    /**
     * id
     *
     * @var int
     */
    protected $id;

    /**
     * type
     *
     * @var string
     */
    protected $type;

    /**
     * subDomain
     *
     * @var string
     */
    protected $subDomain;

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

    /**
     * slug
     *
     * @var string
     */
    protected $slug;

    /**
     * principalType
     *
     * @var string
     */
    protected $principalType;

    /**
     * description
     *
     * @var string
     */
    protected $description;

    /**
     * categories
     *
     * @var array
     */
    protected $categories;

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

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

    /**
     * streetAdress
     *
     * @var string
     */
    protected $streetAddress;

    /**
     * latitude
     *
     * @var float
     */
    protected $latitude;

    /**
     * longitude
     *
     * @var float
     */
    protected $longitude;

    /**
     * country
     *
     * @var string
     */
    protected $country;

    /**
     * logo
     *
     * @var string
     */
    protected $logo;

    /**
     * publicationDirectors
     *
     * @var string
     */
    protected $publicationDirectors;

    /**
     * parentId
     *
     * @var int
     */
    protected $parentId;

    /**
     * parentName
     *
     * @var string
     */
    protected $parentName;

    /**
     * parentSubdomain
     *
     * @var string
     */
    protected $parentSubdomain;

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

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

    /**
     * Returns the type
     *
     * @return string $type
     */
    public function getType(): ?string
    {
        return $this->type;
    }

    /**
     * Sets the type
     *
     * @param string|null $type
     * @return void
     */
    public function setType(?string $type)
    {
        $this->type = $type;
    }

    /**
     * Returns the subDomain
     *
     * @return string $subDomain
     */
    public function getSubDomain(): ?string
    {
        return $this->subDomain;
    }

    /**
     * Sets the subDomain
     *
     * @param string|null $subDomain
     * @return void
     */
    public function setSubDomain(?string $subDomain)
    {
        $this->subDomain = $subDomain;
    }

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

    /**
     * Sets the name
     *
     * @param string|null $name
     * @return void
     */
    public function setName(?string $name)
    {
        $this->name = $name;
    }

    /**
     * Returns the slug
     *
     * @return string $slug
     */
    public function getSlug(): ?string
    {
        return $this->slug;
    }

    /**
     * Sets the slug
     *
     * @param ?string $slug
     * @return void
     */
    public function setSlug(?string $slug)
    {
        $this->slug = $slug;
    }

    /**
     * Returns the principalType
     *
     * @return string $principalType
     */
    public function getPrincipalType(): ?string
    {
        return $this->principalType;
    }

    /**
     * Sets the principalType
     *
     * @param string|null $principalType
     * @return void
     */
    public function setPrincipalType(?string $principalType)
    {
        $this->principalType = $principalType;
    }

    /**
     * Returns the description
     *
     * @return string $description
     */
    public function getDescription(): ?string
    {
        return $this->description;
    }

    /**
     * Sets the description
     *
     * @param string|null $description
     * @return void
     */
    public function setDescription(?string $description)
    {
        $this->description = $description;
    }

    /**
     * Returns the categories
     *
     * @return array|null $categories
     */
    public function getCategories(): ?array
    {
        return $this->categories;
    }

    /**
     * Sets the categories
     *
     * @param array|null $categories
     */
    public function setCategories(?array $categories)
    {
        $this->categories = $categories;
    }

    /**
     * Returns the addressCity
     *
     * @return string $addressCity
     */
    public function getAddressCity(): ?string
    {
        return $this->addressCity;
    }

    /**
     * Sets the addressCity
     *
     * @param string|null $addressCity
     * @return void
     */
    public function setAddressCity(?string $addressCity)
    {
        $this->addressCity = $addressCity;
    }

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

    /**
     * Sets the postalCode
     *
     * @param string|null $postalCode
     * @return void
     */
    public function setPostalCode(?string $postalCode)
    {
        $this->postalCode = $postalCode;
    }

    /**
     * Returns the streetAddress
     *
     * @return string $streetAddress
     */
    public function getStreetAddress(): ?string
    {
        return $this->streetAddress;
    }

    /**
     * Sets the streetAdress
     *
     * @param string|null $streetAddress
     * @return void
     */
    public function setStreetAddress(?string $streetAddress)
    {
        $this->streetAddress = $streetAddress;
    }

    /**
     * Returns the latitude
     *
     * @return float $latitude
     */
    public function getLatitude(): ?float
    {
        return $this->latitude;
    }

    /**
     * Sets the latitude
     *
     * @param float|null $latitude
     */
    public function setLatitude(?float $latitude)
    {
        $this->latitude = $latitude;
    }

    /**
     * Returns the longitude
     *
     * @return float $longitude
     */
    public function getLongitude(): ?float
    {
        return $this->longitude;
    }

    /**
     * Sets the longitude
     *
     * @param float|null $longitude
     */
    public function setLongitude(?float $longitude)
    {
        $this->longitude = $longitude;
    }

    /**
     * Returns the country
     *
     * @return string $country
     */
    public function getCountry(): ?string
    {
        return $this->country;
    }

    /**
     * Sets the country
     *
     * @param string|null $country
     * @return void
     */
    public function setCountry(?string $country)
    {
        $this->country = $country;
    }

    /**
     * Returns the logo
     *
     * @return string $logo
     */
    public function getLogo(): ?string
    {
        return $this->logo;
    }

    /**
     * Sets the logo
     *
     * @param string|null $logo
     * @return void
     */
    public function setLogo(?string $logo)
    {
        $this->logo = $logo;
    }

    /**
     * Returns the publicationDirector(s) as a CSV string
     *
     * @return string $publicationDirectors
     */
    public function getPublicationDirectors(): ?string
    {
        return $this->publicationDirectors;
    }

    /**
     * Sets the publicationDirector(s)
     *
     * @param string|null $publicationDirectors
     * @return void
     */
    public function setPublicationDirectors(?string $publicationDirectors)
    {
        $this->publicationDirectors = $publicationDirectors;
    }

    /**
     * Returns the parentId
     *
     * @return int|null $parentId
     */
    public function getParentId(): ?int
    {
        return $this->parentId;
    }

    /**
     * Sets the parentId
     *
     * @param int|null $parentId
     * @return void
     */
    public function setParentId(?int $parentId)
    {
        $this->parentId = $parentId;
    }

    /**
     * Returns the parentName
     *
     * @return string $parentName
     */
    public function getParentName(): ?string
    {
        return $this->parentName;
    }

    /**
     * Sets the parentName
     *
     * @param string|null $parentName
     * @return void
     */
    public function setParentName(?string $parentName)
    {
        $this->parentName = $parentName;
    }

    /**
     * Returns the parentSubdomain
     *
     * @return string $parentSubdomain
     */
    public function getParentSubdomain(): ?string
    {
        return $this->parentSubdomain;
    }

    /**
     * Sets the parentSubdomain
     *
     * @param string|null $parentSubdomain
     * @return void
     */
    public function setParentSubdomain(?string $parentSubdomain)
    {
        $this->parentSubdomain = $parentSubdomain;
    }
}
