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

use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;

/**
 * FederationStructure
 *
 * Similar to the Organization object, this entity is created from the federation_structures api route,
 * which is designed to return the structures belonging to a federation
 */
class FederationStructure extends AbstractEntity
{
    /**
     * id
     *
     * @var int
     */
    protected $id;

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

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

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

    /**
     * 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;

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

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

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

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

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

    /**
     * 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 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 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 website
     *
     * @return string $website
     */
    public function getWebsite(): ?string
    {
        return $this->website;
    }

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

    /**
     * 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 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 logo
     *
     * @return string $logoUri
     */
    public function getLogoUri(): ?string
    {
        return $this->logoUri;
    }

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

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

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

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

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

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

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